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.

  1. <?php
  2.  
  3.  
  4.  
  5.  
  6. function OdNowa()
  7. {
  8. for($i=0;$i<3;$i++)
  9. {
  10. for($j=0; $j<3; $j++)
  11. $_SESSION['tab'][$i][$j]='';
  12. }
  13.  
  14. $_SESSION['char']='X';
  15. $_SESSION['nr']=0;
  16. $_SESSION['win']=FALSE;
  17. }
  18.  
  19. function szukajPoziom()
  20. {
  21. $ile=0;
  22. for($i=0; $i<3; $i++) //poziom
  23. {
  24. for($j=0; $j<3; $j++)
  25. {
  26. if($_SESSION['tab'][$i][$j]!='')
  27. {
  28.  
  29. if($ile==0)
  30. {
  31. $temp=$_SESSION['tab'][$i][$j];
  32. $ile++;
  33. }
  34.  
  35. else if($_SESSION['tab'][$i][$j]==$temp)
  36. {
  37. $ile++;
  38. }
  39.  
  40. else $ile=0;
  41.  
  42. }
  43. }
  44.  
  45. if($ile==3) return TRUE;
  46. else $ile=0;
  47. }
  48. return FALSE;
  49. }
  50. function szukajPion()
  51. {
  52. $ile=0;
  53. for($i=0; $i<3; $i++) //poziom
  54. {
  55. for($j=0; $j<3; $j++)
  56. {
  57. if($_SESSION['tab'][$j][$i]!='')
  58. {
  59.  
  60. if($ile==0)
  61. {
  62. $temp=$_SESSION['tab'][$j][$i];
  63. $ile++;
  64. }
  65.  
  66. else if($_SESSION['tab'][$j][$i]==$temp)
  67. {
  68. $ile++;
  69. }
  70.  
  71. else $ile=0;
  72.  
  73. }
  74. }
  75.  
  76. if($ile==3) return TRUE;
  77. else $ile=0;
  78. }
  79. return FALSE;
  80. }
  81.  
  82. function szukajSkos()
  83. {
  84. //pierwszy
  85. $ile=0;
  86.  
  87. for($j=0, $i=0; $j<3; $j++, $i++)
  88. {
  89. if($_SESSION['tab'][$j][$i]!='')
  90. {
  91.  
  92. if($ile==0)
  93. {
  94. $temp=$_SESSION['tab'][$j][$i];
  95. $ile++;
  96. }
  97.  
  98. else if($_SESSION['tab'][$j][$i]==$temp)
  99. {
  100. $ile++;
  101. }
  102.  
  103. else $ile=0;
  104.  
  105. }
  106. }
  107.  
  108. if($ile==3) return TRUE;
  109. else $ile=0;
  110.  
  111. $temp='';
  112.  
  113. for($j=2, $i=0; $i<3; $j--, $i++)
  114. {
  115. if($_SESSION['tab'][$j][$i]!='')
  116. {
  117.  
  118. if($ile==0)
  119. {
  120. $temp=$_SESSION['tab'][$j][$i];
  121. $ile++;
  122. }
  123.  
  124. else if($_SESSION['tab'][$j][$i]==$temp)
  125. {
  126. $ile++;
  127. }
  128.  
  129. else $ile=0;
  130.  
  131. }
  132. }
  133.  
  134.  
  135. if($ile==3) return TRUE;
  136. else return FALSE;
  137.  
  138. }
  139.  
  140. function sprawdz()
  141. {
  142. if($_SESSION['nr']>4)
  143. {
  144. if(szukajPion() || szukajPoziom() || szukajSkos())
  145. return TRUE;
  146.  
  147. }
  148. else return FALSE;
  149. }
  150.  
  151. if(!isset($_SESSION['tab']) || isset($_GET['new']) || $_SESSION['win']==TRUE && !isset($_GET['i']))
  152. {
  153. OdNowa();
  154. }
  155.  
  156.  
  157.  
  158. if(isset($_GET['i']) && isset($_GET['j']) && $_SESSION['win']==FALSE) //dodanie do tab znaku i sprawdzenie czy nikt nie wygrał
  159. {
  160. $i=$_GET['i'];
  161. $j=$_GET['j'];
  162.  
  163. if($_SESSION['tab'][$i][$j]=='')
  164. {
  165. $_SESSION['nr']++;
  166. $_SESSION['tab'][$i][$j]=$_SESSION['char'];
  167.  
  168. if(sprawdz())
  169. {
  170. echo "wygrywa ".$_SESSION['char'];
  171. $_SESSION['win']=TRUE;
  172. }
  173.  
  174. else
  175. {
  176. if($_SESSION['char']=='X') $_SESSION['char']='O';
  177. else $_SESSION['char']='X';
  178. }
  179. }
  180. else if($_SESSION['nr']==9) echo "Remis!</br>";
  181. else echo "W tym polu jest już znak!!!</br>";
  182. }
  183.  
  184. echo '<h2>Teraz kolej '.$_SESSION['char'].'</h2></br></br>';
  185.  
  186. for($i=0; $i<3; $i++) //wypisanie "planszy"
  187. {
  188. for($j=0; $j<3; $j++)
  189. 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>';
  190.  
  191. echo '<div style="clear: both;"></div>';
  192. }
  193.  
  194. echo '</br></br><a href="?new=1">Od nowa</a>';
  195.  
  196.  
  197.  
  198.  
  199.  
  200. ?>