Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class TTT
- {
- private
- char grid[][] = {
- {' ', ' ', '1', ' ', ' ', ' ', '2', ' ', ' ', ' ', '3', ' ', ' ', ' '},
- {' ', ' ', ' ', ' ', '|', ' ', ' ', ' ', '|', ' ', ' ', ' ', ' ', ' '},
- {' ', ' ', ' ', ' ', '|', ' ', ' ', ' ', '|', ' ', ' ', ' ', 'A', ' '},
- {' ', ' ', ' ', ' ', '|', ' ', ' ', ' ', '|', ' ', ' ', ' ', ' ', ' '},
- {' ', '-', '-', '-', '+', '-', '-', '-', '+', '-', '-', '-', ' ', ' '},
- {' ', ' ', ' ', ' ', '|', ' ', ' ', ' ', '|', ' ', ' ', ' ', ' ', ' '},
- {' ', ' ', ' ', ' ', '|', ' ', ' ', ' ', '|', ' ', ' ', ' ', 'B', ' '},
- {' ', ' ', ' ', ' ', '|', ' ', ' ', ' ', '|', ' ', ' ', ' ', ' ', ' '},
- {' ', '-', '-', '-', '+', '-', '-', '-', '+', '-', '-', '-', ' ', ' '},
- {' ', ' ', ' ', ' ', '|', ' ', ' ', ' ', '|', ' ', ' ', ' ', ' ', ' '},
- {' ', ' ', ' ', ' ', '|', ' ', ' ', ' ', '|', ' ', ' ', ' ', 'C', ' '},
- {' ', ' ', ' ', ' ', '|', ' ', ' ', ' ', '|', ' ', ' ', ' ', ' ', ' '}};
- private
- char player[] = {'X', 'O'};
- private
- int pos;
- private
- int movedata[][];
- TTT()
- {
- pos = 0;
- movedata = new int[9][3];
- for (int i = 0; i < movedata.length; i++)
- for (int j = 0; j < movedata[i].length; j++)
- movedata[i][j] = 0;
- }
- private boolean
- isValid(int index)
- {
- if (index <= movedata.length - 1)
- return true;
- else
- return false;
- }
- public void
- printGrid()
- {
- System.out.println();
- for (int i = 0; i < grid.length; i++)
- for (int j = 0; j < grid[i].length; j++)
- System.out.print((j != grid[i].length - 1)?grid[i][j]:'\n');
- System.out.println();
- }
- private void
- setGrid()
- {
- for (int i = 0; i <= pos; i++)
- switch ((char) movedata[i][0])
- {
- case 'A':
- case 'a':
- switch (movedata[i][1])
- {
- case 1:
- grid[2][2] = player[movedata[i][2]];
- break;
- case 2:
- grid[2][6] = player[movedata[i][2]];
- break;
- case 3:
- grid[2][10] = player[movedata[i][2]];
- break;
- }
- break;
- case 'B':
- case 'b':
- switch (movedata[i][1])
- {
- case 1:
- grid[6][2] = player[movedata[i][2]];
- break;
- case 2:
- grid[6][6] = player[movedata[i][2]];
- break;
- case 3:
- grid[6][10] = player[movedata[i][2]];
- break;
- }
- break;
- case 'C':
- case 'c':
- switch (movedata[i][1])
- {
- case 1:
- grid[10][2] = player[movedata[i][2]];
- break;
- case 2:
- grid[10][6] = player[movedata[i][2]];
- break;
- case 3:
- grid[10][10] = player[movedata[i][2]];
- break;
- }
- break;
- }
- }
- public int
- getPos()
- {
- return pos;
- }
- public int
- getLastPlayer()
- {
- return movedata[(pos > 0)?pos - 1:pos][2];
- }
- public int
- getMaxMoves()
- {
- return movedata.length;
- }
- public void
- setMove(int x, int y, int p)
- {
- movedata[pos][0] = x;
- movedata[pos][1] = y;
- movedata[pos][2] = p;
- setGrid();
- if (isValid(pos))
- pos++;
- }
- public int[]
- inputMove(int player) throws java.io.IOException
- {
- String s = "";
- char c;
- while ((c = (char) System.in.read()) != '\n')
- if (c != '\n')
- s += c;
- int res[] = new int[3];
- res[0] = s.charAt(0);
- res[1] = Integer.parseInt(s.substring(1, 2));
- res[2] = player;
- return res;
- }
- }
- class TTTGame
- {
- public static void
- main(String args[]) throws java.io.IOException
- {
- TTT game1 = new TTT();
- game1.printGrid();
- int res[] = new int[3];
- int lp = 0;
- do
- {
- System.out.print("Player " + ((lp == 0)?'O':'X') + "> ");
- res = game1.inputMove((lp == 0)?1:0);
- game1.setMove(res[0], res[1], res[2]);
- lp = game1.getLastPlayer();
- game1.printGrid();
- } while ((game1.getMaxMoves() - game1.getPos()) > 0);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement