Jeu de XO || Game XO || 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 crayon. Source
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)); } }