PHP Dersleri 27: PHP ile SOS Oyunu Yapımı


01.12.2012-18:32 Tarihinde Eklendi.
www.seyfettinkahveci.com Derecelendirme: 10 / 10 Oy Sayısı: 16005743Toplam Puan: 63930 / Yorum Sayısı: 412005743 adet.


Merhaba arkadaşlar sizlere bu yazımda SOS oyunu bir benzeri(satırda veya sutünda aynı değerden olması durumda kazanılan) oyun yapımını anlatacağım. Bu oyunda yaptığımız önceki işlemleri hafızada tutmak için session kullandım siz isterseniz cookie v.b. kullanabilirsiniz. Şimdi aşağıdaki kodları ve açıklamalarını dikkatli bir şekilde inceleyelim.

<?php
session_start();//sessionlar açılıyor
$Veriler=array("S","E");//veriler adında bir dizi tanımlayıp 0. elemanı s 1. elemanı e olması sağlanıyor
if(isset($_GET['temizle'])){//temizle verisi geldi ise
	session_unset();//sessionu temizle
}//temizle versi gelmedi ise
if(isset($_GET['sat']) and isset($_GET['sat'])){//sat ve sut geldi ise
	$Deger=$Veriler[rand(0,(count($Veriler)-1))];//randomize olarak veriler dizisindeki elemanlarını değer degişkenine koy
	$_SESSION['tablo'][$_GET['sat']][$_GET['sut']]=$Deger;//belirtilen değerlere deger değişkenindeki veri aktarılıyor 	
	$SutDeger=0;//sutdeger e ilk degeri veriliyor
	$SatDeger=0;//satdeger e ilk degeri veriliyor
	for($sat=0;$sat<=10;$sat++){//satır kontrolu yapılacak aynı sutunda ve sutnda 3den fazla olunca oyun bitecek
		if($_SESSION['tablo'][$sat][$_GET['sut']]==$Deger){//aynı sutunda veri varsa
			$SutDeger++;//sutun değer 1 arttırılıyor
		}
		if($_SESSION['tablo'][$_GET['sat']][$sat]==$Deger){//aynı satırda veri varsa
			$SatDeger++;//satır değer 1 arttırılıyor
		}
	}//satır kontrolu sonu
	if($SatDeger>=3 or $SutDeger>=3){//eğer aynı satırdave sutunda 3den fazla aynı değer varsa
		session_unset();//sessionları temizle
		header("location:index.php");//sayfayı index.phpye yönlendir
	}//3den fazla değer varsa sonu
}
if(!isset($_GET['sat'])){//gelen veri yoksa
	for( $k=0;$k<=10;$k++){//dizinin ilk boyutu için döngü açtık
		for( $l=0;$l<=10;$l++){//dizinin ikinci boyutu için döngü açtık
			$tablo[$k][$l]=1;//ikiboyutlu dizinin içine 1 atanıyor
		}	//dizinin ikinci boyutu için döngü açtık
	}	//dizinin ilk boyutu için döngü açtık
	$_SESSION['tablo']=$tablo;//sessiona verileri unutmaması için tablo dizisi atanıyor
}//gelen veri yoksa sonu
$tablo=$_SESSION['tablo'];//sessiondaki bilşgi tabloya aktarılıyor tablonun özelliği dizi oluyor
echo "<table border='2'>";
for($sat=0;$sat<=10;$sat++){//tabloyu ekrana yazdırmak için dizinin ilk boyutunu belirleyecek döngü açılıyor
	echo "<tr>";//satır açılıyor
	for($sut=0;$sut<=10;$sut++){//tabloyu ekrana yazdırmak için dizinin ikinci boyutunu belirleyecek döngü açılıyor
		if($tablo[$sat][$sut]==1){//tablodaki satır ve sutundaki veriler 1 ise aşağıdakileri yap 
			echo "<td><a href='?sat=$sat&sut=$sut'>Tıkla</a></td>";//link koyuluyor
		}//tablodaki veriler 1 ise sonu
		else{//tablodaki satır ve sutundaki veriler 2 ise aşağıdakileri yap 
			echo "<td>".$tablo[$sat][$sut]."</td>";//tablodaki veriyi koy
		}//tablodaki veriler 2 ise sonu
	}//tabloyu ekrana yazdırmak için dizinin ikinci boyutunu belirleyecek döngü kapatılıyor
	echo "</tr>";//satır kapatılıyor
}//tabloyu ekrana yazdırmak için dizinin ilk boyutunu belirleyecek döngü kapatılıyor
echo "</table>";
echo "<a href='?temizle=1'>temizle</a>";//ekrana temizle butonu koy
?>

Kodların açıklamalarında her bir kodun ne işe yaradığını anlattım fakat anlamadığınız bir yer veya karşılaştığınız problem varsa yorum ekle bölümünden yazın en kısa sürede cevaplamaya çalışırım.İyi çalışmalar.

Seyfettin KAHVECİ
Balıkesir Üniversitesi
NEF-BOTE



Yazının tamamının kopyalanması yasaktır. En baştaki birkaç paragrafı kopyalayıp, yazıya link verebilirsiniz. Aksi durumda uyarılmaksızın yasal yollara gidilecektir.

Uzun süredir yorumlara cevap veremediğim için sistem yeni yorumlara kapatılmıştır. Anlayışınız için teşekkürler.
Yorumlar
Bu makale için henüz hiç yorum yapılmamış.