function menace_all($jeu, $trait)
{
    // Initialisation :
    $cases_men = '';
    // On parcours l'ensemble du plateau pour déterminer l'ensemble des cases menacées par un joueur :
    for ($i = 1; $i <= 8; $i++) {
        for ($j = 1; $j <= 8; $j++) {
            if (est_au_joueur($jeu, $i, $j, $trait)) {
                //Fonction dans utilitaires.php
                // On récupère la nature de la pièce à la position $i, $j si la case est au joueur $trait
                $nature = $jeu[$i][$j][0];
                // On stocke quelle pièce est la menace en premier
                $cases_men .= '[' . $i . ',' . $j . '],';
                // Puis en fonction de sa nature on détermine ce qu'elle menace :
                if ($nature == 'p') {
                    $cases_men .= menace_pion($jeu, $trait, $i, $j);
                } else {
                    if ($nature == 'C') {
                        $cases_men .= menace_cavalier($jeu, $trait, $i, $j);
                    } else {
                        if ($nature == 'T') {
                            $cases_men .= menace_tour($jeu, $trait, $i, $j);
                        } else {
                            if ($nature == 'F') {
                                $cases_men .= menace_fou($jeu, $trait, $i, $j);
                            } else {
                                if ($nature == 'D') {
                                    $cases_men .= menace_dame($jeu, $trait, $i, $j);
                                } else {
                                    if ($nature == 'R') {
                                        $cases_men .= menace_roi($jeu, $trait, $i, $j);
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
    $cases_men = '[' . substr($cases_men, 0, -1) . ']';
    $cases_men = json_decode($cases_men);
    // A l'aide de se vecteur on associe à chacune des cases du plateau :
    // - true si elle est menacee
    // - false si ne l'est pas
    $jeu_menaces = array_fill(1, 8, array_fill(1, 8, false));
    foreach ($cases_men as $menace) {
        $jeu_menaces[$menace[0]][$menace[1]] = true;
    }
    return $jeu_menaces;
}
function coup_all($jeu, $trait, $roques, $pp)
{
    // Initialisation :
    $cases_coup = '';
    // On parcours l'ensemble du plateau pour déterminer l'ensemble des coups possibles par un joueur :
    for ($i = 1; $i <= 8; $i++) {
        for ($j = 1; $j <= 8; $j++) {
            if (est_au_joueur($jeu, $i, $j, $trait)) {
                //Fonction dans utilitaires.php
                // On récupère la nature de la pièce à la position $i, $j si la case est au joueur $trait
                $nature = $jeu[$i][$j][0];
                // En fonction de sa nature on détermine ce qu'elles sont les coups disponibles :
                if ($nature == 'p') {
                    $cases_coup .= coup_pion($jeu, $trait, $i, $j);
                } else {
                    if ($nature == 'C') {
                        $cases_coup .= coup_cavalier($jeu, $trait, $i, $j);
                    } else {
                        if ($nature == 'T') {
                            $cases_coup .= coup_tour($jeu, $trait, $i, $j);
                        } else {
                            if ($nature == 'F') {
                                $cases_coup .= coup_fou($jeu, $trait, $i, $j);
                            } else {
                                if ($nature == 'D') {
                                    $cases_coup .= coup_dame($jeu, $trait, $i, $j);
                                } else {
                                    if ($nature == 'R') {
                                        $cases_coup .= coup_roi($jeu, $trait, $i, $j, $roques);
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
    // On ajoute les pp possibles :
    $cases_coup .= $pp;
    $cases_coup = '[' . substr($cases_coup, 0, -1) . ']';
    $cases_coup = json_decode($cases_coup);
    return $cases_coup;
}
function tester_pp($jeu, $coup, $piece)
{
    $trait = $piece[1];
    $pp_possible = '';
    $col_pion = $coup[0];
    $case_pion = $coup[3] + ($trait == 2 ? 1 : -1);
    if ($piece[0] == 'p') {
        // on vérifie que le déplacement est bien de 2 :
        if (abs($coup[1] - $coup[3]) == 2) {
            // On vérifie la possible du pp à l'aide du coup précédent
            if ($trait == 1) {
                $x = 4;
            } else {
                $x = 5;
            }
            // On vérifie si il y a un pion à droite :
            if (est_au_joueur($jeu, $col_pion - 1, $x, $trait == 1 ? 2 : 1)) {
                // Fonction dans utilitaires.php
                // On vérfie si la pièce est un pion :
                if ($jeu[$col_pion - 1][$x][0] == 'p') {
                    $pp_possible .= '[' . ($col_pion - 1) . ',' . $x . ',' . $col_pion . ',' . $case_pion . ',"pp"],';
                }
            }
            // On vérifie si il y a un pion à droite :
            if (est_au_joueur($jeu, $col_pion + 1, $x, $trait == 1 ? 2 : 1)) {
                // On vérfie si la pièce est un pion :
                if ($jeu[$col_pion + 1][$x][0] == 'p') {
                    $pp_possible .= '[' . ($col_pion + 1) . ',' . $x . ',' . $col_pion . ',' . $case_pion . ',"pp"],';
                }
            }
        }
    }
    return $pp_possible;
}
function roi_en_echec($jeu, $trait)
{
    // Cette fonction teste si le roi du joueur $trait est en échec dans la pratie $jeu
    $cases_menacees = menace_all($jeu, $trait == 1 ? 2 : 1);
    // On récupère la case du roi du joueur $trait :
    for ($i = 1; $i < 9; $i++) {
        for ($j = 1; $j < 9; $j++) {
            if (est_au_joueur($jeu, $i, $j, $trait)) {
                if ($jeu[$i][$j][0] == 'R') {
                    // Si elle est menacée elle est en échec
                    // On retroune donc la valeur du tableau de menace
                    // au niveau de la case où se situe le roi
                    return $cases_menacees[$i][$j];
                }
            }
        }
    }
}