Witam, uczę się php i postanowiłem napisać sobie kółko i krzyżyk. Napisałem to bez spoglądania na inne przykłady, tylko robiłem jak ja to widzę.
Chciałbym abyście spojrzeli na kod i doradzili odnośnie samego pisania, co zmienić, jak itd... Zależało mi aby to było tylko w php. Również cieszyłbym się abyście doradzili za jakie programy się brać przy nauce (większe i mniejsze).
Dzięki, pozdrawiam.
<?php
function OdNowa()
{
for($i=0;$i<3;$i++)
{
for($j=0; $j<3; $j++)
$_SESSION['tab'][$i][$j]='';
}
$_SESSION['char']='X';
$_SESSION['nr']=0;
$_SESSION['win']=FALSE;
}
function szukajPoziom()
{
$ile=0;
for($i=0; $i<3; $i++) //poziom
{
for($j=0; $j<3; $j++)
{
if($_SESSION['tab'][$i][$j]!='')
{
if($ile==0)
{
$temp=$_SESSION['tab'][$i][$j];
$ile++;
}
else if($_SESSION['tab'][$i][$j]==$temp)
{
$ile++;
}
else $ile=0;
}
}
if($ile==3) return TRUE;
else $ile=0;
}
return FALSE;
}
function szukajPion()
{
$ile=0;
for($i=0; $i<3; $i++) //poziom
{
for($j=0; $j<3; $j++)
{
if($_SESSION['tab'][$j][$i]!='')
{
if($ile==0)
{
$temp=$_SESSION['tab'][$j][$i];
$ile++;
}
else if($_SESSION['tab'][$j][$i]==$temp)
{
$ile++;
}
else $ile=0;
}
}
if($ile==3) return TRUE;
else $ile=0;
}
return FALSE;
}
function szukajSkos()
{
//pierwszy
$ile=0;
for($j=0, $i=0; $j<3; $j++, $i++)
{
if($_SESSION['tab'][$j][$i]!='')
{
if($ile==0)
{
$temp=$_SESSION['tab'][$j][$i];
$ile++;
}
else if($_SESSION['tab'][$j][$i]==$temp)
{
$ile++;
}
else $ile=0;
}
}
if($ile==3) return TRUE;
else $ile=0;
$temp='';
for($j=2, $i=0; $i<3; $j--, $i++)
{
if($_SESSION['tab'][$j][$i]!='')
{
if($ile==0)
{
$temp=$_SESSION['tab'][$j][$i];
$ile++;
}
else if($_SESSION['tab'][$j][$i]==$temp)
{
$ile++;
}
else $ile=0;
}
}
if($ile==3) return TRUE;
else return FALSE;
}
function sprawdz()
{
if($_SESSION['nr']>4)
{
if(szukajPion() || szukajPoziom() || szukajSkos())
return TRUE;
}
else return FALSE;
}
if(!isset($_SESSION['tab']) || isset($_GET['new']) || $_SESSION['win']==TRUE && !isset($_GET['i'])) {
OdNowa();
}
if(isset($_GET['i']) && isset($_GET['j']) && $_SESSION['win']==FALSE) //dodanie do tab znaku i sprawdzenie czy nikt nie wygrał {
$i=$_GET['i'];
$j=$_GET['j'];
if($_SESSION['tab'][$i][$j]=='')
{
$_SESSION['nr']++;
$_SESSION['tab'][$i][$j]=$_SESSION['char'];
if(sprawdz())
{
echo "wygrywa ".$_SESSION['char']; $_SESSION['win']=TRUE;
}
else
{
if($_SESSION['char']=='X') $_SESSION['char']='O';
else $_SESSION['char']='X';
}
}
else if($_SESSION['nr']==9
) echo "Remis!</br>"; else echo "W tym polu jest już znak!!!</br>"; }
echo '<h2>Teraz kolej '.$_SESSION['char'].'</h2></br></br>';
for($i=0; $i<3; $i++) //wypisanie "planszy"
{
for($j=0; $j<3; $j++)
echo '<a href="?i='.$i.'&j='.$j.'"><div style="border: 1px solid #000; padding: 10px; height: 20px; width:20px; float: left; text-align: center; font-size:20px;">'.$_SESSION['tab'][$i][$j].'</div></a>';
echo '<div style="clear: both;"></div>'; }
echo '</br></br><a href="?new=1">Od nowa</a>';
?>