clean up code

This commit is contained in:
2026-02-08 19:16:09 -05:00
parent a971608567
commit ac3da5b978
4 changed files with 69 additions and 48 deletions
@@ -17,8 +17,6 @@ import java.awt.Frame;
import java.awt.image.BufferedImage; import java.awt.image.BufferedImage;
public final class Board { public final class Board {
final static int PlayerUser = 1;
final static int PlayerSystem = 0;
private static final BufferedImage xImage = ResourceImageLoader.loadImageFromResource("/x.png"); private static final BufferedImage xImage = ResourceImageLoader.loadImageFromResource("/x.png");
private static final BufferedImage naughtImage = ResourceImageLoader.loadImageFromResource("/naught.png"); private static final BufferedImage naughtImage = ResourceImageLoader.loadImageFromResource("/naught.png");
@@ -27,7 +25,7 @@ public final class Board {
final BoardButton[] buttons = new BoardButton[9]; final BoardButton[] buttons = new BoardButton[9];
Integer player = Board.PlayerUser; PlayerEnum player = PlayerEnum.PlayerUser;
Frame frame = null; Frame frame = null;
Logger logger = LoggerFactory.getLogger(Board.class); Logger logger = LoggerFactory.getLogger(Board.class);
@@ -51,7 +49,7 @@ public final class Board {
frame.add(button); frame.add(button);
} }
this.setPlayer(Board.PlayerUser); this.setPlayer(PlayerEnum.PlayerUser);
} }
public BoardButton[] getButtons() { public BoardButton[] getButtons() {
@@ -63,10 +61,9 @@ public final class Board {
// Generate a random integer from 0 to 8. // Generate a random integer from 0 to 8.
int position = random.nextInt(9); int position = random.nextInt(9);
// Generate another guess if position played. // Generate another guess if position played.
while (getButtons()[position].played) { while (getButtons()[position].getPlayed()) {
position = random.nextInt(9); position = random.nextInt(9);
} }
;
return position; return position;
} }
@@ -77,81 +74,81 @@ public final class Board {
protected void setPlayerTurnOnBoard() { protected void setPlayerTurnOnBoard() {
// Set turn on board // Set turn on board
if (player == Board.PlayerUser) { if (player == PlayerEnum.PlayerUser) {
player = Board.PlayerSystem; player = PlayerEnum.PlayerSystem;
} else if (player == Board.PlayerSystem) { } else if (player == PlayerEnum.PlayerSystem) {
player = Board.PlayerUser; player = PlayerEnum.PlayerUser;
} }
} }
public ResultEnum checkGamePlay(BoardButton[] buttons) { public ResultEnum checkGamePlay(BoardButton[] buttons) {
if ((buttons[0].played && buttons[4].played && buttons[8].played) if ((buttons[0].getPlayed() && buttons[4].getPlayed() && buttons[8].getPlayed())
&& &&
buttons[0].player == buttons[4].player buttons[0].getPlayer() == buttons[4].getPlayer()
&& buttons[4].player == buttons[8].player) { && buttons[4].getPlayer() == buttons[8].getPlayer()) {
return ResultEnum.winner; return ResultEnum.winner;
} }
if ((buttons[2].played && buttons[4].played && buttons[6].played) if ((buttons[2].getPlayed() && buttons[4].getPlayed() && buttons[6].getPlayed())
&& &&
buttons[2].player == buttons[4].player buttons[2].getPlayer() == buttons[4].getPlayer()
&& buttons[4].player == buttons[6].player) { && buttons[4].getPlayer() == buttons[6].getPlayer()) {
return ResultEnum.winner; return ResultEnum.winner;
} }
if ((buttons[0].played && buttons[1].played && buttons[2].played) if ((buttons[0].getPlayed() && buttons[1].getPlayed() && buttons[2].getPlayed())
&& &&
buttons[0].player == buttons[1].player buttons[0].getPlayer() == buttons[1].getPlayer()
&& buttons[1].player == buttons[2].player) { && buttons[1].getPlayer() == buttons[2].getPlayer()) {
return ResultEnum.winner; return ResultEnum.winner;
} }
if ((buttons[3].played && buttons[4].played && buttons[5].played) if ((buttons[3].getPlayed() && buttons[4].getPlayed() && buttons[5].getPlayed())
&& &&
buttons[3].player == buttons[4].player buttons[3].getPlayer() == buttons[4].getPlayer()
&& buttons[4].player == buttons[5].player) { && buttons[4].getPlayer() == buttons[5].getPlayer()) {
return ResultEnum.winner; return ResultEnum.winner;
} }
if ((buttons[6].played && buttons[7].played && buttons[8].played) if ((buttons[6].getPlayed() && buttons[7].getPlayed() && buttons[8].getPlayed())
&& &&
buttons[6].player == buttons[7].player buttons[6].getPlayer() == buttons[7].getPlayer()
&& buttons[7].player == buttons[8].player) { && buttons[7].getPlayer() == buttons[8].getPlayer()) {
return ResultEnum.winner; return ResultEnum.winner;
} }
if ((buttons[0].played && buttons[3].played && buttons[6].played) if ((buttons[0].getPlayed() && buttons[3].getPlayed() && buttons[6].getPlayed())
&& &&
buttons[0].player == buttons[3].player buttons[0].getPlayer() == buttons[3].getPlayer()
&& buttons[3].player == buttons[6].player) { && buttons[3].getPlayer() == buttons[6].getPlayer()) {
return ResultEnum.winner; return ResultEnum.winner;
} }
if ((buttons[1].played && buttons[4].played && buttons[7].played) if ((buttons[1].getPlayed() && buttons[4].getPlayed() && buttons[7].getPlayed())
&& &&
buttons[1].player == buttons[4].player buttons[1].getPlayer() == buttons[4].getPlayer()
&& buttons[4].player == buttons[7].player) { && buttons[4].getPlayer() == buttons[7].getPlayer()) {
return ResultEnum.winner; return ResultEnum.winner;
} }
if ((buttons[2].played && buttons[5].played && buttons[8].played) if ((buttons[2].getPlayed() && buttons[5].getPlayed() && buttons[8].getPlayed())
&& &&
buttons[2].player == buttons[5].player buttons[2].getPlayer() == buttons[5].getPlayer()
&& buttons[5].player == buttons[8].player) { && buttons[5].getPlayer() == buttons[8].getPlayer()) {
return ResultEnum.winner; return ResultEnum.winner;
} }
int count = 0; int count = 0;
for (BoardButton boardButton : buttons) { for (BoardButton boardButton : buttons) {
if (boardButton.played) { if (boardButton.getPlayed()) {
count++; count++;
} }
} }
@@ -172,7 +169,7 @@ public final class Board {
frame.setEnabled(false); frame.setEnabled(false);
// show Winner Dialog // show Winner Dialog
String message = this.player == Board.PlayerUser ? String.format("You") : String.format("System"); String message = this.player == PlayerEnum.PlayerUser ? String.format("You") : String.format("System");
frame.setTitle("TicTacToe - " + message + " won."); frame.setTitle("TicTacToe - " + message + " won.");
JOptionPane.showMessageDialog(frame, message + " won.", "Winner!", JOptionPane.WARNING_MESSAGE); JOptionPane.showMessageDialog(frame, message + " won.", "Winner!", JOptionPane.WARNING_MESSAGE);
@@ -199,23 +196,24 @@ public final class Board {
//play continues //play continues
setPlayerTurnOnBoard(); setPlayerTurnOnBoard();
if (this.player == Board.PlayerSystem) { if (this.player == PlayerEnum.PlayerSystem) {
delay = 1400L; delay = 1400L;
frame.setEnabled(false); frame.setEnabled(false);
timer.schedule(new SystemPlayTask(this), delay); timer.schedule(new SystemPlayTask(this), delay);
} }
} }
public int getPlayer() { // current player on board
public PlayerEnum getPlayer() {
return this.player; return this.player;
} }
public void setPlayer(int player) { public void setPlayer(PlayerEnum player) {
this.player = player; this.player = player;
} }
public Icon setPlayerMark() { public Icon setPlayerMark() {
return new ImageIcon(player == Board.PlayerUser ? xImage : naughtImage); return new ImageIcon(player == PlayerEnum.PlayerUser ? xImage : naughtImage);
} }
} }
@@ -12,9 +12,10 @@ public class BoardButton extends JButton implements ActionListener {
// Board // Board
private static final BufferedImage blankImage = ResourceImageLoader.loadImageFromResource("/blank.png"); private static final BufferedImage blankImage = ResourceImageLoader.loadImageFromResource("/blank.png");
final Board board; final private Board board;
Boolean played = false; private Boolean played = false;
Integer player = -1; // player that played as this position
private PlayerEnum player = null;
public BoardButton(String label, ImageIcon imageIcon, Board board) { public BoardButton(String label, ImageIcon imageIcon, Board board) {
super(label, imageIcon); super(label, imageIcon);
@@ -27,13 +28,30 @@ public class BoardButton extends JButton implements ActionListener {
return blankImage; return blankImage;
} }
Boolean getPlayed() {
return played;
}
private void setPlayer(final PlayerEnum boardPlayer) {
this.player = boardPlayer;
}
public PlayerEnum getPlayer() {
return player;
}
public Board getBoard(){
return board;
}
@Override @Override
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
if(this.played) return; if (this.played)
return;
setPlayer(board.player);
this.setIcon(board.setPlayerMark()); this.setIcon(board.setPlayerMark());
this.played = true; this.played = true;
this.player = board.player;
board.PlayEventUpdate(); board.PlayEventUpdate();
} }
@@ -0,0 +1,5 @@
package edu.tictactoe;
public enum PlayerEnum {
PlayerSystem, PlayerUser;
}
@@ -10,9 +10,9 @@ public aspect Referee { // call the plays.
{ {
ResultEnum oval = proceed(buttons); ResultEnum oval = proceed(buttons);
Logger logger = LoggerFactory.getLogger(Board.class); Logger logger = LoggerFactory.getLogger(Referee.class);
logger.info(String.format("Checking Board play: %s ", oval)); logger.info(String.format("Checking Board play: %s. ", oval));
return oval; return oval;
} }