diff --git a/README.txt b/README.txt new file mode 100644 index 0000000..feb917e --- /dev/null +++ b/README.txt @@ -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. + + + + + + diff --git a/bin/isaHarmand/morpion/Programme.class b/bin/isaHarmand/morpion/Programme.class index 795a4ed..ad0d3b5 100644 Binary files a/bin/isaHarmand/morpion/Programme.class and b/bin/isaHarmand/morpion/Programme.class differ diff --git a/src/isaHarmand/morpion/Programme.java b/src/isaHarmand/morpion/Programme.java index 2450774..2ab6edc 100644 --- a/src/isaHarmand/morpion/Programme.java +++ b/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); @@ -36,22 +36,18 @@ public class Programme { //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){ + 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){ @@ -96,10 +92,10 @@ public class Programme { System.out.println(joueurActuel+ " choisis un numéro de case libre entre 1 et 9"); String cocher=scan.nextLine(); try { - cases =(char) Integer.parseInt(cocher); + cases =Integer.parseInt(cocher); if ((1<=cases) && (cases<=9) && (grid[cases-1]!=X) && (grid[cases-1]!=O)); break; - }catch (Exception cases){} + }catch (Exception cases){cases.printStackTrace();} //Mettre le bon caractere dans la case choisie grid[cases-1]=joueurActuel; @@ -110,7 +106,7 @@ public class Programme { 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) joueurActuel=O; else