Bonjour.

Je dois faire un jeu démineur en php.
J'ai fais les 3 premières fonctions :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
$tab = array();
 
function xyToz($size, $x, $y)
{
   return $size * $x + $y;
}
 
function init($size, &$tab)
{
    $nb_bomb = ($size * $size) / 5;
    for ($i = 0; $i < $nb_bomb; ) {
        $x = rand(0, $size - 1);
        $y = rand(0, $size - 1);
        if ($tab[xyToz($size, $x, $y)] === '*')
            continue;
        $tab[xyToz($size, $x, $y)] = '*';
        $i++;
    }
}
 
function print_tab($size, $tab)
{
    echo "__";
    for ($index = 0; $index < $size; $index++) {
        echo "_";
    }
    echo "\n";
    for ($x = 0; $x < $size; $x++) {
        echo "|";
        for ($y =0; $y < $size; $y++) {
            if ($tab[xyToz($size, $x, $y)] === '*') {
                echo "*";
            } else {
                echo " ";
            }
        }
        echo "|\n";
    }
    echo "__";
    for ($index = 0; $index < $size; $index++) {
        echo "_";
    }
    echo "\n";
}
Mais je bloque sur la fonction qui permettra de compter les mines autour :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
function NbMinesAutour($tab) 
{
    while ($tab[$x][$y] != '*'){
      $n=0; 
         if($tab[$x-1][$y-1] === true){
                 $n++; 
               } else
          if ($tab[$x-1][$y] === true){
                 $n++;   
               } else
          if ($tab[$x-1][$y+1] === true){
                 $n++;     
               } else
          if ($tab[$x][$y-1] === true){
                 $n++;     
               } else
          if ($tab[$x][$y+1] === true){
                 $n++;     
               } else
          if ($tab[$x+1][$y-1] === true){
                $n++;   
               } else
          if ($tab[$x+1][$y] === true){
                $n++;   
               } else
          if ($tab[$x+1][$y+1] === true){
               $n++;  
              } 
     }    
}
Pour tester mes codes :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
$size = 8;
print_tab($size, $tab);
init($size, $tab);
print_tab($size, $tab);
NbMinesAutour($tab);
J'ai besoin de votre aide. Surtout pour la fonction NbMinesAutour. Des pistes si possible ?

Merci d'avance.