function canMove($bdd, $id_partie, $id_joueur, $id_pays1, $id_pays2) { global $paysVisited; //On récupère le tableau des pays visités if (isAllPaysVisited($paysVisited) == true) { //si on a parcouru tous les pays du joueur return false; } else { if ($id_pays1 == $id_pays2) { //Si on est dans le bon pays return true; } else { $bool = false; //On récupère tous les pays voisins du joueur foreach (getNeighbourCountry($bdd, $id_partie, $id_joueur, $id_pays1) as $pays) { //Si on a pas déjà visité le pays if ($paysVisited[$pays] != true) { $paysVisited[$pays] = true; //On le marque comme visité //Le bool prend la valeur false OU valeur de la récursivité $bool = $bool || canMove($bdd, $id_partie, $id_joueur, $pays, $id_pays2); } } return $bool; } } }
<?php /** * Ce fichier renvois 1 si le joueur peut effectuer le déplacement d'un pays vers un autre sinon 0 */ //On vérifie si les session sont déja activées if (session_id() == null) { session_start(); } include "../site/connexion.php"; include "functions_partie.php"; //Si les 2 pays sont bien renseignés if (isset($_GET['paysSource']) && isset($_GET['paysDestination'])) { if (canMove($bdd, $_SESSION['id_partie'], $_SESSION['usr_id'], $_GET['paysSource'], $_GET['paysDestination'])) { echo "1"; } else { echo "0"; } }
for ($x = 0; $x < strlen($map[$y]); $x++) { $up = $playerY - 1; $down = $playerY + 1; $left = $playerX - 1; $right = $playerX + 1; $tile = $map[$y][$x]; if ($x == $playerX && $y == $up && canMove($map, $x, $up)) { $tile = getLink($x, $y, "↑"); } else { if ($x == $playerX && $y == $down && canMove($map, $x, $down)) { $tile = getLink($x, $y, "↓"); } else { if ($x == $left && $y == $playerY && canMove($map, $left, $y)) { $tile = getLink($x, $y, "←"); } else { if ($x == $right && $y == $playerY && canMove($map, $right, $y)) { $tile = getLink($x, $y, "→"); } else { if ($x == $playerX && $y == $playerY) { $tile = '@'; } } } } } echo $tile; } echo "\n"; } function canMove($map, $x, $y) {