0

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

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

4

1 回答 1

1

players[i].doubledown如果是,此代码将始终要求玩家加倍下注false。您没有向我们展示您设置该标志的代码,所以我认为如果它一直询问您,它总是错误的。

如果您然后回答1,它将进入您的 if 语句的第 3 种情况,它不会打印任何内容,所以我认为这会轮到玩家 2。如果您回答2,它应该要求您击打或站立……会发生这种情况吗?

于 2012-11-26T23:34:41.807 回答