Javscript sayı tahmin etme oyunu

Merhaba boyle bir sayi tahmin oyunu yaptim.ama calismiyor.neyi yanlis yaptigimi anlatirmisiniz rica etsem. kodlar:

<meta charset="UTF-8">

<meta name="viewport" content="width=device-width, initial-scale=1.0">

<title>js ogreneme</title>

<style type="text/css">

#div1{

    background-color: black;

    color: white;

    height: 60px;

    font-size: 40px;

    text-align: center;

}

button{

    margin-left: 240px;

    padding: 17px;

    width: 90px;

    outline-color: green;

    border: 1px solid green;

}

p{

    margin-left: 245px;

    font-size: 20px;

}

input{

    outline-color: green;

}



</style>
<div id="div1">HTMLCSSJS</div>

<hr>

<h1>sayi tahmin oyunu</h1>

<input type="text" id="girreqem" placeholder="reqemi gir">

<div id="div2"></div>



<script>

    /*function isci(adi,soyadi,nomresi){

        this.adi=adi;

        this.soyadi=soyadi;

        this.nomresi=nomresi;

        this.melumatla=function(){

            return "adi: "+this.adi+"\nsoayadi: "+this.soyadi+"\nnomresi: "+this.nomresi

        }

    }

    var isci1=new isci("abdullah","veliyev",12345)

    console.log(isci1.melumatla())

    var array=["javascript","python","php","htmlcss"]

    var sonuc=""

    for(sonuc in array){

        document.write(sonuc+"<br/>")

        document.write(array[sonuc])

        //blue and black shards

    function hesabla(){

        var fakt=1

        var reqem=document.getElementById("reqem").value

        reqem=Number(reqem)

        if(reqem==0){

            document.getElementById("div2").innerHTML="faktoryal: 1"

        }

        else{

            for(var i=1; i<reqem+1; i++){ 

                fakt=fakt*i

            }

            document.getElementById("div2").innerHTML="faktoryal: " + fakt

            

        }

    }*/

    

    var girreqem=document.getElementById("girreqem").value

    girreqem=Number(girreqem)

    var reqem=Math.floor(Math.random() * 101)

    if(girreqem<reqem){

        document.getElementById("div2").innerHTML="daha boyuk reqem girin!"

    }

    else if(girreqem>reqem){

        document.getElementById("div2").innerHTML="daha kicik reqem girin!"

    }

    else if(girreqem==reqem){

        alert("bravoo reqemi tapdiniz!")

    }

</script>    

YARDIMCI OLURSANIZ SEVINIRIM(yorum satirlarini takmayin)

Merhaba. HTML sayfası açılır açılmaz javascript kodları çalışmaya başlıyor ve rakam girilen alandaki bilgiyi(dolayısıyla boş bir değeri) alıp ekrana bilgiyi bastırıyor.

Hatanız, sayıyı kullanıcı girdikten sonra değil sayfa yüklenir yüklenmez kontrol etmenizdir. Bu yüzden önce sayfanın yüklenmesini ve HTML sayfanın kullanıcıya gösterilmesini beklemelisiniz. window.onload nedir araştırmak isteyebilirsiniz.

Diğer bir hatanız daha doğrusu eksikliğiniz, kullanıcı sayıyı girince kontrol etmesini sağlayacak bir buton yok, ya da mekanizma yok. Bu yüzden ya kontrol et şeklinde bir buton ekleyin. Ya da keylistener fonksiyonları ile Enter’a basılınca sayıyı alıp kontrol edin.

1 Beğeni

oncelile detayli cevabiniz icin tesekkurler.dediyiniz seyleri yapicam.buton konusuna gelince ben buntonsuz olmasini istiyorum butunsuz bu is olmazmi?

Rica ederim, ben diğer kişiye cevap yazmıştım. Sanırım iki hesabınız var, doğru mu?

Soruya gelecek olursak butonsuz yapmanın yolu, Enter tuşuna basıldığını anlamak için keylistener fonksiyonlarını kullanmak.

https://www.w3schools.com/jsref/event_onkeypress.asp

Evet 2 hesabim var:)peki soyle birsey yapilamazmi mesela ben rakami yazayim anlik olarak gostersin buyukmu kucukmu diye yani bir tusa yada butona basmadan?
Tekrar tesekkurler.

Yapılabilir tabi. Ama bir basamaklı olmadığını düşünürsek, kullanıcı her rakam girdiğinde program tahminin doğru olup olmadığını kontrol edecek. Diyelim ki sayı 98. Kullanıcı 9’a bastı ve kontrol çalıştı. 9’u aldı ve yanlış olduğunu söyledi. Sonra kullanıcı 8’e bastı ve kontrol tekrar çalıştı. 98 olarak okudu ve doğru dedi. 2 denemede kullanıcının doğru cevabı bulduğunu hesaplamış olursunuz, ancak doğrusu kullanıcı henüz 1 deneme yapmıştır. Yani tavsiyem enter veya buton kullanmak. Her rakam girdiğinde kontrol etmek için onkeyup kullanabilirsin.

Tesekkurler.Acaba diger yazimida cevaplaya bilirmisiniz?