public static Coordinates readMoveFromKeyboard() {
        Coordinates result = null;
        while (result == null) {
            System.out.print(">");
            String str = null;
            int row = 0, column = 0;

            BufferedReader d = new BufferedReader(new InputStreamReader(
                    System.in));

            // String einlesen
            try {
                str = d.readLine();
            } catch (IOException e) {
                e.printStackTrace();
            }

            // gelesenen String sezieren
            str.trim();
            str = str.toLowerCase();

			// falls der Zug "passen" bedeutet, beende Schleife (gib 'null'
            // zurück)
            if (str.equals(PASSEN)) {
                System.out.println("Zug 'PASSEN' wurde ausgewaehlt.");
                break;
            }

            if (str.length() != 2) {
                System.out.println("Ungueltige Eingabe: mehr als 2 Zeichen.");
                continue;
            }

            // ist das erste Zeichen eine Ziffer zwischen 0..8?
            row = (int) (str.charAt(0)) - (int) '0';
            // Zeilen 0 und 9 sind ungueltig
            if (row < 1 || row > 8) {
                System.out.println("Ungueltige Eingabe: die Zeilennummer muss "
                        + "zwischen 1 und 8 liegen.");
                continue;
            }

            // ist das zweite Zeichen ein Buchstabe zwischen a..h?
            column = (int) (str.charAt(1)) - (int) 'a' + 1;

            if (column < 1 || column > 8) {
                System.out.println("Ungueltige Eingabe: die Spaltenummer muss "
                        + "zwischen A und H liegen.");
                continue;
            }

            result = new Coordinates(row, column);
        }
        return result;
    } // end readMoveFromKeyboard()