Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Johann BOURNAZEL
jeu Bridges
Commits
5c108ad0
Commit
5c108ad0
authored
Dec 08, 2018
by
etienne912
Browse files
correction de bugs, optimisations multiples et ajout de PHPDoc
parent
fcaaa836
Changes
2
Show whitespace changes
Inline
Side-by-side
src/Routeur.php
View file @
5c108ad0
...
...
@@ -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"
]));
}
...
...
src/controleurs/ControleurJeu.php
View file @
5c108ad0
<?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_o
ld
;
/**
* 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_o
ld
=
$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
);
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment