Proje Detayları
Proje Tanımı
Bu projede, bilgisayarın 1 ile 100 arasında rastgele seçtiği bir sayıyı tahmin etmeye çalışacağınız basit bir oyun geliştireceğiz. Kullanıcı, her tahminden sonra sayının daha yüksek mi yoksa daha düşük mü olduğuna dair ipuçları alacak. Bu proje, koşullu ifadeler, rastgele sayı üretme ve DOM manipülasyonu konularını pekiştirmenize yardımcı olacak.
Adım Adım Geliştirme
1 HTML Yapısını Oluşturmaİlk olarak, sayı tahmin oyununun HTML yapısını oluşturalım. Bir form, mesaj alanı, istatistikler ve tahmin geçmişi içeren bir yapı oluşturacağız.
Not: HTML yapısında, oyun için gerekli tüm elementleri oluşturuyoruz. input
elementine min
ve max
öznitelikleri ekleyerek, kullanıcının sadece 1 ile 100 arasında sayı girebilmesini sağlıyoruz.
2 CSS ile Stil VermeŞimdi, sayı tahmin oyununa stil verelim. Kullanıcı dostu ve çekici bir arayüz oluşturacağız.
İpucu: CSS'te, farklı tahmin sonuçları için farklı renkler kullanıyoruz. Doğru tahminler için yeşil, yüksek tahminler için kırmızı ve düşük tahminler için mavi renk kullanarak, kullanıcıya görsel geri bildirim sağlıyoruz.
3 JavaScript ile İşlevsellik EklemeŞimdi, JavaScript ile sayı tahmin oyununa işlevsellik ekleyelim. Rastgele sayı üretme, tahminleri kontrol etme ve oyun mantığını kodlayacağız.
Uyarı: Geliştirme aşamasında, rastgele sayıyı konsola yazdırıyoruz. Bu, test için faydalıdır, ancak gerçek oyunda bu satırı kaldırmalısınız.
4 Rastgele Sayı ÜretmeSayı tahmin oyununda, bilgisayarın rastgele bir sayı seçmesi gerekiyor. JavaScript'te, Math.random()
fonksiyonu kullanarak rastgele sayılar üretebiliriz.
İlk olarak, sayı tahmin oyununun HTML yapısını oluşturalım. Bir form, mesaj alanı, istatistikler ve tahmin geçmişi içeren bir yapı oluşturacağız.
Not: HTML yapısında, oyun için gerekli tüm elementleri oluşturuyoruz. input
elementine min
ve max
öznitelikleri ekleyerek, kullanıcının sadece 1 ile 100 arasında sayı girebilmesini sağlıyoruz.
Şimdi, sayı tahmin oyununa stil verelim. Kullanıcı dostu ve çekici bir arayüz oluşturacağız.
İpucu: CSS'te, farklı tahmin sonuçları için farklı renkler kullanıyoruz. Doğru tahminler için yeşil, yüksek tahminler için kırmızı ve düşük tahminler için mavi renk kullanarak, kullanıcıya görsel geri bildirim sağlıyoruz.
Şimdi, JavaScript ile sayı tahmin oyununa işlevsellik ekleyelim. Rastgele sayı üretme, tahminleri kontrol etme ve oyun mantığını kodlayacağız.
Uyarı: Geliştirme aşamasında, rastgele sayıyı konsola yazdırıyoruz. Bu, test için faydalıdır, ancak gerçek oyunda bu satırı kaldırmalısınız.
Sayı tahmin oyununda, bilgisayarın rastgele bir sayı seçmesi gerekiyor. JavaScript'te, Math.random()
fonksiyonu kullanarak rastgele sayılar üretebiliriz.
Math.random() Nasıl Çalışır?
Math.random()
fonksiyonu, 0 (dahil) ile 1 (hariç) arasında rastgele bir ondalık sayı döndürür. Örneğin: 0.123456789...
Math.random()
fonksiyonu, 0 (dahil) ile 1 (hariç) arasında rastgele bir ondalık sayı döndürür. Örneğin: 0.123456789...
Belirli Bir Aralıkta Rastgele Sayı Üretme
1 ile 100 arasında rastgele bir tam sayı üretmek için, aşağıdaki formülü kullanabiliriz:
Bu formülde:
Math.random()
: 0 ile 1 arasında rastgele bir ondalık sayı döndürür* 100
: Sayıyı 0 ile 100 arasına genişletirMath.floor()
: Ondalık kısmı atar ve tam sayıya yuvarlar (0 ile 99 arası)+ 1
: Sayıyı 1 ile 100 arasına kaydırır
Not: Farklı bir aralıkta rastgele sayı üretmek için, formülü şu şekilde genelleştirebilirsiniz: Math.floor(Math.random() * (max - min + 1)) + min
5 Tahmin Kontrolü ve Geri BildirimKullanıcı bir tahmin yaptığında, bu tahmini rastgele sayı ile karşılaştırıp uygun geri bildirim vermemiz gerekiyor.
1 ile 100 arasında rastgele bir tam sayı üretmek için, aşağıdaki formülü kullanabiliriz:
Bu formülde:
Math.random()
: 0 ile 1 arasında rastgele bir ondalık sayı döndürür* 100
: Sayıyı 0 ile 100 arasına genişletirMath.floor()
: Ondalık kısmı atar ve tam sayıya yuvarlar (0 ile 99 arası)+ 1
: Sayıyı 1 ile 100 arasına kaydırır
Not: Farklı bir aralıkta rastgele sayı üretmek için, formülü şu şekilde genelleştirebilirsiniz: Math.floor(Math.random() * (max - min + 1)) + min
Kullanıcı bir tahmin yaptığında, bu tahmini rastgele sayı ile karşılaştırıp uygun geri bildirim vermemiz gerekiyor.
Tahmin Kontrolü Mantığı
Tahmin kontrolü, üç olası sonuç içerir:
- Doğru Tahmin: Kullanıcının tahmini, rastgele sayıya eşitse
- Düşük Tahmin: Kullanıcının tahmini, rastgele sayıdan küçükse
- Yüksek Tahmin: Kullanıcının tahmini, rastgele sayıdan büyükse
Tahmin kontrolü, üç olası sonuç içerir:
- Doğru Tahmin: Kullanıcının tahmini, rastgele sayıya eşitse
- Düşük Tahmin: Kullanıcının tahmini, rastgele sayıdan küçükse
- Yüksek Tahmin: Kullanıcının tahmini, rastgele sayıdan büyükse
Aralık Güncelleme
Kullanıcıya daha iyi ipuçları vermek için, her tahminden sonra minimum ve maksimum aralığı güncelleyebiliriz:
Bu şekilde, kullanıcı her tahminden sonra daha dar bir aralıkta tahmin yapabilir.
6 Tahmin Geçmişi EklemeKullanıcının önceki tahminlerini görmesi, oyunu daha stratejik hale getirir. Tahmin geçmişi ekleyerek, kullanıcının hangi sayıları denediğini ve sonuçlarını görmesini sağlayabiliriz.
Bu fonksiyon, her tahmin için bir liste öğesi oluşturur ve tahmin sonucuna göre uygun sınıf ve metin ekler. Yeni tahminler, listenin en üstüne eklenir, böylece kullanıcı en son tahminini kolayca görebilir.
7 Projeyi Test Etme ve Hata AyıklamaSayı tahmin oyununu oluşturduktan sonra, farklı senaryoları test ederek doğru çalıştığından emin olun:
- Doğru tahmin: Rastgele sayıyı doğru tahmin ettiğinizde, tebrik mesajı görmelisiniz
- Düşük tahmin: Rastgele sayıdan düşük bir sayı tahmin ettiğinizde, "Çok düşük" mesajı görmelisiniz
- Yüksek tahmin: Rastgele sayıdan yüksek bir sayı tahmin ettiğinizde, "Çok yüksek" mesajı görmelisiniz
- Geçersiz giriş: 1'den küçük veya 100'den büyük bir sayı girdiğinizde, hata mesajı görmelisiniz
- Aralık güncelleme: Tahminlerinize göre minimum ve maksimum aralık değerleri güncellenmelidir
- Tahmin geçmişi: Her tahmin, tahmin geçmişi listesine eklenmelidir
- Yeni oyun: "Yeni Oyun" butonuna tıkladığınızda, oyun sıfırlanmalı ve yeni bir rastgele sayı seçilmelidir
Herhangi bir hata veya beklenmeyen davranış tespit ederseniz, JavaScript kodunuzu gözden geçirin ve düzeltin.
8 Bonus Özellikleri EklemeTemel sayı tahmin oyunu işlevselliğini tamamladıktan sonra, aşağıdaki bonus özellikleri ekleyebilirsiniz:
Kullanıcıya daha iyi ipuçları vermek için, her tahminden sonra minimum ve maksimum aralığı güncelleyebiliriz:
Bu şekilde, kullanıcı her tahminden sonra daha dar bir aralıkta tahmin yapabilir.
Kullanıcının önceki tahminlerini görmesi, oyunu daha stratejik hale getirir. Tahmin geçmişi ekleyerek, kullanıcının hangi sayıları denediğini ve sonuçlarını görmesini sağlayabiliriz.
Bu fonksiyon, her tahmin için bir liste öğesi oluşturur ve tahmin sonucuna göre uygun sınıf ve metin ekler. Yeni tahminler, listenin en üstüne eklenir, böylece kullanıcı en son tahminini kolayca görebilir.
Sayı tahmin oyununu oluşturduktan sonra, farklı senaryoları test ederek doğru çalıştığından emin olun:
- Doğru tahmin: Rastgele sayıyı doğru tahmin ettiğinizde, tebrik mesajı görmelisiniz
- Düşük tahmin: Rastgele sayıdan düşük bir sayı tahmin ettiğinizde, "Çok düşük" mesajı görmelisiniz
- Yüksek tahmin: Rastgele sayıdan yüksek bir sayı tahmin ettiğinizde, "Çok yüksek" mesajı görmelisiniz
- Geçersiz giriş: 1'den küçük veya 100'den büyük bir sayı girdiğinizde, hata mesajı görmelisiniz
- Aralık güncelleme: Tahminlerinize göre minimum ve maksimum aralık değerleri güncellenmelidir
- Tahmin geçmişi: Her tahmin, tahmin geçmişi listesine eklenmelidir
- Yeni oyun: "Yeni Oyun" butonuna tıkladığınızda, oyun sıfırlanmalı ve yeni bir rastgele sayı seçilmelidir
Herhangi bir hata veya beklenmeyen davranış tespit ederseniz, JavaScript kodunuzu gözden geçirin ve düzeltin.
Temel sayı tahmin oyunu işlevselliğini tamamladıktan sonra, aşağıdaki bonus özellikleri ekleyebilirsiniz:
Zorluk Seviyeleri
Zaman Sınırı
En Yüksek Skorlar
Proje Zorlukları ve Çözümleri
Zorluk 1: Rastgele Sayı Üretme
Sayı tahmin oyununda, her oyun başlangıcında yeni bir rastgele sayı üretmek önemlidir.
Çözüm: Math.random()
ve Math.floor()
fonksiyonlarını kullanarak, belirli bir aralıkta rastgele tam sayılar üretebilirsiniz. Formül: Math.floor(Math.random() * max) + 1
Sayı tahmin oyununda, her oyun başlangıcında yeni bir rastgele sayı üretmek önemlidir.
Çözüm: Math.random()
ve Math.floor()
fonksiyonlarını kullanarak, belirli bir aralıkta rastgele tam sayılar üretebilirsiniz. Formül: Math.floor(Math.random() * max) + 1
Zorluk 2: Kullanıcı Girdisini Doğrulama
Kullanıcının geçerli bir sayı girdiğinden emin olmak önemlidir.
Çözüm: parseInt()
fonksiyonu ile kullanıcı girdisini sayıya çevirebilir ve isNaN()
fonksiyonu ile geçerli bir sayı olup olmadığını kontrol edebilirsiniz. Ayrıca, HTML input elementine type="number"
, min="1"
ve max="100"
öznitelikleri ekleyerek, tarayıcının kendi doğrulama mekanizmalarını da kullanabilirsiniz.
Kullanıcının geçerli bir sayı girdiğinden emin olmak önemlidir.
Çözüm: parseInt()
fonksiyonu ile kullanıcı girdisini sayıya çevirebilir ve isNaN()
fonksiyonu ile geçerli bir sayı olup olmadığını kontrol edebilirsiniz. Ayrıca, HTML input elementine type="number"
, min="1"
ve max="100"
öznitelikleri ekleyerek, tarayıcının kendi doğrulama mekanizmalarını da kullanabilirsiniz.
Zorluk 3: Oyun Durumunu Yönetme
Oyunun başlangıç, devam ve bitiş durumlarını doğru bir şekilde yönetmek önemlidir.
Çözüm: Oyun durumunu takip etmek için bir gameOver
değişkeni kullanabilirsiniz. Oyun başladığında false
, doğru tahmin edildiğinde veya zaman dolduğunda true
olarak ayarlayabilirsiniz. Bu değişkene göre, kullanıcının yeni tahminler yapmasını engelleyebilir veya izin verebilirsiniz.
Oyunun başlangıç, devam ve bitiş durumlarını doğru bir şekilde yönetmek önemlidir.
Çözüm: Oyun durumunu takip etmek için bir gameOver
değişkeni kullanabilirsiniz. Oyun başladığında false
, doğru tahmin edildiğinde veya zaman dolduğunda true
olarak ayarlayabilirsiniz. Bu değişkene göre, kullanıcının yeni tahminler yapmasını engelleyebilir veya izin verebilirsiniz.
Geliştirme İpuçları
- Kullanıcı Deneyimine Odaklanın: Kullanıcıya açık ve anlaşılır geri bildirimler verin. Doğru, yüksek ve düşük tahminler için farklı renkler ve mesajlar kullanın.
- Aralık Göstergeleri Ekleyin: Kullanıcının daha stratejik tahminler yapabilmesi için, minimum ve maksimum aralık göstergeleri ekleyin.
- Tahmin Geçmişi Sağlayın: Kullanıcının önceki tahminlerini ve sonuçlarını görmesi, oyunu daha stratejik hale getirir.
- Oyunu Özelleştirilebilir Yapın: Kullanıcının zorluk seviyesini, sayı aralığını veya zaman sınırını seçebilmesini sağlayın.
- Görsel Geri Bildirim Ekleyin: Animasyonlar, renkler ve ikonlar kullanarak, kullanıcıya görsel geri bildirim sağlayın.
- Kullanıcı Deneyimine Odaklanın: Kullanıcıya açık ve anlaşılır geri bildirimler verin. Doğru, yüksek ve düşük tahminler için farklı renkler ve mesajlar kullanın.
- Aralık Göstergeleri Ekleyin: Kullanıcının daha stratejik tahminler yapabilmesi için, minimum ve maksimum aralık göstergeleri ekleyin.
- Tahmin Geçmişi Sağlayın: Kullanıcının önceki tahminlerini ve sonuçlarını görmesi, oyunu daha stratejik hale getirir.
- Oyunu Özelleştirilebilir Yapın: Kullanıcının zorluk seviyesini, sayı aralığını veya zaman sınırını seçebilmesini sağlayın.
- Görsel Geri Bildirim Ekleyin: Animasyonlar, renkler ve ikonlar kullanarak, kullanıcıya görsel geri bildirim sağlayın.
Proje Genişletme Fikirleri
- Çoklu Oyuncu Modu: İki oyuncunun sırayla tahmin yapabildiği bir mod ekleyin. Her oyuncu, diğer oyuncunun tahminlerini görebilir ve sıra kendisine geldiğinde tahmin yapar.
- Farklı Oyun Modları: "Tersine Tahmin" modu ekleyin, burada kullanıcı bir sayı seçer ve bilgisayar tahmin etmeye çalışır.
- Görsel İpuçları: Tahminlere göre değişen bir termometre veya hedef tahtası gibi görsel ipuçları ekleyin.
- Ses Efektleri: Doğru, yüksek ve düşük tahminler için farklı ses efektleri ekleyin.
- Başarı Sistemi: Belirli hedefleri tamamladıkça açılan başarılar ekleyin (örneğin, "5 denemede doğru tahmin", "3 oyun üst üste kazanma" vb.).
- Tema Değiştirme: Kullanıcının açık/koyu tema arasında geçiş yapabilmesini sağlayın.
- Çoklu Oyuncu Modu: İki oyuncunun sırayla tahmin yapabildiği bir mod ekleyin. Her oyuncu, diğer oyuncunun tahminlerini görebilir ve sıra kendisine geldiğinde tahmin yapar.
- Farklı Oyun Modları: "Tersine Tahmin" modu ekleyin, burada kullanıcı bir sayı seçer ve bilgisayar tahmin etmeye çalışır.
- Görsel İpuçları: Tahminlere göre değişen bir termometre veya hedef tahtası gibi görsel ipuçları ekleyin.
- Ses Efektleri: Doğru, yüksek ve düşük tahminler için farklı ses efektleri ekleyin.
- Başarı Sistemi: Belirli hedefleri tamamladıkça açılan başarılar ekleyin (örneğin, "5 denemede doğru tahmin", "3 oyun üst üste kazanma" vb.).
- Tema Değiştirme: Kullanıcının açık/koyu tema arasında geçiş yapabilmesini sağlayın.