Advertisement
Guest User

TTTGame

a guest
Nov 22nd, 2017
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5.04 KB | None | 0 0
  1. class TTT
  2. {
  3.     private
  4.     char grid[][] = {
  5.     {' ', ' ', '1', ' ', ' ', ' ', '2', ' ', ' ', ' ', '3', ' ', ' ', ' '},
  6.     {' ', ' ', ' ', ' ', '|', ' ', ' ', ' ', '|', ' ', ' ', ' ', ' ', ' '},
  7.     {' ', ' ', ' ', ' ', '|', ' ', ' ', ' ', '|', ' ', ' ', ' ', 'A', ' '},
  8.     {' ', ' ', ' ', ' ', '|', ' ', ' ', ' ', '|', ' ', ' ', ' ', ' ', ' '},
  9.     {' ', '-', '-', '-', '+', '-', '-', '-', '+', '-', '-', '-', ' ', ' '},
  10.     {' ', ' ', ' ', ' ', '|', ' ', ' ', ' ', '|', ' ', ' ', ' ', ' ', ' '},
  11.     {' ', ' ', ' ', ' ', '|', ' ', ' ', ' ', '|', ' ', ' ', ' ', 'B', ' '},
  12.     {' ', ' ', ' ', ' ', '|', ' ', ' ', ' ', '|', ' ', ' ', ' ', ' ', ' '},
  13.     {' ', '-', '-', '-', '+', '-', '-', '-', '+', '-', '-', '-', ' ', ' '},
  14.     {' ', ' ', ' ', ' ', '|', ' ', ' ', ' ', '|', ' ', ' ', ' ', ' ', ' '},
  15.     {' ', ' ', ' ', ' ', '|', ' ', ' ', ' ', '|', ' ', ' ', ' ', 'C', ' '},
  16.     {' ', ' ', ' ', ' ', '|', ' ', ' ', ' ', '|', ' ', ' ', ' ', ' ', ' '}};
  17.  
  18.     private
  19.     char player[] = {'X', 'O'};
  20.  
  21.     private
  22.     int pos;
  23.  
  24.     private
  25.     int movedata[][];
  26.  
  27.     TTT()
  28.     {
  29.         pos = 0;
  30.         movedata = new int[9][3];
  31.  
  32.         for (int i = 0; i < movedata.length; i++)
  33.             for (int j = 0; j < movedata[i].length; j++)
  34.                 movedata[i][j] = 0;
  35.     }
  36.  
  37.     private boolean
  38.     isValid(int index)
  39.     {
  40.         if (index <= movedata.length - 1)
  41.             return true;
  42.         else
  43.             return false;
  44.     }
  45.  
  46.     public void
  47.     printGrid()
  48.     {
  49.         System.out.println();
  50.  
  51.         for (int i = 0; i < grid.length; i++)
  52.             for (int j = 0; j < grid[i].length; j++)
  53.                 System.out.print((j != grid[i].length - 1)?grid[i][j]:'\n');
  54.  
  55.         System.out.println();
  56.     }
  57.  
  58.     private void
  59.     setGrid()
  60.     {
  61.         for (int i = 0; i <= pos; i++)
  62.             switch ((char) movedata[i][0])
  63.             {
  64.                 case 'A':
  65.                 case 'a':
  66.                     switch (movedata[i][1])
  67.                     {
  68.                         case 1:
  69.                             grid[2][2] = player[movedata[i][2]];
  70.                             break;
  71.                         case 2:
  72.                             grid[2][6] = player[movedata[i][2]];
  73.                             break;
  74.                         case 3:
  75.                             grid[2][10] = player[movedata[i][2]];
  76.                             break;
  77.                     }
  78.  
  79.                     break;
  80.                 case 'B':
  81.                 case 'b':
  82.                     switch (movedata[i][1])
  83.                     {
  84.                         case 1:
  85.                             grid[6][2] = player[movedata[i][2]];
  86.                             break;
  87.                         case 2:
  88.                             grid[6][6] = player[movedata[i][2]];
  89.                             break;
  90.                         case 3:
  91.                             grid[6][10] = player[movedata[i][2]];
  92.                             break;
  93.                     }
  94.  
  95.                     break;
  96.                 case 'C':
  97.                 case 'c':
  98.                     switch (movedata[i][1])
  99.                     {
  100.                         case 1:
  101.                             grid[10][2] = player[movedata[i][2]];
  102.                             break;
  103.                         case 2:
  104.                             grid[10][6] = player[movedata[i][2]];
  105.                             break;
  106.                         case 3:
  107.                             grid[10][10] = player[movedata[i][2]];
  108.                             break;
  109.                     }
  110.  
  111.                     break;
  112.             }
  113.     }
  114.  
  115.     public int
  116.     getPos()
  117.     {
  118.         return pos;
  119.     }
  120.  
  121.     public int
  122.     getLastPlayer()
  123.     {
  124.         return movedata[(pos > 0)?pos - 1:pos][2];
  125.     }
  126.  
  127.     public int
  128.     getMaxMoves()
  129.     {
  130.         return movedata.length;
  131.     }
  132.  
  133.     public void
  134.     setMove(int x, int y, int p)
  135.     {
  136.         movedata[pos][0] = x;
  137.         movedata[pos][1] = y;
  138.         movedata[pos][2] = p;
  139.  
  140.         setGrid();
  141.         if (isValid(pos))
  142.             pos++;
  143.     }
  144.  
  145.     public int[]
  146.     inputMove(int player) throws java.io.IOException
  147.     {
  148.         String s = "";
  149.         char c;
  150.         while ((c = (char) System.in.read()) != '\n')
  151.             if (c != '\n')
  152.                 s += c;
  153.  
  154.         int res[] = new int[3];
  155.  
  156.         res[0] = s.charAt(0);
  157.         res[1] = Integer.parseInt(s.substring(1, 2));
  158.         res[2] = player;
  159.  
  160.         return res;
  161.     }
  162. }
  163.  
  164. class TTTGame
  165. {
  166.     public static void
  167.     main(String args[]) throws java.io.IOException
  168.     {
  169.         TTT game1 = new TTT();
  170.  
  171.         game1.printGrid();
  172.  
  173.         int res[] = new int[3];
  174.         int lp = 0;
  175.         do
  176.         {
  177.             System.out.print("Player " + ((lp == 0)?'O':'X') + "> ");
  178.             res = game1.inputMove((lp == 0)?1:0);
  179.  
  180.             game1.setMove(res[0], res[1], res[2]);
  181.             lp = game1.getLastPlayer();
  182.  
  183.             game1.printGrid();
  184.         } while ((game1.getMaxMoves() - game1.getPos()) > 0);
  185.     }
  186. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement