Merhaba arkadaşlar bu yazıda bir çok PHP özelliğini kullanarak masaüstü uygulamalarda olduğu gibi bir sayı tahmin oyunu yapacağız. Oyunun çalışma mantığında sistem tarafından 1-100 arasında rastgele sayı üretilecek(tek sefer), üretilen sayıyı kullanıcı aşağı yukarı yaparak tahmin etmeye çalışacak.
Bu uygulamada rand fonksiyonu gibi oturum yöntimleri de kullanılacaktır. Oturumun amacı sistem tarafından rastgele sayının değişmesini engellemektir.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 | <?php session_start(); $cevap=""; if(isset($_POST["sayi"]) && isset($_SESSION["sayi"])){ //sayi post edildiyse ve session.sayi varsa if($_POST["sayi"] < $_SESSION["sayi"]){ $cevap="Tuttuğunuz sayı küçük bir sayı"; }else if($_POST["sayi"] > $_SESSION["sayi"]){ $cevap="Tuttuğunuz sayı büyük bir sayı"; }else{ $cevap="Tebrikler"; } } else{ $cevap ="Sayı üretilmedi yada sayı tahmini yapılmadı"; } if(isset($_POST["sayiUret"])){ //rastgele sayı üretip oturuma kaydedilecek $rastgele = rand(1,100); $_SESSION["sayi"] = $rastgele; } ?> <!DOCTYPE html> <html lang="tr"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Tasarimkodlama.com</title> </head> <body> <div class="container"> <form action="" method="post"> <button type="submit" name="sayiUret">Rastgele Sayı Tut</button> </form> <form action="" method="post"> <input type="text" name="sayi" placeholder="Bir Sayı Girin" > <button type="submit">Tahmin Et</button> </div> </form> <h1><?=$cevap?></h1> </div> </body> </html> |
Yukarıdaki kodları biraz inceleyelim.
İlk satırdaki session_start() bir oturum başlatılacağını ifade etmektedir. $cevap değişkeni h1 etiketi içindeki bilgilendirici metni tutmaktadır. Gelelim if bloklarının çalışma mantığına
1 2 3 4 5 6 7 8 | if(isset($_POST["sayiUret"])){ //rastgele sayı üretip oturuma kaydedilecek $rastgele = rand(1,100); $_SESSION["sayi"] = $rastgele; } |
Yukarıdaki PHP kodu rastgele sayı üretip $_SESSION[“sayi”] değişkeninde tutmaktadır. Sayı üret butonuna her tıklandığında sayı 1-100 arasında yeniden tutulacaktır.
1 2 3 4 5 6 7 8 9 10 11 12 | if(isset($_POST["sayi"]) && isset($_SESSION["sayi"])){ //sayi post edildiyse ve session.sayi varsa if($_POST["sayi"] < $_SESSION["sayi"]){ $cevap="Tuttuğunuz sayı küçük bir sayı"; }else if($_POST["sayi"] > $_SESSION["sayi"]){ $cevap="Tuttuğunuz sayı büyük bir sayı"; }else{ $cevap="Tebrikler"; } } |
Bu kodda ise $_POST[“sayi”] ile kullanıcının tuttuğu formu gönderilmiş mi ve oturumda sayı var mı kontrolü yapılmaktadır. Oturumda sayı olup olmadığını kontrol etmek olaşı başlangıç hatalarını engellemek içindir. Sonraki aşamalar her sayı tahmin oyununda olduğu gibi yukarı aşağı komutlarını vererek kullanıcıyı yönlendirme işlemi yapmak içindir.
Bu sayı tahmin oyununda sayaç yapmadım. Fakat siz isterseniz sayının üretildiği blokta sayaç tanımlayıp tahmin bloğunda sayıcı bir artırarak ekrana yazdırabilirsiniz.
Örneğin çalışan hali bu adresten ulaşabilirsiniz. Ayrıca aşağıdaki kodlardan bootstrap ile şekillendirilmiş haline ulaşabilirsiniz.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 | <?php session_start(); $cevap=""; $tahmin=""; if(isset($_POST["sayi"]) && isset($_SESSION["sayi"])){ //sayi post edildiyse ve session.sayi varsa $tahmin=$_POST["sayi"]; if($_POST["sayi"] < $_SESSION["sayi"]){ $cevap="Tuttuğunuz sayı küçük bir sayı"; }else if($_POST["sayi"] > $_SESSION["sayi"]){ $cevap="Tuttuğunuz sayı büyük bir sayı"; }else{ $cevap="Tebrikler"; } } else{ $cevap ="Sayı üretilmedi yada sayı tahmini yapılmadı"; } if(isset($_POST["sayiUret"])){ //rastgele sayı üretip oturuma kaydedilecek $rastgele = rand(1,100); $_SESSION["sayi"] = $rastgele; } ?> <!DOCTYPE html> <html lang="tr"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Tasarimkodlama.com</title> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css"> </head> <body> <div class="container"> <form action="" method="post"> <button type="submit"class="btn btn-primary btn-lg" name="sayiUret">Rastgele Sayı Tut</button> </form> <form action="" method="post"> <div class="input-group"> <input type="text" class="form-control" name="sayi" placeholder="Bir Sayı Girin" > <div class="input-group-append"> <button class="btn btn-success" type="submit">Tahmin Et</button> </div> </div> </form> <h1>(<?=$tahmin?>)<?=$cevap?></h1> </div> </body> </html> |
Yorum Yap