/** Utilitaires pour la recherche des coups : **/ function tester_coups_vecteur($jeu, $i, $j, $di, $dj, $trait) { // Fonction permettant de gérer les coups des pièces pouvant parcourir des lignes entières (fou, tour ,dame) // Les variables $di et $dj permettent de choisir le sens de déplacement ainsi : // $di = 1 et $dj = 0 correspond à un déplacement vertical vers la droite // $di = 0 et $dj = 1 correspond à un déplacement horizontale vers le haut // ...etc $cases = ''; // Tant qu'il n'y a pas de pièce et que ce n'est pas le bord on continue $d = 1; $stop = false; while (!$stop) { // On récupère les informations sur la case $info = info_case($jeu, $i + $di * $d, $j + $dj * $d, $trait); //Fonction dans utilitaires.php if ($info[0] & ($info[1] == 'ennemi' || $info[1] == 'vide')) { $cases .= Vec2StrCoup($i, $j, [$i + $di * $d, $j + $dj * $d], $trait); // Fonction définit dans utilitaires.php } if ($info[0] == false || $info[1] != 'vide') { $stop = true; } // Stop si la case bloque $d++; } return $cases; }
function coup_roi($jeu, $trait, $i, $j, $roques) { // Initialisation : $cases = ''; // Le roi peux se déplacer d'une case dans l'ensemble des directions // et prendre une case dans l'ensemble des direction : for ($di = -1; $di <= 1; $di++) { for ($dj = -1; $dj <= 1; $dj++) { $cases .= Vec2StrCoup($i, $j, prendrePce($jeu, $i + $di, $j + $dj, $trait), $trait); } } if (in_array('XX', $roques)) { // Petit roque possible si les cases j=6,7 sont vides (on gère les echecs ailleurs) : $info1 = info_case($jeu, 6, $j, $trait); //fonction dans utilitaires.php $info2 = info_case($jeu, 7, $j, $trait); if ($info1[1] == 'vide' & $info2[1] == 'vide') { $cases .= '[' . $i . ',' . $j . ',7,' . $j . ', "XX"],'; } } if (in_array('XXX', $roques)) { // Grand roque possible si les cases j=2,3,4 sont vides (on gère les echecs ailleurs) : $info1 = info_case($jeu, 2, $j, $trait); $info2 = info_case($jeu, 3, $j, $trait); $info3 = info_case($jeu, 4, $j, $trait); if ($info1[1] == 'vide' & $info2[1] == 'vide' & $info3[1] == 'vide') { $cases .= '[' . $i . ',' . $j . ',3,' . $j . ', "XXX"],'; } } return $cases; }