From 58afdd717abb09dbf175c98723798bb720af4c39 Mon Sep 17 00:00:00 2001 From: HarmandI <90188561+HarmandI@users.noreply.github.com> Date: Thu, 30 Sep 2021 15:54:25 +0200 Subject: [PATCH] Add files via upload --- Morpion/bin/isaHarmand/morpion/Joueur.class | Bin 0 -> 281 bytes .../bin/isaHarmand/morpion/Programme.class | Bin 1909 -> 1007 bytes Morpion/src/isaHarmand/morpion/Joueur.java | 5 + Morpion/src/isaHarmand/morpion/Programme.java | 139 +++++++++--------- 4 files changed, 71 insertions(+), 73 deletions(-) create mode 100644 Morpion/bin/isaHarmand/morpion/Joueur.class create mode 100644 Morpion/src/isaHarmand/morpion/Joueur.java diff --git a/Morpion/bin/isaHarmand/morpion/Joueur.class b/Morpion/bin/isaHarmand/morpion/Joueur.class new file mode 100644 index 0000000000000000000000000000000000000000..eeea00e6b628079f9c4151415dcce19291a2a5e8 GIT binary patch literal 281 zcmZ`!u}%U(5PfspadIFKI%7qr6mDsuu`w}(T(rQ@&m9|Ga<^-iJO9hd#KI5Yql~ja zOY`2mH<_6?yT6}b0Jj*YhzJ*E%X9WM+qJ5l|1i#~g==-|Q^bVvhCf+VY~R#NvC(Bi z=-wM^ng>GX>Uu?pAKhAK=%6=1f-Yf{8>^q&y3qcWi%JtFxhuI^u{S{<&A53tTf$|2 zGQb@nTe{Yl`pJYf{X?#s5D8OA0Qm#L6b=ifqSRgk$?O|vUt&ba1VbA#&=(x+>qPim K6k#YBVe}8SLp%}y literal 0 HcmV?d00001 diff --git a/Morpion/bin/isaHarmand/morpion/Programme.class b/Morpion/bin/isaHarmand/morpion/Programme.class index 88ed91ca43fb9b4725fa99d0c0cb1b263e05480a..3be39fd147ddb400ae089b7c48116165da40d3ad 100644 GIT binary patch literal 1007 zcmaJfgc5Pci+X+l#H8YqO~gs%i4azR3(2nix6hlnDjL_kg(du2A*yV2S%MF@%C zz@I?^3GVzT#Mq=w4sH%Rv$H$%cHZ0h^Y_Ou01wbBA;-{?A%DS5z?It%w3$n-`mc=k z3=aZPLY`rB#t(Vl=gRBvPiMl37)l=Z6j!us441c0we|&9y9@<~hazNP16prr?K9*< zhpUrE2H~{N0BJfm`9ZzzRQ~-SN-OL%^lIT9*xCat~{D*r$>pEVY7oB zB}~hs@{UeKVivnL5ur!kvPZ>i>#9f9%p~>Ju|}#sEb`-PnDu#IafJ}M?-aPCbtt$3 za=go95yR;>_#S{r-^iXvBO3@Z8EIvWFl~O<$S@Q@*Eg0MYd|gQp77~By;`JKP9)UX zi>-*t^cubH(Wp)k_*}+NYRDj!1xdl9R*~ND==@NLjQdg|!=5lDdJ}Xu0-B*(nP%xN zj|w-XlJ--$tDnxevF4!fl<6Y93n(89ghCcG_2tGXa2}%NEE;9HL~|aMtj^+lbhdul z1lY^eEYcOIm@+<@OPStt42uJoUWhVIwxtrQNwg`}RR_hZH`a=@h-`*Mx^0X`ah5&rx385Eu?}}dk9Bo4kRi9|bT%*=2}bb^7Wfah z1&f5;*1eo)y}@M664eu15U9ttv|$z?yEhQ*=#Kmk!_JH5a0HfUw-cF$eD&w%8n zk4~L>1`vIpzj7W09i5o2xFcQ5PaGBWifbUMp?yd3PWt%9senIGkxJ?4Q;?2l^07=W zrR$0Od@>&^`S>zbaXto*xDEK9!|E@rM=<{Q3r!!=%zE|00kOH!g?)Ov@;!cYW5elq zI(>xQeX8%%{0Wo75LX;dOD{619J8q$GphX8>Squfp{w{;LDz}#K2qMIGxUVYbPYSx zSrXV^zzXS*OBSyo&OgXg?ZehdS-Uj1PapnE{v+f&gOsW__UUGp*D%~fYA^}qE5zW^ zg<_eLqfoUx6db3O89_LdKM%S9vy`G@4KAJE diff --git a/Morpion/src/isaHarmand/morpion/Joueur.java b/Morpion/src/isaHarmand/morpion/Joueur.java new file mode 100644 index 0000000..44ccc1d --- /dev/null +++ b/Morpion/src/isaHarmand/morpion/Joueur.java @@ -0,0 +1,5 @@ +package isaHarmand.morpion; + +public class Joueur { + +} diff --git a/Morpion/src/isaHarmand/morpion/Programme.java b/Morpion/src/isaHarmand/morpion/Programme.java index ef28e95..eb8161b 100644 --- a/Morpion/src/isaHarmand/morpion/Programme.java +++ b/Morpion/src/isaHarmand/morpion/Programme.java @@ -5,6 +5,20 @@ 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]+']'); @@ -16,46 +30,65 @@ public class Programme { System.out.println("Le joueur qui a les "+joueurActuel+"a gagné!"); } - Scanner scan=new Scanner(System.in); - char joueurActuel; + 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; +} - String joueur1; - String joueur2; - Boolean gagnant= false; - char cases; - char X; - char O; - //Dessiner une grille - char[]grid= - {'1','2','3', - '4','5','6', - '7','8','9', - }; - - //Saisir les noms des 2 joueurs - public Programme() { - joueur1= joueur(); - joueur2=joueur(); + public Programme() { + // début du jeu - public String joueur(){ - System.out.println("Quel est ton pseudo?"); - Scanner scanner=new Scanner(System.in); - return scanner.next(); - System.out.println("Bonjour "+joueur1 +" et "+ joueur2+"!"); - // tirer au hazard quel joueur commence - String nom[]= {joueur1,joueur2}; + char nom[]= {this.O,this.X}; Random tirage=new Random(); int n=tirage.nextInt(nom.length); - joueur1=nom[n]; - joueurActuel=X; - + joueurActuel=nom[n]; + System.out.println("Le joueur qui commence est "+nom[n]); - System.out.println("Tu joues avec les X"); System.out.println("Choisis une case libre entre 1 et 9"); //imprimer la grille @@ -65,9 +98,10 @@ public class Programme { // si caractere incorrect reposer la question - while (true) { + 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) @@ -82,48 +116,7 @@ public class Programme { //Mettre le bon caractere dans la case choisie grid[cases-1]=joueurActuel; - //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; - } + // 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)