class SuggesterMover implements Mover {

	@Override
	public short selectAndPlayOneMove(MersenneTwisterFast random, boolean fast) {
		candidates.clear();
		candidates.addAll(suggester.getMoves());
		while (candidates.size() > 0) {
			final short p = candidates.removeRandom(random);
			assert board.getColorAt(p) == VACANT;
			Legality legality = fast ? board.playFast(p) : board.play(p);
			if (legality == OK) {
				return p;
			}
		} 
		return fallbackMover.selectAndPlayOneMove(random, fast);
	}

	public  SuggesterMover(Board board, Suggester suggester, Mover fallbackMover);

}