/* CuckooChess - A java chess program. Copyright (C) 2011 Peter Ă–sterlund, peterosterlund2@gmail.com This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. */ package chess; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.List; /** * A player that reads input from the keyboard. * @author petero */ public class HumanPlayer implements Player { private String lastCmd = ""; private BufferedReader in; public HumanPlayer() { in = new BufferedReader(new InputStreamReader(System.in)); } @Override public String getCommand(Position pos, boolean drawOffer, List<Position> history) { try { String color = pos.whiteMove ? "white" : "black"; System.out.print(String.format("Enter move (%s):", color)); String moveStr = in.readLine(); if (moveStr == null) return "quit"; if (moveStr.length() == 0) { return lastCmd; } else { lastCmd = moveStr; } return moveStr; } catch (IOException ex) { return "quit"; } } @Override public boolean isHumanPlayer() { return true; } @Override public void useBook(boolean bookOn) { } @Override public void timeLimit(int minTimeLimit, int maxTimeLimit, boolean randomMode) { } @Override public void clearTT() { } }