Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package ticTacToe;
- public class GameLogic {
- private GridValue turn = GridValue.X;
- private GameState state = GameState.PLAYING;
- private int turnCount = 0;
- private GridValue[][] board = new GridValue[3][3];
- public GameLogic(){
- for (int row = 0; row < 3; row++) {
- for (int col = 0; col < 3; col++) {
- board[row][col] = GridValue.EMPTY; // Set each cell to EMPTY
- }
- }
- }
- public GridValue getTurn(){
- return this.turn;
- }
- public GameState getState(){
- return this.state;
- }
- public void changeTurn(){
- turn = (turn == GridValue.X) ? GridValue.O : GridValue.X;
- }
- public void win(GridValue turn){
- if(turn == GridValue.X){
- state = GameState.XWIN;
- } else {
- state = GameState.OWIN;
- }
- }
- public void draw(){
- state = GameState.DRAW;
- }
- public void resultCheck(int row, int col){
- //row
- if(board[row][0] == turn &&
- board[row][1] == turn &&
- board[row][2] == turn){
- win(turn);
- }
- //column
- else if(board[0][col] == turn &&
- board[1][col] == turn &&
- board[2][col] == turn){
- win(turn);
- }
- //diagonal
- else if(row == col &&
- board[0][0] == board[1][1] &&
- board[0][0] == board[2][2]){
- win(turn);
- }
- //other diagonal
- else if(row + col == 2 &&
- board[2][0] == board[1][1] &&
- board[2][0] == board[0][2]){
- win(turn);
- }
- //draw
- else if(turnCount == 9){
- draw();
- }
- }
- public boolean makeMove(int row, int col){
- if(board[row][col] != GridValue.X && board[row][col] != GridValue.O && state == GameState.PLAYING){
- board[row][col] = this.turn;
- turnCount++;
- resultCheck(row, col);
- return true;
- }
- return false;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement