Add files via upload

This commit is contained in:
HarmandI 2021-11-02 10:36:59 +01:00 committed by GitHub
parent 56eef89161
commit d8a578f029
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 106 additions and 109 deletions

View File

@ -12,67 +12,74 @@ public class Programme {
char O = 'O'; char O = 'O';
Scanner scan = new Scanner(System.in); Scanner scan = new Scanner(System.in);
char joueurActuel; char joueurActuel;
String saisir;
// Dessiner une grille // Dessiner une grille
char[]grid= char[] grid = { '1', '2', '3', '4', '5', '6', '7', '8', '9', };
{'1','2','3',
'4','5','6',
'7','8','9',
};
public void montrerLaGrille(char[] grid) { public void montrerLaGrille(char[] grid) {
System.out.println("[" + grid[0] + '|' + grid[1] + '|' + grid[2] + ']'); System.out.println("[" + grid[0] + '|' + grid[1] + '|' + grid[2] + ']');
System.out.println("[" + grid[3] + '|' + grid[4] + '|' + grid[5] + ']'); System.out.println("[" + grid[3] + '|' + grid[4] + '|' + grid[5] + ']');
System.out.println("[" + grid[6] + '|' + grid[7] + '|' + grid[8] + ']'); System.out.println("[" + grid[6] + '|' + grid[7] + '|' + grid[8] + ']');
System.out.println("");
} }
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 void 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 && grid[i * 3 + 1] == joueurActuel && grid[i * 3 + 2] == joueurActuel) if (grid[i * 3 + 0] == joueurActuel && grid[i * 3 + 1] == joueurActuel && grid[i * 3 + 2] == joueurActuel)
gagnant = true;
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 && grid[i + 3] == joueurActuel && grid[i + 6] == joueurActuel) if (grid[i] == joueurActuel && grid[i + 3] == joueurActuel && grid[i + 6] == joueurActuel)
gagnant = true;
gagnant(grid, joueurActuel); gagnant(grid, joueurActuel);
break; 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 && grid[4]==joueurActuel && grid[8]==joueurActuel) { if (grid[0] == joueurActuel && grid[4] == joueurActuel && grid[8] == joueurActuel)
gagnant = true;
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 && grid[4]==joueurActuel && grid[6]==joueurActuel) { if (grid[2] == joueurActuel && grid[4] == joueurActuel && grid[6] == joueurActuel)
gagnant = true;
gagnant(grid, joueurActuel); gagnant(grid, joueurActuel);
break; break;
} }
// si toutes les cases sont pleines et qu'iln'y a pas 3 pions d'alligné match
// nul
for (int k = 0; k < 8; ++k) {
if (grid[k] == X || grid[k] == O)
gagnant = true;
System.out.println("Match nul!!");
break;
} }
return gagnant;
} }
public Programme() { public Programme() {
// début du jeu // début du jeu
// tirer au hazard quel joueur commence // tirer au hazard quel joueur commence
@ -84,46 +91,40 @@ public class Programme {
// imprimer la grille // imprimer la grille
do{ do { montrerLaGrille(grid);
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
while (true) {
System.out.println(joueurActuel+ " choisis un numéro de case libre entre 1 et 9"); System.out.print(joueurActuel + " choisis un numéro de case libre entre 1 et 9");
String cocher=scan.nextLine(); saisir = scan.nextLine();
try { try {
cases =Integer.parseInt(cocher); cases = Integer.parseInt(saisir);
if ((1<=cases) && (cases<=9) && (grid[cases-1]!=X) && (grid[cases-1]!=O)); if (cases >= 1 && cases <= 9 && grid[cases - 1] != X && grid[cases - 1] != O)
break; break;
}catch (Exception cases){cases.printStackTrace();} } catch (Exception e) {
}
}
// 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(); isGagnant();
// 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){
if (grid[k]==X || grid[k]==O)
System.out.println("Match nul!!");
break;
} }
}while(gagnant==false);// si non demander à l'autre joueur de choisir une case libre
while(gagnant == false); // si non demander à l'autre joueur de choisir une case libre
if (joueurActuel == X) if (joueurActuel == X)
joueurActuel = O; joueurActuel = O;
else else
joueurActuel = X; joueurActuel = X;
} }
/** /**
* Main * Main
*/ */
public static void main(String[] args) { public static void main(String[] args) {
/**TODO Auto-generated method stub*/ /** TODO Auto-generated method stub */ /**TODO Auto-generated method stub*/
Programme morpion=new Programme(); Programme programme = new Programme();
}} }}
@ -136,7 +137,3 @@ public static void main(String[] args) {