Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Hangman,退出游戏,但未获得用户响应(循环)_Java_Loops - Fatal编程技术网

Java Hangman,退出游戏,但未获得用户响应(循环)

Java Hangman,退出游戏,但未获得用户响应(循环),java,loops,Java,Loops,我的代码有几个问题。我知道这不是最好看的设计/编码,但我还不能说自己是一名优秀的程序员。我必须让其他班级正确地完成他们的工作。字典类,其中包含单词列表和HangmanAnimation类,用于将刽子手拖到控制台上 现在,我想让我的游戏向玩家询问他/她是否想在游戏结束后再次玩。实际上,它会询问玩家是否想再次玩,但在玩家可以键入任何内容之前退出游戏 如果还有其他建议,我将不胜感激。提前谢谢!你们真是太棒了!:) 公共类HangmanGame{ 公共静态void main(字符串[]args){ Ha

我的代码有几个问题。我知道这不是最好看的设计/编码,但我还不能说自己是一名优秀的程序员。我必须让其他班级正确地完成他们的工作。字典类,其中包含单词列表和HangmanAnimation类,用于将刽子手拖到控制台上

现在,我想让我的游戏向玩家询问他/她是否想在游戏结束后再次玩。实际上,它会询问玩家是否想再次玩,但在玩家可以键入任何内容之前退出游戏

如果还有其他建议,我将不胜感激。提前谢谢!你们真是太棒了!:)

公共类HangmanGame{
公共静态void main(字符串[]args){
HangmanUI=新HangmanUI();
初始化();
字符串输入=”;
if(ui.newGame(输入).equalsIgnoreCase(“是”))
主(空);
}
}
公营班机{
专用最终词典d=新词典();
私有最终HangmanAnimation ha=新HangmanAnimation();
私有字符串wordInProgress=d.getWordInProgress();
扫描仪sc=新的扫描仪(System.in);
私有整数最大值=5;
字符串字;
公共无效初始化(){
int-easyWords=1;
int硬木=2;
System.out.println(“欢迎来到刽子手游戏”);
System.out.println(“==============================================”);
println(“规则:您需要在5次尝试中找到给定的单词。”);
System.out.println(“您将继续猜测字母,直到您可以猜到其中一个为止”);
System.out.println(“解决这个词或所有五个身体部位都在绞刑架上”);
System.out.println(“在这种情况下,您将输掉游戏。请尽量不要进入”);
System.out.println(“同一个字母不止一次,这些也算在内”);
System.out.println();
System.out.println(“选择游戏级别或退出”);
System.out.println(“1)Easy”);
System.out.println(“2)硬”);
System.out.println(“3)退出”);
试一试{
int playersChoice=sc.nextInt();
开关(播放器选择){
案例1:
d、 词表(易用词);
打破
案例2:
d、 字表(硬木);
打破
案例3:
System.out.println(“感谢您抽出时间!”);
系统出口(0);
违约:
System.out.println(“输入无效,请重试!”);
初始化();
}
word=d.pickRandomWord(d.getWordList());
希德沃德;
而(最大值>0){
if(wordInProgress.contains(“-”){
System.out.println(wordInProgress);
Revialetter(notifyGuess());
}否则{
System.out.println(“干得好!你找到了这个词。”);
}
} 
}捕获(输入不匹配异常e){
System.out.println(“无效输入。仅使用数字!”);
}
}
//待办事项:同一个字母不要数到一次,让玩家知道。
public char notifyGuess(){
ArrayList字符集=新的ArrayList();
系统输出打印(“请输入一个字母:”);
char c=sc.next().charAt(0);
if(字符isDigit(c)){
System.out.println(“您不能使用数字,请输入字母”);
notifyGuess();
}else if(字符集包含(c)){
System.out.println(“您之前已经使用了'+c+”);
notifyGuess();
}否则
添加(c);
返回c;
}
公共无效隐藏字(字符串字){
StringBuilder sb=新的StringBuilder();
for(int i=0;i
尝试使用以下方法:

    System.out.println("Do you want to play again? (yes/no)");
    input = sc.next(); //<== here is the change
    return input;
System.out.println(“您想再次播放吗?(是/否)”);

输入=sc.next()//什么是main(null);?你的主要功能在哪里?你期望系统做什么?退出(0)
要做什么?
main
缺少一个
{
main(null)
用于递归…调用main并再次启动游戏?
System.exit(0);
要退出游戏。你好,何塞!谢谢你的回答!效果很好。是否因为我使用了
sc.next()
sc.nextLine()而出现问题
在同一个代码中?我遇到了另一个问题。在
notifyGuess()
方法中,我想检查一个字符是否已经被使用,并用
System.out.println(“您之前已经使用了”+c+“”);
但是它不起作用!同样的字符仍然有效!@oxyt从方法中删除这一行
notifyGuess()
ArrayList charSet=new ArrayList();
并在类中定义它:
公共类HangmanUI
。关于next()和nextline(),这里有更好的解释。
    System.out.println("Do you want to play again? (yes/no)");
    input = sc.next(); //<== here is the change
    return input;