From b1342d410b3ef6f3e45f1e3697672b59438dd863 Mon Sep 17 00:00:00 2001 From: HarmandI <90188561+HarmandI@users.noreply.github.com> Date: Fri, 1 Oct 2021 15:58:19 +0200 Subject: [PATCH] Add files via upload --- .../bin/isaHarmand/morpion/Programme.class | Bin 1007 -> 3277 bytes Morpion/src/README.txt | 45 ++++++ Morpion/src/isaHarmand/morpion/Programme.java | 132 ++++++++---------- 3 files changed, 100 insertions(+), 77 deletions(-) create mode 100644 Morpion/src/README.txt diff --git a/Morpion/bin/isaHarmand/morpion/Programme.class b/Morpion/bin/isaHarmand/morpion/Programme.class index 3be39fd147ddb400ae089b7c48116165da40d3ad..ad0d3b5f51a05b73efbb33afd18c8daf2b4e50d9 100644 GIT binary patch literal 3277 zcmai0>vJ1d75`nmR+2Z)#;NmYUYkN1S#Dz7IL^b4OYPc;L9R<2xsmNW*78fWT&}WE?Tvf?>~f6&$x{Id<1eu9I_(LcvrJ63`Zmvqo3m zuybAGvkPXnETH6!oNd^o)}|U?2OTGG8g`#RIBS&5l7JZHbDYl*pK*auDQnovN|mye z@0uXTHeD*I3r@wXxX)+H6*EuSoNLVq1g5FGy5QJl*K||HVb{v%O>cwC|>cweipV^WHKPQ~Z3gQ7;UXxfZob7H9DA>o>d zKB=)&MFJfH(X!*8B=AJyVHL`DVwZwvm_*Oxm9ePUEj?6BLkrK?9>15Rz9gwg94Wl0U`$|5qv|#Asu;&0u{i5vdD6&N zm^5MWSrAw?Q8uz?#*AVuZ?wu}1d*1|n2_hbtl~H_EWuf+IsS^ky2Mm-9qUaZ-I-Pq zLtIiPRJ0(j;8fkG=H8I-HdM?a%XY9>)dr47?P8^l<2X*jl#bBohFXdVk7kjMNoj0e zg^E=Q7?9uFp0T5x08Swe3u*ac=h$!vpB^>Bp|4&zZU$C3@bPb!kHm0lix{ z%lZKs?blR%-D?`@qeOZf=W$WNg?bjfp+)D-oaw6g2ENG#D;jRe^a6Th|BlKGeM^Oc zXdIXEhJq{gUh_^HUd)=sGN+`9Z)1WT=JlF~i({^lr3(UARXmTuD847qGG>&s^Nc6I zosAi^odUb4Y`I3x>qQTLP3dQk2^Kh#b+YrOE4#IU(AtDqF8@k*q~;j~8tYUrBuLgJ zrXN=JdpAuX!_Bed*FHjqHLqO+0`Uo_;%3beOOB4#<$Gbb^a|Sgu<5aXJ9j!@8dr<2WIv79~-)(dkSdTrtVqU>UyvGsu z1#;H;L7*GYa>sDwL}G}%v?%L`>QGmvZb!1Sik`ajy^MD=Lu%V!#X&!=;B6dw(Bu{# zw3U6njpJ1JOzQq&%O-c!OwxcHf^_2%Kc&x;shzOfSE!3`^R`-~zJEad1`bJqU`=_K+$gn; zXPQMIkDj$P+r5F7*M-;=`Q`mT2K#Ggg#Y&$k^gfBEsR$2kJMMZuSaQr1LFV2$iQd(6YCB93!!C#+Pri8k_N8vd^VuC zki3OsNrGl_38P8v_!6d)+V~P?l6P=2a}%d;VQvYzq!#;KI1|*m)0vR=Y&sLx_M|fr zttXvPw7uy}RO?M=w1~EkZ$;bBcT_u&UcyjVYB5nW)Z;RhPThf(xrH-h&vf3cB0rGq z+|sjz;X0s;vVphAzVp%Sm9GJKS=8HbDb)7WWyF)2tK!_jP;z7FHeOr8C28u?N4O#v zE%p)4laS!M6q=JYo%#T0R&r)OK;{M}4~92}t9ZTfjnr^DS;co=4)%uI!&>Y^?37>I zJ=pM^HI3cOb+j;yw(oMdkSn3_?tR%R!+fT$qg8Te7%O2Y$tjYbup0M7OsK?%kD&`} zQec$b9^;+c!kHm|NLLY28WFVy{p6%L{7&+>qsaO%vho*k6jxZ;YrHalg&F(-CvXp^ z@Hd2Of-M$!ZC7|rpNH#V?+6i0WYn-%6s>sE zn@5Wxg17K}j)IH0j~@_mLE5>BAL2&@TPqQz;KvAyB!4;I=GQR&0(zj_r)wbvLcu!< zZG+kcgc}TnzXAMs`7<`bKcU3h6-NIP{M5%P2T?$dAH?oJ5Ia9hHRhX~RKNuqyVx{J XV|W)oCto(qFE~`?D1DFn0N(#E2FluE 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*< zhpUr 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. + + + + + + diff --git a/Morpion/src/isaHarmand/morpion/Programme.java b/Morpion/src/isaHarmand/morpion/Programme.java index eb8161b..2ab6edc 100644 --- a/Morpion/src/isaHarmand/morpion/Programme.java +++ b/Morpion/src/isaHarmand/morpion/Programme.java @@ -7,7 +7,7 @@ public class Programme { Boolean gagnant= false; - char cases; + int cases; char X='X'; char O='O'; Scanner scan=new Scanner(System.in); @@ -28,52 +28,45 @@ public class Programme { public void gagnant(char[]grid,char joueurActuel) { montrerLaGrille(grid); System.out.println("Le joueur qui a les "+joueurActuel+"a gagné!"); + System.exit(0); } 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){ + for(int i=0;i<3;++i){ + if (grid[i*3+0]==joueurActuel && grid[i*3+1]==joueurActuel && grid[i*3+2]==joueurActuel) 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; - } + for(int i=0;i<3;i++){ + if (grid[i]==joueurActuel && grid[i+3]==joueurActuel && grid[i+6]==joueurActuel) + 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) { + 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) { + for(int j=0;j<3;++j){ + if (grid[2]==joueurActuel && grid[4]==joueurActuel && grid[6]==joueurActuel) { gagnant(grid, joueurActuel); - break;}}} + break; + } + } + return gagnant; -} + } @@ -86,71 +79,56 @@ public class Programme { 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]); - System.out.println("Choisis une case libre entre 1 et 9"); + joueurActuel=nom[n]; + System.out.println("Le joueur qui joue est "+nom[n]); //imprimer la grille - montrerLaGrille(grid); + do{ + montrerLaGrille(grid); // le joueur 1 choisit une case : entre 1 et 9 et non cochée. // si caractere incorrect reposer la question - - - 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) { - } + + 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();} - } //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; + } + + + - - // 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; } - - - - } - // 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 */ public static void main(String[] args) { /**TODO Auto-generated method stub*/ Programme morpion=new Programme(); - } + }} -} +