Files
cs8803p4/src/model/comPlayer/generator/ValidMoveGenerator.java

51 lines
1.2 KiB
Java

package model.comPlayer.generator;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import model.Board;
import model.Board.TileColor;
import model.CellPointer;
import model.Move;
import org.apache.log4j.Logger;
public class ValidMoveGenerator implements MoveGenerator {
private static final Logger LOGGER = Logger
.getLogger(ValidMoveGenerator.class.getName());
@Override
public Move genMove(Board board, boolean asHuman) {
LOGGER.info("ValidMoveGenerator genMove() stub returning NONE");
return Move.NONE;
}
@Override
public List<Move> genMoves(Board board, boolean asHuman, int nMoves) {
List<Move> validMoves = new ArrayList<Move>();
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, r, c));
}
}
}
}
Collections.shuffle(validMoves);
if (nMoves == MoveGenerator.ALL_MOVES) {
return validMoves;
} else {
return validMoves.subList(0, Math.min(validMoves.size(), nMoves));
}
}
}