Add files via upload
This commit is contained in:
parent
8a2e205843
commit
b1342d410b
Binary file not shown.
45
Morpion/src/README.txt
Normal file
45
Morpion/src/README.txt
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
Morpion:
|
||||||
|
|
||||||
|
Règles du jeu :
|
||||||
|
|
||||||
|
Pour jouer une partie de morpion, il suffit placer dans une grille de 3 cases*3.
|
||||||
|
Le but du jeu est d’aligner avant son adversaire 3 symboles identiques horizontalement, verticalement ou en diagonale.
|
||||||
|
Chaque joueur a donc son propre symbole:soit X soit O. La partie se termine quand l’un des joueurs à aligner 3 symboles
|
||||||
|
ou quand la grille est complétée sans vainqueur. Il y a alors égalité.
|
||||||
|
|
||||||
|
Comment gagner une partie de Morpion ?
|
||||||
|
Le premier joueur a aligner 3 symboles identiques gagne la partie.
|
||||||
|
Attention, le joueur qui débute est toujours avantagé pour gagner.
|
||||||
|
C'est pour cela que dans ce programme il y a un tirage au sort de celui qui débute la partie.
|
||||||
|
|
||||||
|
- description de l’implémentation technique du jeu (algorithmes principaux, modeélisation):
|
||||||
|
|
||||||
|
fonctions :
|
||||||
|
|
||||||
|
monterLaGrille => Qui imprime la grille à l'écran
|
||||||
|
gagnant => qui imprime la grille gagnate et imprime une phrase pour dire qui a gagné
|
||||||
|
isGagnant => qui vérifie s'il y a un gagnant qui a aligné 3 symboles à l'horizontal, à la vertical ou en diagonale.
|
||||||
|
|
||||||
|
Puis mon programme de jeu :
|
||||||
|
* il débute par le tirage au sort du joueur qui commence la partie.
|
||||||
|
* puis il y a une boucle do / while:
|
||||||
|
qui demande au joueur de choisir un numéro de case.
|
||||||
|
qui vérifie que la case est libre et la coche avec le symbol en cour (c'est là que mon programme bug la première fois)
|
||||||
|
puis vérification que ce tour de jeu soit gagnant, ou qu'il y a match null.
|
||||||
|
Si non, le jeu donne la main à l'autre joueur.
|
||||||
|
|
||||||
|
la notice d’utilisation :
|
||||||
|
|
||||||
|
Ce jeu se joue à 2 joueurs.
|
||||||
|
L'un a les X, l'autre les O.
|
||||||
|
Puis il faut suivre les indications de l'ordinateur.
|
||||||
|
|
||||||
|
- un exemple d’utilisation.
|
||||||
|
|
||||||
|
Je n'en ai pas pour le moment car mon code ne fonctionne pas, je dois le debugger et pour l'instant je coince.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -7,7 +7,7 @@ public class Programme {
|
|||||||
|
|
||||||
|
|
||||||
Boolean gagnant= false;
|
Boolean gagnant= false;
|
||||||
char cases;
|
int cases;
|
||||||
char X='X';
|
char X='X';
|
||||||
char O='O';
|
char O='O';
|
||||||
Scanner scan=new Scanner(System.in);
|
Scanner scan=new Scanner(System.in);
|
||||||
@ -28,52 +28,45 @@ public class Programme {
|
|||||||
public void gagnant(char[]grid,char joueurActuel) {
|
public void gagnant(char[]grid,char joueurActuel) {
|
||||||
montrerLaGrille(grid);
|
montrerLaGrille(grid);
|
||||||
System.out.println("Le joueur qui a les "+joueurActuel+"a gagné!");
|
System.out.println("Le joueur qui a les "+joueurActuel+"a gagné!");
|
||||||
|
System.exit(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isGagnant () {
|
public boolean isGagnant () {
|
||||||
//Vérifier s'il y a 3 elements alignés en vertical horizontal ou diagonale
|
//Vérifier s'il y a 3 elements alignés en vertical horizontal ou diagonale
|
||||||
//On verifie les lignes
|
//On verifie les lignes
|
||||||
for(int i=0;i<3;++i){
|
for(int i=0;i<3;++i){
|
||||||
if (grid[i*3+0]==joueurActuel
|
if (grid[i*3+0]==joueurActuel && grid[i*3+1]==joueurActuel && grid[i*3+2]==joueurActuel)
|
||||||
&& grid[i*3+1]==joueurActuel
|
|
||||||
&& grid[i*3+2]==joueurActuel)
|
|
||||||
gagnant=true;
|
|
||||||
}
|
|
||||||
if (gagnant){
|
|
||||||
gagnant(grid, joueurActuel);
|
gagnant(grid, joueurActuel);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//on verifie les colonnes
|
//on verifie les colonnes
|
||||||
for(int i=0;i<3;++i){
|
for(int i=0;i<3;i++){
|
||||||
if (grid[i]==joueurActuel
|
if (grid[i]==joueurActuel && grid[i+3]==joueurActuel && grid[i+6]==joueurActuel)
|
||||||
&& grid[i+3]==joueurActuel
|
gagnant(grid, joueurActuel);
|
||||||
&& grid[i+6]==joueurActuel)
|
break;
|
||||||
gagnant=true;
|
}
|
||||||
}
|
|
||||||
if (gagnant){
|
|
||||||
gagnant(grid, joueurActuel);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
//on verifie 1ere diagonale
|
//on verifie 1ere diagonale
|
||||||
for(int i=0;i<3;++i){
|
for(int i=0;i<3;++i){
|
||||||
if (grid[0]==joueurActuel
|
if (grid[0]==joueurActuel && grid[4]==joueurActuel && grid[8]==joueurActuel) {
|
||||||
&& grid[4]==joueurActuel
|
|
||||||
&& grid[8]==joueurActuel) {
|
|
||||||
gagnant(grid, joueurActuel);
|
gagnant(grid, joueurActuel);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//on verifie 2eme diagonale
|
//on verifie 2eme diagonale
|
||||||
for(int j=0;j<3;++j){
|
for(int j=0;j<3;++j){
|
||||||
if (grid[2]==joueurActuel
|
if (grid[2]==joueurActuel && grid[4]==joueurActuel && grid[6]==joueurActuel) {
|
||||||
&& grid[4]==joueurActuel
|
|
||||||
&& grid[6]==joueurActuel) {
|
|
||||||
gagnant(grid, joueurActuel);
|
gagnant(grid, joueurActuel);
|
||||||
break;}}}
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return gagnant;
|
return gagnant;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -87,70 +80,55 @@ public class Programme {
|
|||||||
Random tirage=new Random();
|
Random tirage=new Random();
|
||||||
int n=tirage.nextInt(nom.length);
|
int n=tirage.nextInt(nom.length);
|
||||||
joueurActuel=nom[n];
|
joueurActuel=nom[n];
|
||||||
|
System.out.println("Le joueur qui joue est "+nom[n]);
|
||||||
System.out.println("Le joueur qui commence est "+nom[n]);
|
|
||||||
System.out.println("Choisis une case libre entre 1 et 9");
|
|
||||||
|
|
||||||
//imprimer la grille
|
//imprimer la grille
|
||||||
|
|
||||||
montrerLaGrille(grid);
|
do{
|
||||||
|
montrerLaGrille(grid);
|
||||||
// le joueur 1 choisit une case : entre 1 et 9 et non cochée.
|
// le joueur 1 choisit une case : entre 1 et 9 et non cochée.
|
||||||
// si caractere incorrect reposer la question
|
// si caractere incorrect reposer la question
|
||||||
|
|
||||||
|
System.out.println(joueurActuel+ " choisis un numéro de case libre entre 1 et 9");
|
||||||
|
String cocher=scan.nextLine();
|
||||||
|
try {
|
||||||
|
cases =Integer.parseInt(cocher);
|
||||||
|
if ((1<=cases) && (cases<=9) && (grid[cases-1]!=X) && (grid[cases-1]!=O));
|
||||||
|
break;
|
||||||
|
}catch (Exception cases){cases.printStackTrace();}
|
||||||
|
|
||||||
while (!this.isGagnant()) {
|
|
||||||
System.out.print(joueurActuel+ " choisis un numéro de case libre entre 1 et 9");
|
|
||||||
String cocher=scan.nextLine();
|
|
||||||
//do while
|
|
||||||
try {
|
|
||||||
cases =(char) Integer.parseInt(cocher);
|
|
||||||
if ((1<=cases)
|
|
||||||
&& (cases<=9)
|
|
||||||
&& (grid[cases-1]!=X)
|
|
||||||
&& (grid[cases-1]!=O));
|
|
||||||
break;
|
|
||||||
}catch (Exception cases) {
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
//Mettre le bon caractere dans la case choisie
|
//Mettre le bon caractere dans la case choisie
|
||||||
grid[cases-1]=joueurActuel;
|
grid[cases-1]=joueurActuel;
|
||||||
|
isGagnant();
|
||||||
|
// si toutes les cases sont pleines et qu'iln'y a pas 3 pions d'alligné match nul
|
||||||
// si toutes les cases sont pleines et qu'iln'y a pas 3 pions d'alligné match nul
|
for (int k=0;k<9;++k){
|
||||||
for (int k=0;k<9;++k){
|
if (grid[k]==X || grid[k]==O)
|
||||||
if (grid[k]==X || grid[k]==O)
|
System.out.println("Match nul!!");
|
||||||
System.out.println("Match nul!!");
|
break;
|
||||||
break; }
|
}
|
||||||
|
}while(gagnant==false);// si non demander à l'autre joueur de choisir une case libre
|
||||||
|
if(joueurActuel==X)
|
||||||
|
joueurActuel=O;
|
||||||
|
else
|
||||||
|
joueurActuel=X;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
// si non demander à l'autre joueur de choisir une case libre
|
|
||||||
if(joueurActuel==X)
|
|
||||||
joueurActuel=O;
|
|
||||||
else
|
|
||||||
{joueurActuel=X;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// veux tu rejouer?
|
|
||||||
//si oui on redemarre une partie
|
|
||||||
//si non Au revoir
|
|
||||||
scanner.close();
|
|
||||||
} }}
|
|
||||||
/**
|
/**
|
||||||
* Main
|
* Main
|
||||||
*/
|
*/
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
/**TODO Auto-generated method stub*/
|
/**TODO Auto-generated method stub*/
|
||||||
Programme morpion=new Programme();
|
Programme morpion=new Programme();
|
||||||
}
|
}}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user