Paste Search Dynamic
Recent pastes
jouerCase
  1. import java.util.Scanner;
  2.  
  3. public class Morpion {
  4.  
  5.         static Plateau plateau = new Plateau(creerPlateau());
  6.         static int joueurActif = 1;
  7.  
  8.         public static void main(string[] args) {
  9.                
  10.                 while(plateau.isWon()==0) {
  11.                         creerPlateau();
  12.                         afficherPlateau();
  13.                         jouerCase(demanderCase(), joueurActif);
  14.                         joueurActif = joueurSuivant(joueurActif);
  15.                 }
  16.                 afficherPlateau();
  17.                 system.out.println("nFélicitations au joueur " + joueurSuivant(joueurActif) + " qui a gagné !");
  18.                
  19.         }
  20.        
  21.        
  22.         static case[][] creerPlateau(){
  23.                 /*Crée un tableau à deux dimensions de 3*3 cases contenant
  24.                  * chacune une nouvelle instance de la classe case
  25.                  */
  26.                
  27.                 case[][] plateau = new case[3][3];
  28.                 for (int i = 0; i < plateau.length; i++) {
  29.                         for (int j = 0; j < plateau.length; j++) {
  30.                                 plateau[i][j] = new case(0);
  31.                         }
  32.                 }
  33.                 return plateau;
  34.         }
  35.        
  36.        
  37.         static string demanderCase() {
  38.                 Scanner scan = new Scanner(system.in);
  39.                 system.out.println("nJoueur " + joueurActif + ", choisissez votre case: ");
  40.                 return scan.nextLine().toLowerCase();
  41.         }
  42.        
  43.         static void jouerCase(string caseDemandee, int joueur) {
  44.                 /*Vérifie que la case entrée est bien présente dans la
  45.                  * grille, vérifie qu'elle n'est pas déjà jouée et, si
  46.                  * ce n'est pas le cas, la joue en lui donnant la valeur
  47.                  * du joueur actif (1 ou 2).
  48.                  */
  49.                
  50.                 int row = caseDemandee.charAt(0) - 97;
  51.                 int col = (int)caseDemandee.charAt(1) - 49;
  52.                
  53.                 if(0<=row && row<3 && 0<=col && col<3) {
  54.                         if(!plateau.cases[row][col].isPlayed()) {
  55.                                 plateau.cases[row][col].value = joueur;
  56.                         }
  57.                         else {
  58.                                 system.out.println("nCase incorrecte ! Recommencez.");
  59.                                 jouerCase(demanderCase(), joueurActif);
  60.                         }
  61.                 }
  62.                 else {
  63.                         system.out.println("nCase incorrecte ! Recommencez.");
  64.                         jouerCase(demanderCase(), joueurActif);
  65.                 }
  66.         }
  67.        
  68.        
  69.         static int joueurSuivant(int joueur) {
  70.                 /*Inverse le joueur: renvoie 1 si joueur=2
  71.                  * et 2 si joueur=1
  72.                  */
  73.                
  74.                 if(joueur == 1) {
  75.                         return 2;
  76.                 }
  77.                 else {
  78.                         return 1;
  79.                 }
  80.         }
  81.        
  82.         static void afficherPlateau() {
  83.                 /*Afffiche e plateau de jeu
  84.                  */
  85.                
  86.                 for(int i = 0; i < 3; i++) {
  87.                         for(int j =0; j<3; j++) {
  88.                                 if(plateau.cases[i][j].value == 1) {
  89.                                         system.out.print("tX");
  90.                                 }
  91.                                 else if(plateau.cases[i][j].value == 2) {
  92.                                         system.out.print("tO");
  93.                                 }
  94.                                 else {
  95.                                         system.out.print("t-");
  96.                                 }
  97.                         }
  98.                         system.out.println("");
  99.                 }
  100.                
  101.         }
  102.        
  103.        
  104.        
  105. }
  106.  
  107.  
  108. class case {
  109.        
  110.         int value;
  111.        
  112.         public case(int value) {
  113.                 this.value = value;
  114.         }
  115.        
  116.         boolean isPlayed() {
  117.                 /*Vérifie si la case est déjà jouée
  118.                  */
  119.                
  120.                 if(this.value!=0) {
  121.                         return true;
  122.                 }
  123.                 return false;
  124.         }
  125.        
  126. }
  127.  
  128.  
  129. class Plateau {
  130.        
  131.         case[][] cases;
  132.        
  133.         public Plateau(case[][] cases) {
  134.                 this.cases = cases;
  135.         }
  136.        
  137.         int isWon() {
  138.                 /*Vérifie si un joueur a gagné
  139.                  */
  140.                
  141.                 if(this.cases[0][0].value == this.cases[0][1].value && this.cases[0][0].value == this.cases[0][2].value
  142.                                 && this.cases[0][0].value != 0) {
  143.                         return this.cases[0][0].value;
  144.                 }
  145.                
  146.                 else if(this.cases[1][0].value == this.cases[1][1].value && this.cases[1][0].value == this.cases[1][2].value
  147.                                 && this.cases[1][0].value != 0) {
  148.                         return this.cases[1][0].value;
  149.                 }
  150.                
  151.                 else if(this.cases[2][0].value == this.cases[2][1].value && this.cases[2][0].value == this.cases[2][2].value
  152.                                 && this.cases[2][0].value != 0) {
  153.                         return this.cases[2][0].value;
  154.                 }
  155.                
  156.                 else if(this.cases[0][0].value == this.cases[1][0].value && this.cases[0][0].value == this.cases[2][0].value
  157.                                 && this.cases[0][0].value != 0) {
  158.                         return this.cases[0][0].value;
  159.                 }
  160.                
  161.                 else if(this.cases[0][0].value == this.cases[1][0].value && this.cases[0][0].value == this.cases[2][0].value
  162.                                 && this.cases[0][0].value != 0) {
  163.                         return this.cases[0][0].value;
  164.                 }
  165.                
  166.                 else if(this.cases[0][1].value == this.cases[1][1].value && this.cases[0][1].value == this.cases[2][1].value
  167.                                 && this.cases[0][1].value != 0) {
  168.                         return this.cases[0][1].value;
  169.                 }
  170.                
  171.                 else if(this.cases[0][2].value == this.cases[1][2].value && this.cases[0][2].value == this.cases[2][2].value
  172.                                 && this.cases[0][2].value != 0) {
  173.                         return this.cases[0][2].value;
  174.                 }
  175.                
  176.                 else if(this.cases[0][0].value == this.cases[1][1].value && this.cases[0][0].value == this.cases[2][2].value
  177.                                 && this.cases[0][0].value != 0) {
  178.                         return this.cases[0][0].value;
  179.                 }
  180.                
  181.                 else if(this.cases[2][0].value == this.cases[1][1].value && this.cases[2][0].value == this.cases[0][2].value
  182.                                 && this.cases[2][0].value != 0) {
  183.                         return this.cases[2][0].value;
  184.                 }
  185.                
  186.                 return 0;
  187.         }
  188.        
  189.        
  190.        
  191.        
  192. }
Parsed in 0.066 seconds