From dabd439d5ed1784c65907c85efff926e1057a787 Mon Sep 17 00:00:00 2001 From: HarmandI <90188561+HarmandI@users.noreply.github.com> Date: Thu, 30 Sep 2021 22:03:40 +0200 Subject: [PATCH] Add files via upload --- Programme.java | 152 ++++++++++++++++++++++++++++++++++++++++++++++ package-info.java | 1 + 2 files changed, 153 insertions(+) create mode 100644 Programme.java create mode 100644 package-info.java diff --git a/Programme.java b/Programme.java new file mode 100644 index 0000000..df15dcb --- /dev/null +++ b/Programme.java @@ -0,0 +1,152 @@ +package isaHarmand.morpion; + +import java.util.Random; +import java.util.Scanner; + +public class Programme { + + + Boolean gagnant= false; + char cases; + char X='X'; + char O='O'; + Scanner scan=new Scanner(System.in); + char joueurActuel; + //Dessiner une grille + char[]grid= + {'1','2','3', + '4','5','6', + '7','8','9', + }; + + public void montrerLaGrille(char[]grid) { + System.out.println("["+ grid[0]+'|'+grid[1]+'|'+grid[2]+']'); + System.out.println("["+ grid[3]+'|'+grid[4]+'|'+grid[5]+']'); + System.out.println("["+ grid[6]+'|'+grid[7]+'|'+grid[8]+']'); + } + + public void gagnant(char[]grid,char joueurActuel) { + montrerLaGrille(grid); + System.out.println("Le joueur qui a les "+joueurActuel+"a gagné!"); + } + + public boolean isGagnant () { + //Vérifier s'il y a 3 elements alignés en vertical horizontal ou diagonale + //On verifie les lignes + for(int i=0;i<3;++i){ + if (grid[i*3+0]==joueurActuel + && grid[i*3+1]==joueurActuel + && grid[i*3+2]==joueurActuel) + gagnant=true; + } + if (gagnant){ + gagnant(grid, joueurActuel); + break; + } + + //on verifie les colonnes + for(int i=0;i<3;++i){ + if (grid[i]==joueurActuel + && grid[i+3]==joueurActuel + && grid[i+6]==joueurActuel) + gagnant=true; + } + if (gagnant){ + gagnant(grid, joueurActuel); + break; + } + + //on verifie 1ere diagonale + for(int i=0;i<3;++i){ + if (grid[0]==joueurActuel + && grid[4]==joueurActuel + && grid[8]==joueurActuel) { + gagnant(grid, joueurActuel); + break; + } + + //on verifie 2eme diagonale + for(int j=0;j<3;++j){ + if (grid[2]==joueurActuel + && grid[4]==joueurActuel + && grid[6]==joueurActuel) { + gagnant(grid, joueurActuel); + break;}}} + return gagnant; +} + + + + public Programme() { + + + // début du jeu + +// tirer au hazard quel joueur commence + char nom[]= {this.O,this.X}; + Random tirage=new Random(); + int n=tirage.nextInt(nom.length); + joueurActuel=nom[n]; + System.out.println("Le joueur qui commence est "+nom[n]); + + //imprimer la grille + + do{ + montrerLaGrille(grid); + // le joueur 1 choisit une case : entre 1 et 9 et non cochée. + // si caractere incorrect reposer la question + + System.out.print(joueurActuel+ " choisis un numéro de case libre entre 1 et 9"); + String cocher=scan.nextLine(); + 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 + grid[cases-1]=joueurActuel; + 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 + if(joueurActuel==X) + joueurActuel=O; + else + joueurActuel=X; + } + + + + + scanner.close(); + + /** + * Main + */ +public static void main(String[] args) { + /**TODO Auto-generated method stub*/ + Programme morpion=new Programme(); + }} + + + + + + + + + + + + + + + diff --git a/package-info.java b/package-info.java new file mode 100644 index 0000000..7e43c6c --- /dev/null +++ b/package-info.java @@ -0,0 +1 @@ +package isaHarmand.morpion; \ No newline at end of file