Advertisement
Guest User

Keyboard

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