Merhaba arkadaşlar bulmacalarda çok sık karşılaştığımız sihirli kareleri oluşturan programı size sunayım dedim.
Sihirli kare herkesin bildiği gibi sağdan sola, yukardan aşağıya ve çapraz olarak toplamları aynı olan karedir. Örnek:
Yukarda bir sihirli kare görülmektedir. Bu ve bunun gibi kareleri oluşturan php script aşağıda verilmiştir. Bu program tek sayılar için geçerlidir. Hiçbir yerden alıntı veya çalıntı değildir...
-----------------------------------------------------------------------------------------------------------------
<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>
-----------------------------------------------------------------------------------------------------------------
|