在二十一点游戏中,我给用户提示选择是否要加倍:
while(true){
if(players[i].doubledown == true){
break;
}
System.out.println("Want to double down?\n1)Yes\n2)No\n");
dd = IO.readInt();
if (dd != 1 && dd!= 2){
IO.reportBadInput();
}else{
break;
}
}
int x = 0;
if (dd!=1 && players[i].doubledown == false){
System.out.print("Choose your next move, " + players[i].name + ": \n" + "Points: " + players[i].points + "\n" + "Hint: ");
getHints(players[i]);
System.out.print( "\n1)Hit\n2)Stand\n");
System.out.println();
x = IO.readInt();
}else if(dd == 1 && players[i].doubledown == true){
x = 2;
}else if( dd== 1 && players[i].doubledown == false){
x = 1;
players[i].doubledown = true;
}
if(x ==2 || x ==1){
//
//Stand or Bust
//
}
出于某种原因,它一直要求我加倍,然后在那之后是玩家2回合。为什么?任何帮助将不胜感激。
答案 0 :(得分:1)
如果players[i].doubledown
为false
,此代码将始终要求玩家翻倍。你没有向我们展示你设置那个标志的代码,所以我认为如果它一直在问你,它总是假的。
如果你接着回答1
,那么它将进入你的if语句的第三种情况,它不会打印任何东西,所以我认为这会让玩家2回合。如果你回答2
,它应该要求你击中或站立......这会发生吗?