0
我必须使用扫描仪方法在java中制作游戏hang子手。我收到以下错误后,我输入的刽子手字:与扫描仪游戏的Java扫描仪错误
Exception in thread "main" java.util.NoSuchElementException
at java.util.Scanner.throwFor(Unknown Source)
at java.util.Scanner.next(Unknown Source)
at Hangman.main(Hangman.java:33)
我一直在寻找了一段时间,似乎无法找到任何毛病。有什么建议?
//import javax.swing.*;
import java.util.*;
public class Hangman {
/**
* @param args
*/
public static void main(String[] args) {
boolean gameOver, win;
gameOver = false;
win = false;
int correctCount = 0;
int incorrectCount = 0;
// TODO Auto-generated method stub
String hangmanWord;
System.out.println("Enter a word for hangman ");
Scanner scanner;
scanner = new Scanner(System.in);
hangmanWord = scanner.next();
scanner.close();
int hangmanLength = hangmanWord.length();
while (incorrectCount<8){
String guessedLetter;
System.out.println("Now take a letter guess ");
Scanner scanner1;
scanner1 = new Scanner(System.in);
guessedLetter = scanner1.next();
scanner1.close();
char guessedLetterSolo = guessedLetter.charAt(0);
int count = 1;
int i = 0;
//int y = 0;
boolean oneIsCorrect = false;
String alphabet;
alphabet = new String();
//System.out.println("Length: " + hangmanLength);
while(count<hangmanLength + 1){
//System.out.println("Count: " + count);
char hangmanLetter = hangmanWord.charAt(i);
if (guessedLetterSolo == hangmanLetter && alphabet.indexOf(guessedLetterSolo) == -1){
correctCount++;
oneIsCorrect = true;
//y++;
alphabet = alphabet + guessedLetterSolo;
//System.out.println(alphabet);
}
count++;
i++;
if (correctCount == hangmanWord.length()){
win = true;
}
}
//System.out.println("CorrectCount: " + correctCount);
if (oneIsCorrect){
System.out.println("Correct guess, the word contains the letter " + guessedLetterSolo);
}
if (!oneIsCorrect){
incorrectCount++;
System.out.println("Incorrect guess");
}
//if (correctCount == hangmanWord.length()){
//win = true;
//}
if (incorrectCount == 8){
gameOver = true;
}
if (gameOver || win) {
break;
}
}
if(gameOver){
System.out.println("Game over");
}
if(win){
System.out.println("You win");
}
}
}