我不是很清楚怎么说这个,但我正在做一个21点游戏,玩家收到2张牌后,他们得到一个Y/N选项来收到另一张牌。我将播放器的响应(Y/N)通过一个方法,该方法在输入无效输入时保持防弹和重新提示,然后将其返回到主代码,以便它将运行。下面是我的防弹方法的代码:
public class Bulletproofing {
public static String bulletproof (String another) throws IOException{
DataInputStream input = new DataInputStream(System.in);
while(!another.equalsIgnoreCase("Y")&&!another.equalsIgnoreCase("N"))
{
System.out.println("That was not a valid choice. Please type a 'Y' or 'N'");
System.out.print("Would you like another card? Y/N ");
another = input.readLine();
}
return another.toString();
}
}
我现在遇到的问题是防弹的工作,但是在一个Y/N放进去之后,玩家的卡没有显示出来。这是来自我的主要方法的代码:
System.out.print("Would you like to get another card? Y/N ");
String another = input.readLine();
Bulletproofing.bulletproof(another);
//player says yes
while(another.equalsIgnoreCase("Y") & playerTotal <=21)
{
//get card
System.out.print(card[deck.get(nextCard)]);
value = card[deck.get(nextCard)].getDenom();
if(value==11 || value == 12 || value== 13)
{
value = 10;
}
playerTotal+=value;
//show stats
System.out.println();
System.out.println("Player total " + playerTotal);
nextCard++;
System.out.println();
//something wrong //incase player goes over they don't have the choice to get another card
if(playerTotal< 21)
{
System.out.print("Player: Another card? Y/N ");
another = input.readLine();
Bulletproofing.bulletproof(another);
}
else
{
another.equals("N");
}
count ++;
}
当播放机输入无效时,程序要求播放机再次输入,但当他们输入y或n时,程序就不能按我想要的方式输出。我希望输出是这样的:
>
您想要另一张卡吗?y/N y
7钻石
球员总数:25
经销商:
8颗红心
经销商总数:18
庄家赢。
然而,在特定的情况下,例如我输入“I”,然后被重新提示并输入“y”,我将得到如下输出:
>
您想要另一张卡吗?Y/N i
输入无效请重新输入:
你想再要一张卡吗?y/N y
经销商:
8颗红心
经销商总数:18
庄家赢。
在这里,玩家的卡没有输出,我有点困惑,如何解决这个问题。
这是因为在main中,您将另一个输入“i”分配给。然后忽略防弹方法的输出。Bulletproof只是循环输入,但您从不为变量赋新值
将其更改为:
String another = input.readLine();
another = Bulletproofing.bulletproof(another);
你为什么不试着调试一下?
线程“main”org.openqa.selenium.remote.sessionnotfoundexception:命令持续时间或超时:610毫秒构建信息:版本:'2.53.0',修订:'35AE25B',时间:'2016-03-15 17:00:58'系统信息:host:'indc5wwgy1',IP:'10.135.161.85',os.name:'Windows7',os.arch:'a
Sales2文件--这是运行代码的文件,让用户输入他们的详细信息来计算并产生每个销售人员的佣金报告。
问题内容: 我有一个看起来像这样的代码: 问题是,一旦执行,在关闭弹出的窗口之前,什么都不会发生。 如何继续运行代码? 问题答案: 那是有意的。您要做的是在调用app.exec()之前使用信号/插槽,Qt类中的代码或生成线程。 信号和插槽是您与Qt交互的实际方式。基本上,信号是任何“事件”或自定义“事件”,并且可以将插槽视为“事件处理程序”。例如,当某人按下GUI上的按钮时,它会创建一个信号,以寻
我正在通过以下命令运行脚本 我无法连接我的Kafka主题和检索信息。我什么都试过了,但没有运气。我正在运行这个简单的代码的文字计数我的生活Kafka流。
正如您在下面的代码中所看到的,当我键入“”时,我希望执行下面的代码行,但实际上并非如此。它不断重复代码“系统”。出来println(“\n请输入一个操作(,-,/,*,=或Q以退出):”;”。这里怎么了?
FAQs in section [15]: [15.1] 为什么应该用 <iostream> 而不是传统的 <cstdio>? [15.2] 当键入非法字符时,为何我的程序进入死循环? [15.3] 那个古怪的while (std::cin >> foo)语法如何工作? [15.4] 为什么我的输入处理会超过文件末尾? [15.5] 为什么我的程序在第一个循环后,会忽略输入请求呢? [15.6]