Bulunan 1 den 7 - Toplam 7
Sayı bulma oyunu - - Programlama - Ceviz Forum
  1. #1
    Ceviz Üyesi
    Üyelik Tarihi
    11-Temmuz-2008
    Mesaj
    25

    Uyarı Sayı bulma oyunu

    İşlem şu;
    Bilgisayar rastgele bir sayı üretiyor.Kişi bu sayıyı tahmin etmeye çalışıyor.Eğer tahmin edilen sayı bilgisayarın ürettiği sayıdan farklı ise kişinin yeni bir deneme yapması gerekiyor.Yani döngü bilene kadar devam etmeli.
    if ile yapamadım,While-wend ile yapamadım,Do-loop ile yapamadım(Yeniyim)
    Fakat bir takım problemler var.Aslında iki mantık yürüttüm ama ikisinde de başarısızlıklar var.Çünkü sayıyı tahmin etmek için butona basıldığında bilgisayar yeniden sayı üretiyor.Oysaki işlem sonuçlanana kadar üretilen sayının sabit kalması gerekir.
    1.bilgisayara bir sayı ürettirip bu sayı bilinene kadar sayının sabit tutulmasını sağlamak.(Başarısız,zaten sayfa çalışınca bilgisayar bir sayı üretiyor ve tahmin butonuna basınca bu sayıyı sabitleyemediğim için başarısız oluyor)
    2.seçenek =bir form aracılığı ile kişiye sayıyı tahmin ettirip ,aynı zamanda bilgisayara rastgele sayı ürettirip başka bir sayfaya yönlendirmek(Burada da bilgisayarın ürettiği sayıyı formdan çekemedim).
    Kodlar şu şekilde;
    <%
    Dim rastgelesayi 'Sayı değişkenimizi tanımlıyoruz.
    Randomize
    rastgelesayi=(Rnd*50)+1'Bilgisayara 1-50 aralığında bir sayı ürettiriyoruz
    %>
    <form action="07_Rastgele sayı oyunu2.asp" method="post" name="form1">
    <table width="364" border="1" cellspacing="0" cellpadding="0">
    <tr>
    <td colspan="2">&nbsp;</td>
    </tr>
    <tr>
    <td width="214">Lütfen 1-50 arası bir rakam giriniz.</td>
    <td width="144">Bilgisayarın ürettiği sayı</td>
    </tr>
    <tr>
    <td><input name="oyuncusayi" type="text" /></td>
    <td><%Response.Write(Round(rastgelesayi))%></td>
    </tr>
    <tr>
    <td colspan="2">
    <input name="gonder" type="submit" value="Gönder" />
    </td>
    </tr>
    </table>
    </form>

  2. #2
    Ceviz Üyesi MajeSSTe Üyenin Avatarı
    Üyelik Tarihi
    30-Ağustos-2008
    Mesaj
    161

    Varsayılan

    şu şekilde deneyin
    önce sayı üreten sayfanın başına şunu yazın

    if session("random") = "" then
    'random işlemleri burada ve sonra
    session("random") = rastgelesayi
    else
    rastgelesayi = session("random")
    end if

    yukarıdaki kod sayesinde random sayıyı bi session değerine kaydettik

    diğer kontrol edilen sayfada yani doğruluğu kontrol eden sayfada da şöyle yapınız

    if rastgelesayi = (kullanıcıdan gelen değer) then
    respone.write "Sayı doğru yeni tahmine geçiniz"
    session("random") = ""
    else
    response.write "tahmin hatalı tekrar deneyiniz"
    end if


    bu sayede 2. sayfada kontrol edilecek eğer sayı doğruysa session boş gidecek yeni sayfada da yeni sayı üretilecek
    eğer sayı yanlış tahmin edidiyse sessiondaki random sayı kullanılacak tekrar tahmin hakkı doğacak

    umarım anlatabilmişimdir

    kolay gelsin..

  3. #3
    Ceviz Üyesi
    Üyelik Tarihi
    11-Temmuz-2008
    Mesaj
    25

    Ampul

    Teşekkürler Majesste,
    session'u yapamadım demiştim sayende yaptım.
    ilgilenen olursa diye kodlar aşağıda;(Bilgisayarın ürettiği sayı kontrol amaçlı ekranda gösterildi)
    1.asp
    Kod:
     
    <body>
    <center>
    <br />
    <br />
    <%
    Dim bilsay 'Sayı değişkenimizi tanımlıyoruz.
    if session("bilsay") = "" then
    Randomize
    bilsay=round((Rnd*50)+1)'Bilgisayara 1-50 aralığında bir sayı ürettiriyoruz
    session("bilsay") = bilsay
    else 
    bilsay = session("bilsay")
    end if
    %>
    <form action="2.asp" method="post" name="form1">
    <table width="364" border="1" cellspacing="0" cellpadding="0">
    <tr>
    <td colspan="2">&nbsp;</td>
    </tr>
    <tr>
    <td width="214">Lütfen 1-50 arası bir rakam giriniz.</td>
    <td width="144">Bilgisayarın ürettiği sayı</td>
    </tr>
    <tr>
    <td><input name="oyuncusayi" type="text" maxlength="2" /></td>
    <td><label>
    <input name="bilsay" type="text" id="bilsay" value="<%=bilsay%>" />
    </label> </td>
    </tr>
    <tr>
    <td colspan="2">
    <input name="gonder" type="submit" value="Gönder" />
    </td>
    </tr>
    </table>
    </form>
    </center>
    </body>
    2.asp
    Kod:
     
    <body>
    <center>
      <br />
        <br />
        <table width="200" border="1" cellspacing="0" cellpadding="0">
      <tr>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
      </tr>
      <tr>
        <td>Sizin Sayınız</td>
        <td>Bigisayarın Sayısı</td>
      </tr>
      <tr>
        <td><%oyuncusayi=request.form("oyuncusayi")%><%=oyuncusayi%></td>
        <td><%
     bilsay=Request.Form("bilsay")
     %><%=bilsay%>    </td>
      </tr>
      <tr>
        <td colspan="2"><%
         if bilsay = oyuncusayi then
      Response.Write "Tahmin doğru yeni tahmine geçiniz"
    session("bilsay") = ""
    elseif oyuncusayi < bilsay then
    Response.Write "Tahmin küçük yeniden deneyiniz"
    else 
    Response.Write "Tahmin büyük yeniden deneyiniz"
    end if
      %>
     
        </td>
        </tr>
    </table>
        <p><a href="07_Rastgele sayı oyunu.asp">Geri dön</a></p>
    </center>
    </body>

  4. #4
    Ceviz Üyesi
    Üyelik Tarihi
    11-Temmuz-2008
    Mesaj
    25

    Varsayılan

    Alıntı MajeSSTe Demiş ki: Mesajı Görüntüle

    session("random") = rastgelesayi
    else
    rastgelesayi = session("random")
    end if
    Yalnız bu işlemi her iki durumda da random rastgele sayıya eşit olsun diyemi yaptık.Mantığını biraz açıklayabilirmisin?

  5. #5
    Ceviz Üyesi demo Üyenin Avatarı
    Üyelik Tarihi
    28-Eylül-2006
    Nereden
    34770
    Mesaj
    372

    Varsayılan

    eğer sesionda random değişkeni boş ise rastgele sayı üretilmemiş demektir. Bu durumda önce rastgele bir sayı üertiyor ve sayıyı sesionda random değişkenine atıyoruz, ki sayfa tekrar çağırıldığında bu değişken değer taşıyacağı için tekrar rastgele bir sayı üretilmeyecek ve else komutundan sonraki satır işleme girerek rastgelesayi değişkenine öncede session random değişkenine atadığımız değeri atayacak.

    Böyle basit bir oyun için asp kullanmak yerine javascript kullanmak daha performanslı olur.
    Demir Çelenk KaraKaplı
    Saygı ve sevgilerle...

  6. #6
    Ceviz Üyesi
    Üyelik Tarihi
    11-Temmuz-2008
    Mesaj
    25

    Varsayılan

    Açıklama için teşekkürler,
    Alıntı demo Demiş ki: Mesajı Görüntüle
    Böyle basit bir oyun için asp kullanmak yerine javascript kullanmak daha performanslı olur.
    Benim amacım Asp/VBscript öğrenmek.Ondan ötürü aklıma gelen bu uygulamayı yaptım.Hem interneti hemde Hakkı ÖCAL'ın yazmış olduğu kitabı sıra ile takip ettiğimden öğrenmiş olduğum komutlarla bunu yapmaya çalıştım.(Gerçi birçok komut/uygulama hakkında yarım yamalak bir bilgiye sahibim sıfırdan başlamak istedim)

  7. #7
    Ceviz Üyesi MajeSSTe Üyenin Avatarı
    Üyelik Tarihi
    30-Ağustos-2008
    Mesaj
    161

    Varsayılan

    anafor,

    sanırım demo hocamızın anlattığını anladınız bu durumda açıklama gereği duymadım
    eğer isterseniz yazabilirim

Konu Bilgileri

Bu Konuya Gözatan Kullanıcılar

Şu anda 1 kullanıcı bu konuyu görüntülüyor. (0 kayıtlı ve 1 misafir)

Yer İmleri

Mesaj Yetkileriniz

  • Yeni konu açmaya yetkiniz yok
  • Cevap yazmaya yetkiniz yok
  • Eklenti yüklemeye yetkiniz yok
  • Mesajınızı düzeltmeye yetkiniz yok
  •