Commit 5c108ad0 authored by etienne912's avatar etienne912
Browse files

correction de bugs, optimisations multiples et ajout de PHPDoc

parent fcaaa836
......@@ -36,7 +36,7 @@ class Routeur {
$this->ControleurJeu = new ControleurJeu(unserialize($_SESSION["villes"]), unserialize($_SESSION["villes_old"]));
} else {
$_SESSION["villes"] = serialize(new Villes());
$_SESSION["villes_old"] = serialize(new Villes());
$_SESSION["villes_old"] = serialize([]);
$this->ControleurJeu = new ControleurJeu(unserialize($_SESSION["villes"]), unserialize($_SESSION["villes_old"]));
}
......
<?php
require_once PATH_VUES . "/VueJeu.php";
require_once PATH_MODELES . "/Ville.php";
require_once PATH_MODELES . "/Villes.php";
/**
* La classe ControleurJeu
*/
class ControleurJeu {
private $vue;
private $villes;
private $villes_o;
private $villes_old;
/**
* Le construteur ControleurJeu.
* @param $villes Villes état du jeu actuel
* @param $villes_old array pile des états de jeu précedent
*/
function __construct($villes, $villes_old) {
$this->vue = new VueJeu();
$this->villes = $villes;
$this->villes_o = $villes_old;
$this->villes_old = $villes_old;
}
/**
* Cette méthode permet d'afficher le jeu
* @param $actX int l'abscisse d'une ville qui serait actuellement sélectionné
* @param $actY int l'ordonnée d'une ville qui serait actuellement sélectionné
* @param $actMauvX int l'ordonnée d'une ville qui aurait été séléctionne mais qui n'aurait pas été valide
* @param $actMauvY int l'ordonnée d'une ville qui aurait été séléctionne mais qui n'aurait pas été valide
*/
function jeu($actX, $actY, $actMauvX, $actMauvY) {
$actX = isset($actX) ? $actX :-1;
$actY = isset($actY) ? $actY :-1;
......@@ -25,16 +38,32 @@ class ControleurJeu {
$this->vue->afficherJeu($this->villes, $actX, $actY, $actMauvX, $actMauvY);
}
/**
* Cette méthode permet de revenir à l'état de jeu précédent
*/
function annulerCoup() {
$this->villes = $this->villes_o;
$_SESSION["villes"] = serialize($this->villes);
if (count($this->villes_old) > 0) { // si la pile n'est pas vide
$this->villes = array_pop($this->villes_old); // on dépile
$_SESSION["villes"] = serialize($this->villes); // on enregiste le nouvelle état actuel
$_SESSION["villes_old"] = serialize($this->villes_old);
}
$this->jeu(null, null, null, null);
}
/**
* Cette méthode permet de lier deux villes entre elles
* @param $villeAX int la valeur en abscisse de la villeA
* @param $villeAY int la valeur en ordonnée de la villeA
* @param $villeBX int la valeur en abscisse de la villeB
* @param $villeBY int la valeur en ordonnée de la villeB
*/
function lier($villeAX, $villeAY, $villeBX, $villeBY) {
$_SESSION["villes_old"] = serialize($this->villes);
// on ajoute d'abord l'état actuel dans la pile des états précédents
array_push($this->villes_old, $this->villes);
$_SESSION["villes_old"] = serialize($this->villes_old); // on l'enregistre
$this->villes->lierVilles($villeAX, $villeAY, $villeBX, $villeBY);
$_SESSION["villes"] = serialize($this->villes);
$_SESSION["villes"] = serialize($this->villes); // on enregistre le nouvelle état de jeu
$this->jeu(null, null, null, null);
}
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment