Alpha-Beta move generator can look 2 plays (4 plies) ahead on a 4x4 board and blocks every possible attempt by the player to connect 3.

It should be possible to play on larger boards when the computers 'move' is changed from playing a tile to picking the player's next available color.
This commit is contained in:
Woody Folsom
2012-04-14 15:36:02 -04:00
parent 74b8eb4622
commit d9ec72d0fb
23 changed files with 396 additions and 69 deletions

View File

@@ -35,8 +35,9 @@ public class MainFrame extends JFrame {
private void init() {
ScorePanel sp = new ScorePanel(referee);
TileSelectionPanel tp = new TileSelectionPanel(referee.getHumanPlayer());
referee.setScorePanel(sp);
TileSelectionPanel tp = new TileSelectionPanel(referee.getHumanPlayer());
BoardPanel bp = new BoardPanel(referee,tp);
referee.setBoardPanel(bp);
@@ -82,7 +83,7 @@ public class MainFrame extends JFrame {
add(vWrapper,BorderLayout.CENTER);
//To ensure correct size, pre-populate the score and message panels with text.
sp.updateScore();
sp.updateScore(0);
mp.updateMessage("Loading new game...");
pack();

View File

@@ -11,17 +11,15 @@ public class ScorePanel extends JPanel {
private static final long serialVersionUID = 1L;
private final JLabel message = new JLabel();
private final Referee referee;
public ScorePanel(Referee ref) {
referee = ref;
add(message);
}
public void updateScore() {
public void updateScore(final int score) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
message.setText("Score: " + referee.getScore());
message.setText("Score: " + score);
}
});
}

View File

@@ -9,9 +9,10 @@ import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
import player.HumanPlayer;
import controller.TSPMouseListener;
import model.HumanPlayer;
import model.Board.TileColor;
public class TileSelectionPanel extends JPanel {