Advertisement
werkstattdreid

GameLogic.java

Apr 7th, 2025
50
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.16 KB | None | 0 0
  1. package ticTacToe;
  2.  
  3.  
  4. public class GameLogic {
  5.  
  6. private GridValue turn = GridValue.X;
  7. private GameState state = GameState.PLAYING;
  8. private int turnCount = 0;
  9.  
  10. private GridValue[][] board = new GridValue[3][3];
  11.  
  12. public GameLogic(){
  13. for (int row = 0; row < 3; row++) {
  14. for (int col = 0; col < 3; col++) {
  15. board[row][col] = GridValue.EMPTY; // Set each cell to EMPTY
  16. }
  17. }
  18. }
  19.  
  20. public GridValue getTurn(){
  21. return this.turn;
  22. }
  23.  
  24. public GameState getState(){
  25. return this.state;
  26. }
  27.  
  28. public void changeTurn(){
  29. turn = (turn == GridValue.X) ? GridValue.O : GridValue.X;
  30. }
  31.  
  32. public void win(GridValue turn){
  33. if(turn == GridValue.X){
  34. state = GameState.XWIN;
  35. } else {
  36. state = GameState.OWIN;
  37. }
  38. }
  39.  
  40. public void draw(){
  41. state = GameState.DRAW;
  42. }
  43.  
  44. public void resultCheck(int row, int col){
  45.  
  46. //row
  47. if(board[row][0] == turn &&
  48. board[row][1] == turn &&
  49. board[row][2] == turn){
  50. win(turn);
  51. }
  52. //column
  53. else if(board[0][col] == turn &&
  54. board[1][col] == turn &&
  55. board[2][col] == turn){
  56. win(turn);
  57. }
  58. //diagonal
  59. else if(row == col &&
  60. board[0][0] == board[1][1] &&
  61. board[0][0] == board[2][2]){
  62. win(turn);
  63. }
  64. //other diagonal
  65. else if(row + col == 2 &&
  66. board[2][0] == board[1][1] &&
  67. board[2][0] == board[0][2]){
  68. win(turn);
  69. }
  70. //draw
  71. else if(turnCount == 9){
  72. draw();
  73. }
  74. }
  75.  
  76. public boolean makeMove(int row, int col){
  77. if(board[row][col] != GridValue.X && board[row][col] != GridValue.O && state == GameState.PLAYING){
  78. board[row][col] = this.turn;
  79. turnCount++;
  80. resultCheck(row, col);
  81. return true;
  82. }
  83. return false;
  84. }
  85. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement