/** * Makes the move that is returned by getMove(). If the stonelist returned by getMove is empty as * much stones as possible are traded. * * @param game * @param stones */ @Override public void determineMove(ClientGame game, List<Stone> stones) { List<Stone> stonesplaced = getMove(game.getBoard(), stones); if (stonesplaced.isEmpty()) { List<Stone> toTrade; if (game.getBag() < stones.size()) { toTrade = new ArrayList<Stone>(); for (int i = 0; i < game.getBag(); i++) { toTrade.add(stones.get(i)); } } else { toTrade = stones; } game.getClient().trade(toTrade); List<Stone> toRemove = new ArrayList<Stone>(); toRemove.addAll(toTrade); game.getCurrentPlayer().removeStones(toRemove); } else { game.getClient().place(stonesplaced); List<Stone> toRemove = new ArrayList<Stone>(); toRemove.addAll(stonesplaced); game.getCurrentPlayer().removeStones(toRemove); } }