clean up code
This commit is contained in:
@@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user