⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 game.java

📁 基于Java的五子棋的源代码
💻 JAVA
字号:
package net.sourceforge.gomoku;import java.util.ArrayList;/** * @author <a href="mailto:anton.safonov@gmail.com">Anton Safonov</a> */public class Game implements GomokuConstants {  private final Player firstPlayer;  private final Player secondPlayer;  private final Board board;  private boolean cancelled = false;  private ArrayList moveListeners = null;  public Game(Player firstPlayer, Player secondPlayer, byte rows, byte cols) {    this.firstPlayer = firstPlayer;    this.secondPlayer = secondPlayer;    this.board = BoardFactory.create(rows, cols);  }  public Board getBoard() {    return this.board;  }  public void addMoveListener(MoveListener listener) {    if (this.moveListeners == null) {      this.moveListeners = new ArrayList(1);    }    this.moveListeners.add(listener);  }  public byte play() {    Square lastMove = SquareFactory.create();    this.cancelled = false;    byte test;    do {      lastMove = this.firstPlayer.makeMove(this.board, lastMove);      if (this.cancelled) {        test = CANCELLED;        break;      }      markMove(lastMove, this.firstPlayer.getPiece());      test = (byte) board.terminalTest();      if (test != NO_WIN) {        break;      }      lastMove = this.secondPlayer.makeMove(this.board, lastMove);      if (this.cancelled) {        test = CANCELLED;        break;      }      markMove(lastMove, this.secondPlayer.getPiece());      test = (byte) board.terminalTest();      if (test != NO_WIN) {        break;      }    } while (true);    return test;  }  public void cancel() {    this.cancelled = true;  }  public void markMove(final Square move, byte piece) {    board.setPiece(move, piece);    if (this.moveListeners != null) {      for (int i = 0, max = this.moveListeners.size(); i < max; i++) {        ((MoveListener) this.moveListeners.get(i)).moveMade(move, piece);      }    }  }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -