SabirSazzad

Tic Tac Toe(Board Class with artificial intelligence)

Mar 17th, 2017
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 7.26 KB | None | 0 0
  1.  
  2. package tictactoefull;
  3.  
  4. public class Board {
  5.    
  6.     private static char [][] board = new char[3][3];
  7.     private int row;
  8.     private int column;
  9.    
  10.     public Board(){
  11.     board[0][0] = '1';board[0][1] = '2';board[0][2] = '3';
  12.     board[1][0] = '4';board[1][1] = '5';board[1][2] = '6';
  13.     board[2][0] = '7';board[2][1] = '8';board[2][2] = '9';
  14.     }
  15.    
  16.     public void printBoard(){        
  17.         System.out.println();
  18.         for(int i=0; i<3; i++){
  19.             for(int j=0; j<3; j++){
  20.                System.out.printf("[%c]  ", board[i][j]);
  21.             }
  22.             System.out.println();
  23.         }
  24.     }
  25.     public void setIndex(int index, char playerSign){
  26.         this.row = setRow(index);
  27.         this.column = setColumn(index);
  28.         board[row][column] = playerSign;
  29.     }
  30.     private int setRow(int index){
  31.         this.row=0;
  32.         switch(index)
  33.         {
  34.             case 1:
  35.             case 2:
  36.             case 3: return row;
  37.             case 4:
  38.             case 5:
  39.             case 6: return row+1;
  40.             case 7:
  41.             case 8:
  42.             case 9: return row+2;              
  43.         }
  44.  
  45.         return row;
  46.     }
  47.     private int setColumn(int index){
  48.         this.column=0;
  49.         switch(index){
  50.             case 1:
  51.             case 4:
  52.             case 7: return column;
  53.             case 2:
  54.             case 5:
  55.             case 8: column = 1; return column;
  56.             case 3:
  57.             case 6:
  58.             case 9: column = 2; return column;
  59.         }
  60.         return column;
  61.     }
  62.    
  63.     public boolean testValidity(int index){
  64.         if(index<1 || index>9){
  65.             return false;
  66.         }
  67.         this.row = setRow(index);
  68.         this.column = setColumn(index);
  69.         int initialplayerSign = board[row][column];
  70.         if(initialplayerSign >= '1' && initialplayerSign <= '9')
  71.         {
  72.             return true;
  73.         }
  74.         return false;
  75.     }
  76.     public boolean cheakWin(){
  77.        
  78.         if((board[0][0]==board[1][1] && board[0][0]==board[2][2]) ||
  79.            (board[0][2]==board[1][1] && board[0][2]==board[2][0]))
  80.         {
  81.             return true;
  82.         }
  83.         else if ((board[0][0]==board[0][1] && board[0][0]==board[0][2]) ||
  84.                 (board[0][0]==board[1][0] && board[0][0]==board[2][0]))
  85.         {
  86.             return true;
  87.         }
  88.         else if ((board[2][2]==board[1][2] && board[2][2]==board[0][2]) ||
  89.                 (board[2][2]==board[2][1] && board[2][2]==board[2][0]))
  90.         {
  91.             return true;
  92.         }
  93.         else if ((board[0][1]==board[1][1] && board[0][1]==board[2][1]) ||
  94.                 (board[1][0]==board[1][1] && board[1][0]==board[1][2]))
  95.         {
  96.             return true;
  97.         }
  98.        
  99.         return false;
  100.     }
  101.      public int setTarget(char playerSign, char computerSign){
  102.          
  103.         if((board[0][1]== computerSign && board[0][2]== computerSign) ||
  104.            (board[1][1]== computerSign && board[2][2]== computerSign) ||
  105.            (board[1][0]== computerSign && board[2][0]== computerSign))
  106.         {
  107.             return 1;
  108.         }
  109.         else if((board[0][0]== computerSign && board[0][2]== computerSign) ||
  110.                 (board[1][1]== computerSign && board[2][1]== computerSign))
  111.         {
  112.             return 2;
  113.         }
  114.         else if((board[0][0]== computerSign && board[0][1]== computerSign) ||
  115.                 (board[1][1]== computerSign && board[2][0]== computerSign) ||
  116.                 (board[1][2]== computerSign && board[2][2]== computerSign))
  117.         {
  118.             return 3;
  119.         }
  120.         else if((board[0][0]== computerSign && board[2][0]== computerSign) ||
  121.                 (board[1][1]== computerSign && board[1][2]== computerSign))
  122.         {
  123.             return 4;
  124.         }
  125.         else if((board[0][1]== computerSign && board[2][1]== computerSign) ||
  126.                 (board[1][0]== computerSign && board[1][2]== computerSign) ||
  127.                 (board[0][0]== computerSign && board[2][2]== computerSign) ||
  128.                 (board[0][2]== computerSign && board[2][0]== computerSign))
  129.         {
  130.             return 5;
  131.         }
  132.         else if((board[0][2]== computerSign && board[2][2]== computerSign) ||
  133.                 (board[1][0]== computerSign && board[1][1]== computerSign))
  134.         {
  135.             return 6;
  136.         }
  137.         else if((board[0][0]== computerSign && board[1][0]== computerSign) ||
  138.                 (board[0][2]== computerSign && board[1][1]== computerSign) ||
  139.                 (board[2][1]== computerSign && board[2][2]== computerSign))
  140.         {
  141.             return 7;
  142.         }
  143.         else if((board[0][1]== computerSign && board[1][1]== computerSign) ||
  144.                 (board[2][0]== computerSign && board[2][2]== computerSign))
  145.         {
  146.             return 8;
  147.         }
  148.         else if((board[0][0]== computerSign && board[1][1]== computerSign) ||
  149.                 (board[0][2]== computerSign && board[1][2]== computerSign) ||
  150.                 (board[2][0]== computerSign && board[2][1]== computerSign))
  151.         {
  152.             return 9;
  153.         }
  154.          
  155.         else if((board[0][1]== playerSign && board[0][2]== playerSign) ||
  156.            (board[1][1]== playerSign && board[2][2]== playerSign) ||
  157.            (board[1][0]== playerSign && board[2][0]== playerSign))
  158.         {
  159.             return 1;
  160.         }
  161.         else if((board[0][0]== playerSign && board[0][2]== playerSign) ||
  162.                 (board[1][1]== playerSign && board[2][1]== playerSign))
  163.         {
  164.             return 2;
  165.         }
  166.         else if((board[0][0]== playerSign && board[0][1]== playerSign) ||
  167.                 (board[1][1]== playerSign && board[2][0]== playerSign) ||
  168.                 (board[1][2]== playerSign && board[2][2]== playerSign))
  169.         {
  170.             return 3;
  171.         }
  172.         else if((board[0][0]== playerSign && board[2][0]== playerSign) ||
  173.                 (board[1][1]== playerSign && board[1][2]== playerSign))
  174.         {
  175.             return 4;
  176.         }
  177.         else if((board[0][1]== playerSign && board[2][1]== playerSign) ||
  178.                 (board[1][0]== playerSign && board[1][2]== playerSign) ||
  179.                 (board[0][0]== playerSign && board[2][2]== playerSign) ||
  180.                 (board[0][2]== playerSign && board[2][0]== playerSign))
  181.         {
  182.             return 5;
  183.         }
  184.         else if((board[0][2]== playerSign && board[2][2]== playerSign) ||
  185.                 (board[1][0]== playerSign && board[1][1]== playerSign))
  186.         {
  187.             return 6;
  188.         }
  189.         else if((board[0][0]== playerSign && board[1][0]== playerSign) ||
  190.                 (board[0][2]== playerSign && board[1][1]== playerSign) ||
  191.                 (board[2][1]== playerSign && board[2][2]== playerSign))
  192.         {
  193.             return 7;
  194.         }
  195.         else if((board[0][1]== playerSign && board[1][1]== playerSign) ||
  196.                 (board[2][0]== playerSign && board[2][2]== playerSign))
  197.         {
  198.             return 8;
  199.         }
  200.         else if((board[0][0]== playerSign && board[1][1]== playerSign) ||
  201.                 (board[0][2]== playerSign && board[1][2]== playerSign) ||
  202.                 (board[2][0]== playerSign && board[2][1]== playerSign))
  203.         {
  204.             return 9;
  205.         }
  206.        
  207.         return 0;
  208.          
  209.     }
  210.    
  211.  
  212. }
Advertisement
Add Comment
Please, Sign In to add comment