Dossier 3

publicité
Projet ISN 2015
Puissance 4
Par Sasha MORONVAL
projet réalisé en coopération avec
Marine FERRAILLE et Valentin Monnier
SOMMAIRE
• Pourquoi a t-on réalisé ce projet ?
• Problématique
• Comment y avons-nous répondu ?
• Cahier des charges
• Répartition des tâches
• Ma partie de ce projet
• Avec du temps en plus, qu'aurions-nous pu faire ?
• Annexes
Pourquoi a t-on réalisé ce projet ?
Les loisirs prennent de plus en plus de place dans notre société. Les jeux
vidéos n'échappent pas à cette règle. Pouvoir jouer sur son ordinateur, sa
tablette ou son téléphone à un jeu qui nous a passionné autrefois intéresse
de nombreuses personnes car il est rendu plus attrayant.
Problématique
La problématique à laquelle nous avons du faire face est : Comment
recréer sur un support numérique un jeu d'autrefois ?
Comment y avons-nous répondu ?
Pour recréer ce jeu d'autrefois qui nous passionne toujours : le Puissance 4
en le rendant plus attrayant, nous avons utilisé l'outil informatique à travers
trois langages :
- Le langage HTML5 : Sert à structurer la page web, d'organiser son
contenu.
- Le langage CSS3 : Sert pour la mise en beauté de la page web.
- Le Javascript : Sert à dicter à l'ordinateur quoi faire.
Pour l'écriture des programmes nous avons utilisé les logiciels Notepad++ et
TopStyle
Cahier des charges
Afin de répondre à la problématique de la meilleure façon possible, nous
avions un cahier des charges à suivre.
Répartition des tâches :
Tâche
Rechercher les
paramètres (règles du
jeu)
Sasha
x
Marine
x
Valentin
x
Identifier et analyser
les spécifications du
projet
x
x
x
Rechercher des
solutions
x
x
x
Élaboration de
l'algorithme de
placement des pions
x
x
Élaboration de
l'algorithme
d'alignement des pions
Écriture de l'algorithme
de placement des pions
x
x
Écriture de l'algorithme
d'alignement des pions
Test et modifications si
nécessaire (placement)
x
x
x
x
x
x
x
Test et modifications si
nécessaire (alignement)
Réalisation de la page
d'accueil du site
x
x
x
Rédaction du dossier du
projet
x
x
x
Préparation de la
soutenance du projet
x
x
x
Ma partie du projet
Après avoir recherché quelles sont les règles du jeu, identifié et analysé les
spécifications du projet, cherché les solutions possibles, et réalisé la grille
en HTML, le groupe s'est scindé en deux afin de faire les différents
algoritmes en javascript : avec Marine, je me suis occupé du placement des
pions tandis que Valentin, avec l'aide de Marine, s'est occupé de
l'alignement.
Cet algorithme a été très difficile a trouver, il nous a pris plusieurs semaines
mais nous l'avons finalement trouvé. Ensuite, je l'ai tapé avec Valentin en
utilisant le logiciel TopStyle.
Ensuite des arrivée la phase de tests, mon travail a été de tester le
placement des pions afin de modifier l'algorithme si nécessaire mais ce n'a
pas été le cas, les pions se plaçaient aux bons endroits dans le grille.
Après cela, avec Marine et Valentin, j'ai réalisé le site web du projet.
Nous avons pensé à un site en quatre pages :
– une page d'accueil avec trois boutons renvoyant aux autres pages
– une page dédiée aux règles du jeu
– une page expliquant en quoi a consisté notre projet
– une page de jeu avec la grille, et les boutons permettant de
sélectionner la colonne
Nous avons amélioré le site en y incorporant des boutons renvoyant à la
page d'accueil (boutons créés en utilisant le langage HTML).
Enfin, pour l'embellir, nous avons utilisé le langage CSS.
Et avec du temps en plus, qu'aurions-nous pu
faire ?
Il est tout à fait possible d'améliorer ce Puissance 4. Avec un peu plus de
temps nous aurions cherché un moyen de sauvegarder la partie en utilisant
le langage PHP (le bouton est présent sur le site), en proposant plusieurs
niveaux de difficultés et un mode multijoueur.
Annexe : placement des pions en javascript
var p = [
[ 0, 0, 0, 0, 0, 0, 0],
[ 0, 0, 0, 0, 0, 0, 0],
[ 0, 0, 0, 0, 0, 0, 0],
[ 0, 0, 0, 0, 0, 0, 0],
[ 0, 0, 0, 0, 0, 0, 0],
[ 0, 0, 0, 0, 0, 0, 0],
];
function ajouterJeton(couleur,colonne) {
for(var y = 6; y>=0; y--) {
if (p[y][colonne] == 0) {
p[y][colonne] = couleur;
break;
}
}
return y;
}
function retirerJeton(colonne) {
for(var y = 0; y<7; y++) {
if (p[y][colonne] != 0) {
p[y][colonne] = 0;
break;
}
}
}
function rechercherCoup(couleur) {
var x, e, emax, xmax;
xmax = -1;
for(x=0; x<7; x++) {
if (p[0][x]==0) {
ajouterJeton(couleur,x);
e = evaluer();
retirerJeton(x);
if ((xmax==-1) || (e*couleur > emax*couleur)) {
emax = e;
xmax = x;
}
}
}
return xmax;
}
function finDeJeu(message) {
document.getElementById("ligneBoutons").style.display = "none";
alert(message);
}
function jouer(colonne) {
var x,y;
if (p[0][colonne]==0) {
x = colonne;
y = ajouterJeton(1,x);
document.getElementById("J"+y+x).className += " couleur1";
if (aGagne()==1) finDeJeu("Vous avez gagne");
else {
x = rechercherCoup(-1);
y = ajouterJeton(-1,x);
document.getElementById("J"+y+x).className += " couleur2";
if (aGagne()==-1) finDeJeu("l'ordianteur a gagne");
}
}
else {alert("la colonne est pleine");}
}
Règles
Le but du jeu est d'aligner quatre pions sur une grille comptant sept rangées
et sept colonnes. Chaque joueur dispose de vingt et un pions. Tour à tour
les deux joueurs placent un pion dans la colonne de leur choix,le pion
coulisse alors jusqu'à la position la plus basse possible. Ensuite c'est à
l'adversaire de jouer. Le vainqueur est celui qui arrivera le premier à aligner
soit en diagonale, soit à l'horizontale soit à la verticale quatre pions de la
même couleur. Si toute la grille est remplie, mais qu'il n'y a pas
d'alignement de quatre pions pour aucun des joueurs, dans ce cas la partie
est déclarée nulle.
Téléchargement