Commit d17c6bd0 authored by etienne912's avatar etienne912
Browse files

update

parent f7c8d27b
......@@ -3,29 +3,35 @@ require_once PATH_CONTROLEURS . '/ControleurAuthentification.php';
require_once PATH_CONTROLEURS . '/ControleurJeu.php';
require_once PATH_CONTROLEURS . '/ControleurStatistiques.php';
class Routeur
{
class Routeur {
private $ControleurAuthentification;
private $ControleurJeu;
private $ControleurStatistiques;
public function __construct()
{
public function __construct() {
$this->ControleurAuthentification = new ControleurAuthentification();
$this->ControleurJeu = new ControleurJeu();
$this->ControleurStatistiques = new ControleurStatistiques();
}
// Redirige un utilisateur
public function redirige()
{
public function redirige() {
//Si on est connecté
//TODO:Enlever $_GET['connected'] qui permet de bypass l'authentification pour les tests
if($_GET["deconnection"]){
unset($_SESSION['Auth']);
}
if (isset($_SESSION['Auth']) || isset($_GET['connected'])) {
if(isset($_POST['stats'])){
if (isset($_POST['stats'])) {
$this->ControleurStatistiques->statistiques();
}
$this->ControleurJeu->jeu();
} else {
$this->ControleurAuthentification->demandeAuthentification();
......
......@@ -2,25 +2,32 @@
require_once PATH_VUES . "/VueJeu.php";
require_once PATH_MODELES . "/ModeleJeu.php";
require_once PATH_MODELES . "/Ville.php";
require_once PATH_MODELES . "/Villes.php";
class ControleurJeu
{
class ControleurJeu {
private $vue;
private $modele;
function __construct()
{
function __construct() {
$this->vue = new VueJeu();
$this->modele = new ModeleJeu();
$this->villes = new Villes();
}
function jeu()
{
function jeu() {
$this->vue->afficherJeu();
}
function lier($villeAX,$villeAY,$villeBX,$villeBY){
$villeA = $this->villes->getVille($villeAX,$villeAY);
$villeB = $this->villes->getVille($villeBX,$villeBY);
$villeA->lierVilles($villeB);
$villeB->lierVilles($villeA);
$this->jeu();
}
}
?>
......@@ -3,9 +3,9 @@
class ModeleJeu {
// Constructeur de la classe
public function __construct() {
}
......
......@@ -8,15 +8,14 @@ class Ville {
private $nombrePonts;
// un tableau associatif qui stocke les villes qui sont reliées à la ville cible et le nombre de ponts qui les relient (ce nombre de ponts doit être <=2)
private $villesLiees;
private static $nbVilles = 0;
// constructeur qui permet de valuer les 2 attributs de la classe
function __construct($id, $nombrePontsMax, $nombrePonts) {
$this->id = $id;
function __construct($nombrePontsMax, $nombrePonts) {
$this->id = self::$nbVilles++;
$this->nombrePontsMax = $nombrePontsMax;
$this->nombrePonts = $nombrePonts;
$this->villesLiees = null;
$this->villesLiees = array();
}
// sélecteur qui retourne la valeur de l'attribut id
......@@ -40,6 +39,25 @@ class Ville {
$this->nombrePonts = $nb;
}
function lierVilles($villeALier) {
$idVille = $villeALier->getId();
if (isset($this->villesLiees[$idVille])) {
if ($this->villesLiees[$idVille] == 0 || $this->villesLiees[$idVille] == 1) {
$this->villesLiees[$idVille]++;
} else {
$this->villesLiees[$idVille] = 0;
}
} else {
$this->villesLiees[$idVille] = 1;
}
}
function estValide() {
return $this->nombrePonts == $this->nombrePontsMax;
}
//il faut ici implémenter les méthodes qui permettent de lier des villes entre elles, ...
}
......@@ -9,13 +9,13 @@ class Villes {
function __construct() {
// tableau représentatif d'un jeu qui servira à développer votre code
$this->villes[0][0] = new Ville("0", 3, 0);
$this->villes[0][6] = new Ville("1", 2, 0);
$this->villes[3][0] = new Ville("2", 6, 0);
$this->villes[3][5] = new Ville("3", 2, 0);
$this->villes[5][1] = new Ville("4", 1, 0);
$this->villes[5][6] = new Ville("5", 2, 0);
$this->villes[6][0] = new Ville("6", 2, 0);
$this->villes[0][0] = new Ville(3, 0);
$this->villes[0][6] = new Ville(2, 0);
$this->villes[3][0] = new Ville(6, 0);
$this->villes[3][5] = new Ville(2, 0);
$this->villes[5][1] = new Ville(1, 0);
$this->villes[5][6] = new Ville(2, 0);
$this->villes[6][0] = new Ville(2, 0);
}
......@@ -31,6 +31,7 @@ class Villes {
// modifieur qui value le nombre de ponts de la ville en position $i et $j;
// précondition: la ville en position $i et $j existe
function setVille($i, $j, $nombrePonts) {
$this->villes[$i][$j]->setNombrePonts($nombrePonts);
}
......
......@@ -26,27 +26,32 @@
<div class="jeu">
<table>
<?php
$matrice = array();
$matrice[0]= array(false,false,true);
$matrice[1]= array(false,true,false);
$matrice[2]= array(true,false,true);
foreach ($matrice as $ligne){
echo "<tr>";
foreach ($ligne as $cellule){
echo "<td>";
if($cellule){
echo "<a href='index.php'>5";
} else {
echo " ";
}
echo "<td>";
}
echo "</tr>";
}
?>
<?php
require_once "../modeles/Villes.php";
$testVille = new Villes();
for ($i = 0; $i <= 6; $i++) {
echo "<tr>";
for ($j = 0; $j <= 6; $j++) {
if ($testVille->existe($i, $j)) {
echo "<td class='show'>";
echo "<a class='' href='index.php'>" . $testVille->getVille($i, $j)->getNombrePontsMax();
echo "</td>";
} else {
echo "<td class='hidden'>";
echo " ";
echo "</td>";
}
}
echo "</tr>";
}
?>
</table>
......@@ -55,6 +60,9 @@
</div>
<br>
<br>
<br>
<br>
<br>
......
......@@ -9,6 +9,7 @@ ul {
body {
padding: 0;
margin: 0;
box-sizing: border-box;
}
li {
......@@ -56,16 +57,37 @@ tr {
width: auto;
}
td {
height: 50px;
width: 50px;
border: 1px solid black;
td.show {
height: 40px;
width: 40px;
box-sizing: border-box;
margin: 5px 5px;
}
td.hidden {
height: 40px;
width: 40px;
border-radius: 100%;
margin: 5px 5px;
}
td > a {
box-sizing: border-box;
margin: auto auto;
width: 100%;
height: 100%;
background-color: #00ff02;
align-content: center;
}
\ No newline at end of file
border: 1px solid black;
border-radius: 100%;
padding: 40px;
text-decoration: none;
font-size: large;
font-weight: bold;
color: black;
}
td > a.show {
background-color: #ffffff;
}
td > a.active {
background-color: #00ff02;
}
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