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 genMoves(Board board, boolean asHuman, int nMoves) { List validMoves = new ArrayList(); 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)); } } }