Я делаю Java-проект, в котором мне нужно создать игру «Крестики-нолики». Мой код работает нормально, когда я его запускаю, но когда я запускаю автоградуированные тестовые примеры, он выдает мне исключение NoSuchElementException, и я не могу понять, почему.
Я ввел входные данные. для тестовых случаев с автооценкой слово в слово, и он работает совершенно нормально, когда я печатаю его вручную, но не для автооценки. Другие студенты тоже успешно сдали заявки, поэтому я вполне уверен, что проблема не в тестировщике. Ниже приведены мои классы Main и Player, а также ошибка. Также есть класс досок, но там нет сканеров, поэтому я не думаю, что это проблема.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
boolean playAgain;
Scanner s1 = new Scanner(System.in);
Board b = new Board();
Player p1 = new Player('X', b);
Player p2 = new Player('O', b);
Player currentPlayer = p1;
do {
while (true) {
b.displayBoard();
currentPlayer.playMove();
if (b.didPlayerWin(currentPlayer.getSymbol())) {
b.displayBoard();
System.out.println(currentPlayer.getName() + " wins!");
break;
} else if (b.fullBoard()) {
b.displayBoard();
System.out.println("It's a tie!");
break;
}
currentPlayer = (currentPlayer == p1) ? p2 : p1;
}
System.out.println("Do you want to play again? 'yes' or 'no':");
String answer = s1.nextLine();
if (answer.equals("yes")) {
playAgain = true;
} else {
playAgain = false;
}
if (playAgain) {
b.resetBoard();
}
} while (playAgain);
}
}
import java.util.Scanner;
public class Player{
private static Scanner s = new Scanner(System.in);
private Board gameBoard;
private String name;
private char symbol;
public Player(char c, Board b) {
symbol = c;
gameBoard = b;
System.out.println("Enter name for Player:");
name = s.nextLine();
}
public String getName() {
return name;
}
public char getSymbol() {
return symbol;
}
public void playMove() {
while (true) {
System.out.println(name + ", make your move [0-2]: (row first then column)");
int row = s.nextInt();
int column = s.nextInt();
if (gameBoard.isValidMove(row, column)) {
gameBoard.placeSymbol(row, column, symbol);
break;
}
else {
System.out.println("Invalid Move.");
}
}
}
}
Exception in thread "main" java.util.NoSuchElementException: No line found
at java.base/java.util.Scanner.nextLine(Scanner.java:1660)
at Main.main(Main.java:32)
Подробнее здесь: https://stackoverflow.com/questions/792 ... texception
Java Autograder выдает исключение NoSuchElementException ⇐ JAVA
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
2 Исключение метода в потоке «основной» java.util.NoSuchElementException
Anonymous » » в форуме JAVA - 0 Ответы
- 13 Просмотры
-
Последнее сообщение Anonymous
-
-
-
2 Исключение метода в потоке «основной» java.util.NoSuchElementException
Anonymous » » в форуме JAVA - 0 Ответы
- 16 Просмотры
-
Последнее сообщение Anonymous
-