clean up code
This commit is contained in:
@@ -17,8 +17,6 @@ import java.awt.Frame;
|
||||
import java.awt.image.BufferedImage;
|
||||
|
||||
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 naughtImage = ResourceImageLoader.loadImageFromResource("/naught.png");
|
||||
@@ -27,7 +25,7 @@ public final class Board {
|
||||
|
||||
final BoardButton[] buttons = new BoardButton[9];
|
||||
|
||||
Integer player = Board.PlayerUser;
|
||||
PlayerEnum player = PlayerEnum.PlayerUser;
|
||||
Frame frame = null;
|
||||
|
||||
Logger logger = LoggerFactory.getLogger(Board.class);
|
||||
@@ -51,7 +49,7 @@ public final class Board {
|
||||
frame.add(button);
|
||||
}
|
||||
|
||||
this.setPlayer(Board.PlayerUser);
|
||||
this.setPlayer(PlayerEnum.PlayerUser);
|
||||
}
|
||||
|
||||
public BoardButton[] getButtons() {
|
||||
@@ -63,10 +61,9 @@ public final class Board {
|
||||
// Generate a random integer from 0 to 8.
|
||||
int position = random.nextInt(9);
|
||||
// Generate another guess if position played.
|
||||
while (getButtons()[position].played) {
|
||||
while (getButtons()[position].getPlayed()) {
|
||||
position = random.nextInt(9);
|
||||
}
|
||||
;
|
||||
|
||||
return position;
|
||||
}
|
||||
@@ -77,81 +74,81 @@ public final class Board {
|
||||
|
||||
protected void setPlayerTurnOnBoard() {
|
||||
// Set turn on board
|
||||
if (player == Board.PlayerUser) {
|
||||
player = Board.PlayerSystem;
|
||||
} else if (player == Board.PlayerSystem) {
|
||||
player = Board.PlayerUser;
|
||||
if (player == PlayerEnum.PlayerUser) {
|
||||
player = PlayerEnum.PlayerSystem;
|
||||
} else if (player == PlayerEnum.PlayerSystem) {
|
||||
player = PlayerEnum.PlayerUser;
|
||||
}
|
||||
}
|
||||
|
||||
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[4].player == buttons[8].player) {
|
||||
buttons[0].getPlayer() == buttons[4].getPlayer()
|
||||
&& buttons[4].getPlayer() == buttons[8].getPlayer()) {
|
||||
|
||||
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[4].player == buttons[6].player) {
|
||||
buttons[2].getPlayer() == buttons[4].getPlayer()
|
||||
&& buttons[4].getPlayer() == buttons[6].getPlayer()) {
|
||||
|
||||
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[1].player == buttons[2].player) {
|
||||
buttons[0].getPlayer() == buttons[1].getPlayer()
|
||||
&& buttons[1].getPlayer() == buttons[2].getPlayer()) {
|
||||
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[4].player == buttons[5].player) {
|
||||
buttons[3].getPlayer() == buttons[4].getPlayer()
|
||||
&& buttons[4].getPlayer() == buttons[5].getPlayer()) {
|
||||
|
||||
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[7].player == buttons[8].player) {
|
||||
buttons[6].getPlayer() == buttons[7].getPlayer()
|
||||
&& buttons[7].getPlayer() == buttons[8].getPlayer()) {
|
||||
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[3].player == buttons[6].player) {
|
||||
buttons[0].getPlayer() == buttons[3].getPlayer()
|
||||
&& buttons[3].getPlayer() == buttons[6].getPlayer()) {
|
||||
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[4].player == buttons[7].player) {
|
||||
buttons[1].getPlayer() == buttons[4].getPlayer()
|
||||
&& buttons[4].getPlayer() == buttons[7].getPlayer()) {
|
||||
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[5].player == buttons[8].player) {
|
||||
buttons[2].getPlayer() == buttons[5].getPlayer()
|
||||
&& buttons[5].getPlayer() == buttons[8].getPlayer()) {
|
||||
return ResultEnum.winner;
|
||||
}
|
||||
|
||||
int count = 0;
|
||||
for (BoardButton boardButton : buttons) {
|
||||
if (boardButton.played) {
|
||||
if (boardButton.getPlayed()) {
|
||||
count++;
|
||||
}
|
||||
}
|
||||
@@ -172,7 +169,7 @@ public final class Board {
|
||||
|
||||
frame.setEnabled(false);
|
||||
// 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.");
|
||||
JOptionPane.showMessageDialog(frame, message + " won.", "Winner!", JOptionPane.WARNING_MESSAGE);
|
||||
|
||||
@@ -199,23 +196,24 @@ public final class Board {
|
||||
//play continues
|
||||
setPlayerTurnOnBoard();
|
||||
|
||||
if (this.player == Board.PlayerSystem) {
|
||||
if (this.player == PlayerEnum.PlayerSystem) {
|
||||
delay = 1400L;
|
||||
frame.setEnabled(false);
|
||||
timer.schedule(new SystemPlayTask(this), delay);
|
||||
}
|
||||
}
|
||||
|
||||
public int getPlayer() {
|
||||
// current player on board
|
||||
public PlayerEnum getPlayer() {
|
||||
return this.player;
|
||||
}
|
||||
|
||||
public void setPlayer(int player) {
|
||||
public void setPlayer(PlayerEnum player) {
|
||||
this.player = player;
|
||||
}
|
||||
|
||||
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
|
||||
private static final BufferedImage blankImage = ResourceImageLoader.loadImageFromResource("/blank.png");
|
||||
|
||||
final Board board;
|
||||
Boolean played = false;
|
||||
Integer player = -1;
|
||||
final private Board board;
|
||||
private Boolean played = false;
|
||||
// player that played as this position
|
||||
private PlayerEnum player = null;
|
||||
|
||||
public BoardButton(String label, ImageIcon imageIcon, Board board) {
|
||||
super(label, imageIcon);
|
||||
@@ -27,13 +28,30 @@ public class BoardButton extends JButton implements ActionListener {
|
||||
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
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
if(this.played) return;
|
||||
if (this.played)
|
||||
return;
|
||||
|
||||
setPlayer(board.player);
|
||||
this.setIcon(board.setPlayerMark());
|
||||
this.played = true;
|
||||
this.player = board.player;
|
||||
|
||||
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);
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user