Javascript Rastgele Sayı ile Oyun Scripti

Javascript rastgele sayı ile oyun scripti oluşturmak için “Math.random()” fonksiyonu kullanarak bir küçük tahmin oyunu yapalım. Bunun için öncelikle kullanıcıdan bir sayı girmesini isteyeceğiz. “prompt” komutu ile kullanıcıdan inputbox ile bilgi girmesini sağlıyor bu girdiği değeri “var” ile tanımladığımız tutulansayi değişkenine atayalım.

var tutulansayi = prompt(“Lütfen 0 ile 10 arasında bir sayı giriniz.”);

 

 

Şimdi “Math.random()” fonksiyonunun işleyişine bakalım. Bu fonksiyon C# ‘ taki gibi çalışır ancak ürettiği sayı aralığını fonksiyon içinde parametre ile belirleyemezsiniz. Javascriptte bu fonksiyon 0 ile 1 arasında değer alır ancak 1 bu sayıya dahil değildir ve ürettiğ sayı en fazla 0,9999 şeklinde olabilir. Ayrıca bu aralıkta tam sayı olmadığından dolayı üretilen sayı hep noktalı kayan sayı olarak üretilir.

Bu anlamda “Math.random()*11” yaptığımızda en yüksek üretilen sayıyı yani 0,999 u 11 le çarparsak 10.89 sayısını üretebilirsiniz.

Ancak bu sayı bizim işimizi görmez çünkü biz bir tamsayı değerini değişkene atamalıyız. Bunun için Math sınıfının başka bir fonksiyonunu kullanmalıyız. “Math.floor()” fonksiyon parametre olarak bir number veritipi ister. Number veritipi noktalı kayan sayı olursa bu sayıyı tam sayıya yuvarlar. Bu durumda ifademiz aşağıdaki gibi olacaktır.

var rastgelesayi= Math.floor(Math.random()*11);

 

 

Şimdi bilgisayarı döngü ile kullanıcının girdiği değerle bilgisayar tarafından tutulan değerin eşitliğini kontrol etmeye ve duruma göre döngüye devam etmeye yönlendireceğiz.

Bunun için aşağıdaki while döngüsünü oluşturduk. Bunu farklı döngü komutlarıyla da oluşturabilirsiniz. Ben while seçtim. While döngüsünde bilgisayar tarafından rastgele üretilen sayı ile kullanıcının aklından tuttuğu ve inputbox’ a girdiği sayı eşit olmadığında döngü devam edecektir.

while(!(tutulansayi==rastgelesayi))
{
}

 

 

 

Peki bu durumda döngünün için bu anlamda ne yazmalıyız? Ekrana bir mesajla sayının yanlış olduğunu ve tekrar girmesi gerektiğini kullanıcıya belirtmemiz gerekir. Yani aşağıdaki kodu while döngüsünün içine yazmamız yeterlidir. Bu kodda aslında tutulansayi değişkenine kullanıcının farklı bir değer atamasını sağlıyoruz. Döngü tekrar while(!(tutulansayi==rastgelesayi)) satırına geliyor ve yeni değeri tekrar karşılaştırıyor.

tutulansayi=prompt(“Yanlış girdiniz. Tekrar deneyin.”);

 

 

Eğer kullanıcı ikinci girdiği değer bilgisayar tarafından tutulan sayıya eşitse bu kez döngüden çıkılacaktır. Döngüden çıkıldığında ekrana document.write() fonksiyonu ile bir mesaj yazmasını aşağıdaki sağlıyoruz.

document.write(“Tebrikler sayıyı doğru bildiniz.”);

Programımızın son hali aşağıdaki gibi olacaktır. Ancak birkaç ekleme de yapabiliriz.

<script>
var rastgelesayi= Math.floor(Math.random()*11);
var tutulansayi = prompt(“Lütfen 0 ile 10 arasında bir sayı giriniz.”);
while(!(tutulansayi==rastgelesayi)) //tutulansayi ve rastgelesayi birbirine eşit değilse
{
tutulansayi=prompt(“Yanlış girdiniz. Tekrar deneyin. (ipucu: daha küçük)”);
}
document.write(“Tebrikler sayıyı doğru bildiniz.”);
</script>

Örneğin kullanıcının girdiği sayı tutulan sayıdan küçükse kullanıcıya daha büyük sayı giriniz şeklinde ipucu verebiliriz. Tam tersi olduğunda daha küçük sayı giriniz şeklinde yönlendirme yapabiliriz.

Bunun için ben if kontrol yapısını kullandım. Programın son hali aşağıdaki gibidir.

 

<script>
var rastgelesayi= Math.floor(Math.random()*11);
var tutulansayi = prompt(“Lütfen 0 ile 10 arasında bir sayı giriniz.”);
while(!(tutulansayi==rastgelesayi)) //tutulansayi ve rastgelesayi birbirine eşit değilse
{
if(tutulansayi>rastgelesayi)
{

tutulansayi=prompt(“Yanlış girdiniz. Tekrar deneyin. (ipucu: daha küçük)”);
}
else
{
tutulansayi=prompt(“Yanlış girdiniz. Tekrar deneyin. (ipucu: daha büyük)”);
}
}
document.write(“Tebrikler sayıyı doğru bildiniz.”);
</script>

 

Kaynak Dosyayı indirmek için tıklayın…

Not: Makale özgün bir makaledir. Alıntı yapmadan kullanılamaz. @bilgisayar.name

Javascript Rastgele Sayı ile Oyun Scripti

Yararlı İnsanlar Topluluğu

Sadece şimdiyi değil, aynı zamanda gelecekteki gelişmeleri de açık bir şekilde öngörebilen bir kimse bilgiye sahiptir.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.