Jeu de XO || Game XO || Tic Tac in java

Jeu de XO || Game XO || Tic Tac  in java
jeu-de-xo-||game-X-O-||Tic-Tac-in-java





Le tic-tac-toe, aussi appelé « morpion » (par analogie au jeu de morpion) et « oxo » en Belgique, est un jeu de réflexion se pratiquant à deux joueurs au tour par tour dont le but est de créer le premier un alignement. Le jeu se joue généralement avec papier et crayonSource


import java.awt.List;
import java.util.Collections;
import java.util.SortedMap;
import java.util.TreeMap;


public class Test {

 public static void main(String[] args) {
  // TODO Auto-generated method stub
       new Jeu_x_o().LirePosition();
  
     
    


       
 }

}






import java.util.Scanner;


public class Jeu_x_o {
 private int size=5;
 private char jeu_table[][] =new char[size][size];
 private char X_O[]={'X','O'};
 private int x,y;
 private int cond_valid=5;
 
 private void init(){
  for(int i=0;i<size;i++)
   for(int j=0;j<size;j++)jeu_table[i][j]=' ';
 }
 public void LirePosition(){
 Scanner sc=new Scanner(System.in);
 init();
 do{
  for(int i=0;i<2;i++){
   affiche_plateau();
   do{
   System.out.println("\nJoueur "+i+" "+X_O[i] +" :" );
 System.out.print("x :");  x=sc.nextInt();System.out.println();
 System.out.print("y :");  y=sc.nextInt();System.out.println();
   }while(!verf(x,y));
   jeu_table[x][y]=X_O[i];
   if(chercheVanqueur(x,y)){System.out.println("le joueux "+X_O[i]+" vainqueur ");break;}
  }
 }while(!chercheVanqueur(x, y));
  
 }
 private boolean verf(int i,int j){
  
  if(i>=size||j>=size||i<0||j<0||(jeu_table[i][j]!=' '))return false;
  return true;
 }
 private boolean chercheVanqueur(int x,int y) 
 {
  return (Verf_Droit(x,y,jeu_table[x][y])+Verf_gauche(x, y,jeu_table[x][y])-1>=cond_valid)||
    (Verf_Haut(x,y,jeu_table[x][y])+Verf_Bas(x, y,jeu_table[x][y])-1)>=cond_valid||
    Verf_Bas_droit(x,y,jeu_table[x][y])+Verf_Haut_Gauche(x, y,jeu_table[x][y])-1>=cond_valid||
      Verf_BAS_Gauche(x,y,jeu_table[x][y])+Verf_Haut_droit(x, y,jeu_table[x][y])-1>=cond_valid;
 }
      public void affiche_plateau(){
        for(int j=0;j<size;j++){
   if(j==0){for(int i=0;i<size;i++){
               System.out.print("+---");
                               }
            }
             System.out.println("");
               for(int i=0;i<size;i++){
                System.out.print("| "+jeu_table[j][i] +" ");
           }
                System.out.println("");
                for(int i=0;i<size
                  ;i++){
               System.out.print("+---");
         }
   
  }
  
 } 
      private int Verf_Droit(int x,int y, char sin){
 
       if(y==size)return 0;
       if(jeu_table[x][y]!=sin)return 0;
     
       return (1+Verf_Droit(x, y+1, sin)); 
      }
      private int Verf_gauche(int x,int y, char sin){
       
       if(y==-1)return 0;
       if(jeu_table[x][y]!=sin)return 0;
     
       return (1+Verf_gauche(x, y-1, sin)); 
      }
 private int Verf_Haut(int x,int y, char sin){
       
       if(x==-1)return 0;
       if(jeu_table[x][y]!=sin)return 0;
     
       return (1+Verf_Haut(x-1, y, sin)); 
      }
 private int Verf_Bas(int x,int y, char sin){
   
   if(x==size)return 0;
   if(jeu_table[x][y]!=sin)return 0;
 
   return (1+Verf_Bas(x+1, y, sin)); 
 }
 
 private int Verf_Bas_droit(int x,int y, char sin){
   
   if(x==size)return 0;
   if(y==size)return 0;
   if(jeu_table[x][y]!=sin)return 0;
 
   return (1+Verf_Bas_droit(x+1, y+1, sin)); 
}
 
 private int Verf_Haut_Gauche(int x,int y, char sin)
 {
   if(x==-1)return 0;
   if(y==-1)return 0;
   if(jeu_table[x][y]!=sin)return 0;
 
   return (1+Verf_Haut_Gauche(x-1, y-1, sin)); 
}

 private int Verf_BAS_Gauche(int x,int y, char sin){
   if(y==-1)return 0;
   if(x==size)return 0;
   if(jeu_table[x][y]!=sin)return 0;
 
   return (1+Verf_BAS_Gauche(x+1, y-1, sin)); 
}
 private int Verf_Haut_droit(int x,int y, char sin){
   if(x==-1)return 0;
   if(y==size)return 0;
   if(jeu_table[x][y]!=sin)return 0;
 
   return (1+Verf_Haut_Gauche(x-1, y+1, sin)); 
}
}