- Changed the rules. Now tiles can only be placed next to existing tiles. Unless the board is empty.

This commit is contained in:
Marshall
2012-04-29 17:11:11 -04:00
parent c06f7ab38e
commit e012f17b33
3 changed files with 168 additions and 95 deletions

View File

@@ -6,6 +6,7 @@ import java.util.List;
import model.Board;
import model.Board.TileColor;
import model.CellPointer;
import model.Move;
import org.apache.log4j.Logger;
@@ -25,25 +26,25 @@ public class ValidMoveGenerator implements MoveGenerator {
List<Move> validMoves = new ArrayList<Move>();
for (int i = 0; i < Board.NUM_ROWS; i++) {
for (int j = 0; j < Board.NUM_COLS; j++) {
if (board.getTile(i, j) == TileColor.NONE) {
for (int r = 0; r < Board.NUM_ROWS; r++) {
for (int c = 0; c < Board.NUM_COLS; c++) {
if (Board.isLegal(board, new CellPointer(r, c))) {
for (TileColor color : TileColor.values()) {
if (color == TileColor.NONE) {
continue;
}
validMoves.add(new Move(color, i, j));
validMoves.add(new Move(color, r, c));
}
}
}
}
Collections.shuffle(validMoves);
if (nMoves == MoveGenerator.ALL_MOVES) {
return validMoves;
} else {
return validMoves.subList(0, Math.min(validMoves.size(),nMoves));
return validMoves.subList(0, Math.min(validMoves.size(), nMoves));
}
}
}