NonTerminalState.java
Created with JBuilder |
package model.board;
import GameIO.*;
import model.*;
class NonTerminalState implements IBoardState {
public static NonTerminalState Singleton = new NonTerminalState();
protected NonTerminalState() {}
public void map(int player, IBoardLambda lambda, Object param, IBoardModel host) {
boolean noApply = true;
int[][] cells = host.getCells();
for (int row = 0; row <cells.length; row++) {
for (int col = 0; col < cells[row].length; col++) {
if (host.isValidMove(player, row, col)) {
noApply = false;
if (!lambda.apply(player, host, param, row, col, cells[row][col])) {
return;
}
}
}
}
if (noApply) {
lambda.noApply(player, host, param);
}
}
public Object execute(IBoardStatusVisitor visitor, Object param, IBoardModel host) {
return visitor.noWinnerCase(host, param);
}
}
NonTerminalState.java
Created with JBuilder |