Java: использование сканера для добавления элемента в метод - PullRequest
0 голосов
/ 14 октября 2019

У меня проблемы с поиском правильного порядка, чтобы моя программа работала. Это, вероятно, довольно просто, но я очень плохо знаком с программированием, поэтому надеюсь, что кто-нибудь может мне помочь!

Из файла я получаю ввод, который нужно читать построчно. У меня есть 4 пункта в строке, которые нужно прочитать и привести в действие. Я использую сканер, чтобы прочитать файл построчно, а затем каждый элемент. Но потом, когда я хочу вызвать элементы, программа ничего не делает. Я не уверен, что мне не хватает.

Пример ввода:

черный 32 ход c 4

черный 0 ход d 4

белый 4198 ход c 3

    void start() {

Scanner fileScanner = UIAuxiliaryMethods.askUserForInput().getScanner();    

    while (fileScanner.hasNext()) { 
        fileScanner.next();

        String inputPlayer = fileScanner.next();

        int thinkingTime = fileScanner.nextInt();

        String inputMoveOrPass = fileScanner.next();

        char inputHorizontalCoordinate = fileScanner.next().charAt(0);
        int x = inputHorizontalCoordinate - 97;

        int inputVerticalCoordinate = fileScanner.nextInt();
        int y = inputVerticalCoordinate - 1;



        ui.wait(thinkingTime);

        if (inputPlayer.equals("white")) {
            ui.place(x, y, ui.WHITE);
            }
        else if (inputPlayer.equals("black")) {
            ui.place(x, y, ui.BLACK);
        }

        ui.showChanges();



        }

    }

1 Ответ

0 голосов
/ 15 октября 2019

Вы, кажется, читаете String из каждой строки файла перед тем, как начать читать ввод, который, кажется, не соответствует тому, что вы хотите сделать. Удалить или закомментировать первый вызов fileScanner.next() может помочь.
т.е.

Scanner fileScanner = UIAuxiliaryMethods.askUserForInput().getScanner();

while (fileScanner.hasNext()) {
    // fileScanner.next();

    String inputPlayer = fileScanner.next();

    int thinkingTime = fileScanner.nextInt();
...