PHP ile sayı tahmini (sayısal loto) uygulaması

makale.baslik

PHP ile sayı tahmin uygulaması paylaşacağım. PHP de diziler, fonksiyonlar ve döngüleri kullanarak bu uygulamayı oluşturacağız. Sizlerde bu uygulamayı geliştirip farklı amaçlar için kullanabilirsiniz.

Uygulamada önce 6 tane rast gele şanslı numara belirlenecek. Daha sonra 9 adet tahmin yapılacak ve şanslı numaralarla eşleşmesine bakılacak. Eşleşen numaralara ve kaç adet eşleştiği bilgisi verilecek. 

Burada şunu da belirtmek isterim uygulamayı yazarken yaptığım testlerde 5 ve 6 sayı eşleşmesini görmedim. Burdan anlaşılacağı üzere şans oyunlarının size çıkma olasılığı çok düşük. Hatta piyango bileti almaya giderken ölme ihtimaliniz, büyük ikramiyenin size çıkma ihtimalinden daha büyüktür.

Öncelikle index.php sayfamızı oluşturalım. Kodlar ile ilgili açıklamaları satır aralarında açıklama satırı olarak ekledim.

<?php
include("inc/fonksiyon.php"); // fonksiyonlarımı içeren dosyamızı sayfamıza ekliyoruz.
?>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Sayısal Loto</title>
</head>
<body>
<?php
$sansliNumaralar=SayiSalla();   //SayıSalla fonksiyonu ile şanslı numaralarımı belirliyoruz.
echo "Seçilen numaralar: ";
Yazdir($sansliNumaralar); //Şanslı numaraları oluşturduğumuz Yazdır fonksiyonu ile yazdırıyoruz.
echo "<br>";
for($i=1;$i<10;$i++)  // Kaç tane tahmin yapacak bunu for döngüsü ile belirliyoruz
{
$oynananNumaralar=SayiSalla(); 
echo "$i. Tahmin= ";
Tahmin($sansliNumaralar,$oynananNumaralar);  //Tahmin fonksiyonu ile eşleşen sayıları belirliyoruz
}
?>
</body>
</html>

Şimdi gelelim kullandığımız fonksiyonlara;

SayıSalla(): Bu fonksiyon ile 6 elemanlı bir dizi oluşturup dizi içindeki elemanların birbirinden farklı olmasını kontrol ettiriyoruz.
in_array fonksiyonu yardımı ile bu kontrolü gerçekleştiriyoruz. fonksiyon dizi geri döndürüyor. Döndürmeden önce sort fonksiyonu ile küçükten büyüğe sıralama yaptırıyoruz.

function SayiSalla()
{
    $i=1;
    $dizi[]=rand(1,49);
    do
     { 
         $k=rand(1,49);
        if(!in_array($k,$dizi))
        {
            $dizi[]=$k;
            $i++;    
        }
       }while($i<6);
    sort($dizi);
    return $dizi;
}

Yazdir(): Bu fonksiyon ile dizi elemanlarını ekrana yazdırıyoruz.

function Yazdir($dizi)
{    
    foreach ($dizi as $sayi)
     { 
           if($sayi<10)    echo "0";
         echo $sayi." ";
     }    
}

Tahmin(): Bu fonksiyon iki tane parametre alıyor yaptığı işte basit, gelen parametrelerden $dizi2'nin içinde şanslı numaralar ($dizi1) olup olmadığını kontrol ediyor.
Aynı şekilde kaç tane olduğu bilgisini de $k değişkeninde tutmaktadır. Eşleşen sayılarıda ekrana yazdırmaktadır.

function Tahmin($dizi1,$dizi2)
{
    Yazdir($dizi2);
    echo "----";
    $k=0;
    for($i=0;$i<6;$i++)
    {
        if(in_array($dizi2[$i],$dizi1 ))
        {
        if($dizi2[$i]<10) echo "0";     
        echo $dizi2[$i]." ";
        $k++;                
        }
    }
    echo "-----$k sayı tutturdunuz <br>";
}

Fonksiyonlarımız bu şekilde çalışmaktadır. Her birini ayrı uygulamalarda da kullanabilirsiniz.

Uygulamda anlamadığınız kısımlar varsa yorumlara yazarsanız yardımcı olurum.

Çalışmanın demo uygulaması için tıklayın.

Dosyaları indirmek için: tahmin.rar

Paylaş:

Yorumlar

  1. Veritabanındaki sayılarla tahmini nasıl yaparız

    1. rast gele sayı üretme işini veri tabanından gelecek şekilde yapabilirsiniz.