在黑杰克中检查双倍

时间:2012-11-26 23:13:21

标签: java

在二十一点游戏中,我给用户提示选择是否要加倍:

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回合。为什么?任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

如果players[i].doubledownfalse,此代码将始终要求玩家翻倍。你没有向我们展示你设置那个标志的代码,所以我认为如果它一直在问你,它总是假的。

如果你接着回答1,那么它将进入你的if语句的第三种情况,它不会打印任何东西,所以我认为这会让玩家2回合。如果你回答2,它应该要求你击中或站立......这会发生吗?