|
Php ile Sihirli Kare Yapma (tek sayılar için)
Mar 26,2008 00:00
by
kuzeyy_22
Arkadaşlar sizlere bulmacalarda sıkça bu yazıda da girilen tk sayıya göre sihirli kare oluşturmayı gösterecem. Mesela 1'den 9'a kadar olan bir sihirli kare şeklinde olur. Bunu dahada genişletebiliriz. Bu kareyi oluşturmayı sağlayan php script aşağıda verilmiştir. <form action="" name="main" method="post"> <table align="center"> <tr><td align="center">Girilecek olan sayı</td></tr> <tr><td><input type="text" name="sayi"></td></tr> <tr><td align="center"><input type="submit" name="onay" value="Kare Oluştur"></td></tr> </table></form> <?php if(isset($_POST['onay'])){ $dizi1=range(1,100); $dizi2=range(1,100); $dizi=array($dizi1,$dizi2); $sayi=(int)$_POST['sayi']; $sayikare=$sayi*$sayi; for($i=1;$i<=$sayi;$i++){ for($j=1;$j<=$sayi;$j++){ $dizi[$i][$j]=0; } } $i=1; $j=floor(($sayi+1)/2); for ($k=1;$k<=$sayikare;$k++){ if($dizi[$i][$j]>0){ $i=$i+2; $j=$j-1; } $dizi[$i][$j]=$k; $i=$i-1; $j=$j+1; if (($i==0) and ($j>$sayi)){ $i=$i+2; $j=$j-1; } if ($i==0){ $i=$sayi; } if ($j>$sayi){ $j=1; } } echo "<table border=\"2\" align=\"center\"><tr>"; for($i=1;$i<=$sayi;$i++){ echo "</tr><tr>"; for($j=1;$j<=$sayi;$j++){ $a=$dizi[$i][$j]; print "<td align=\"center\">$a</td>"; } } } ?></tr></table> |