gpt4 book ai didi

Java 二十一点游戏无法运行。与条件有关

转载 作者:行者123 更新时间:2023-12-02 10:46:47 24 4
gpt4 key购买 nike

嗨,我正在尝试制作一个黑 jack 游戏,但它不起作用。我相信逻辑是正确的,所以也许是语法错误?有两个玩家 Alice 和 Bob。玩家抽到 17 分为止。有 5 种可能的结果爱丽丝赢了。鲍勃赢了。爱丽丝击败鲍勃获胜。鲍勃击败爱丽丝获胜。没有人赢。

public class TweentyOne {

public static void main(String[] args) {
Player p1 = new Player("Bob");
Player p2 = new Player("Alice");
findWinner(p1, p2);
}

public static void findWinner(Player p1, Player p2){

if(p1.showHand() > p2.showHand() && p1.showHand() <= 21){
System.out.println(p1.getName() + " wins");
System.out.println(p1.showHand());
System.out.println(p2.showHand());
}

else if(p1.showHand() <= 21 && p2.showHand() > 21){
System.out.println(p2.getName() + " busts. " + p1.getName() + " wins");
System.out.println(p1.showHand());
System.out.println(p2.showHand());
}

else if(p2.showHand() > p1.showHand() && p2.showHand() <= 21){
System.out.println(p2.getName() + " wins");
System.out.println(p1.showHand());
System.out.println(p2.showHand());
}

else if(p2.showHand() <= 21 && p1.showHand() > 21){
System.out.println(p1.getName() + " busts. " + p2.getName() + " wins");
System.out.println(p1.showHand());
System.out.println(p2.showHand());
}

else{
System.out.println("No one wins");
System.out.println(p1.showHand());
System.out.println(p2.showHand());
}
}
}

class Player{

private String name;
private int hand;

public Player(String name){
this.name = name;
}

public String getName(){
return name;
}

public int showHand(){

int someHand = 0;

while(someHand < 17)
{
hand = (int) (Math.random() * 13 + 1);
someHand += hand;
}

return someHand;
}
}

打印语句只是让我检查它们每次实际绘制的内容。

最佳答案

if (p1.showHand() > p2.showHand() && p1.showHand() <= 21)

这里p1.showHand()给你一些Hand,当你在&&之后再次执行它时,它会计算一些新的另一只手。

一开始将双手保存在变量中,然后用这些变量替换 if 中的方法调用,这样就可以了

关于Java 二十一点游戏无法运行。与条件有关,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52496937/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com