Esempio n. 1
0
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";
    }
}
Esempio n. 3
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, "&uarr;");
        } else {
            if ($x == $playerX && $y == $down && canMove($map, $x, $down)) {
                $tile = getLink($x, $y, "&darr;");
            } else {
                if ($x == $left && $y == $playerY && canMove($map, $left, $y)) {
                    $tile = getLink($x, $y, "&larr;");
                } else {
                    if ($x == $right && $y == $playerY && canMove($map, $right, $y)) {
                        $tile = getLink($x, $y, "&rarr;");
                    } else {
                        if ($x == $playerX && $y == $playerY) {
                            $tile = '@';
                        }
                    }
                }
            }
        }
        echo $tile;
    }
    echo "\n";
}
function canMove($map, $x, $y)
{