gpt4 book ai didi

java - 掷骰子游戏作业

转载 作者:太空宇宙 更新时间:2023-11-04 10:29:19 25 4
gpt4 key购买 nike

我只是想弄清楚这个作业并需要一些帮助。不寻求答案,只是更好的理解。我对使用 jGRASP java 进行编码非常陌生。老师告诉我们创建这个游戏,生成与此类似的输出。

第一轮:

• 玩家 A 掷骰子:1,2,最高点数为 21• 玩家 B 掷骰:2,1,最大数字为 21• 结果:平局

• 第二轮:• 玩家 A 掷骰子:2,5,最高点数为 52• 玩家 B 掷骰:6,8,最高数字为 86• 结果:玩家 B 获胜

• 第三轮:• 玩家 A 掷骰子:1,9,最高数字为 91• 玩家 B 掷骰:9,9 最高数字是 99• 结果:玩家 B 获胜

• 最终结果:玩家 B 获胜!!!

我是否必须将数字声明为字符串才能连接它们?我是否使用 if else 语句?具体来说,我很困惑如何排列两个数字,如果一个数字大于另一个数字,以便较大的数字将放在前面。

任何帮助,谢谢大家。

祝你有美好的一天!

import java.util.Scanner;
import java.util.Random;

public class beatThat
{
public static void main(String[] args)
{
Random r1 = new Random();
Random r2 = new Random();
Random r3 = new Random();
Random r4 = new Random();

int die1 = r1.nextInt(6) + 1;
int die2 = r2.nextInt(6) + 1;
int die3 = r3.nextInt(6) + 1;
int die4 = r4.nextInt(6) + 1;

System.out.println("ROUND 1");
System.out.println("Player A rolls: " + die1 + " and " + die2 +".");
System.out.println("Player B rolls: " + die3 + " and " + die4 +".");

if(die1 >= die2)
{
System.out.println("Player A's highest number is: " + die1 + die2);
}
else if(die2 >= die1)
{
System.out.println("Player A's highest number is: " + die2 + die1);
}
if(die3 >= die4)
{
System.out.println("Player B's highest number is: " + die3 + die4);
}
else if(die4 >= die3)
{
System.out.println("Player B's highest number is: " + die4 + die3);
}

}
}

最佳答案

稍微简化了您的代码。

import java.util.Random;

public class Main {

public static void main(String[] args) {

Random r1 = new Random();
Random r2 = new Random();
Random r3 = new Random();
Random r4 = new Random();

int die1 = r1.nextInt(6) + 1;
int die2 = r2.nextInt(6) + 1;
int die3 = r3.nextInt(6) + 1;
int die4 = r4.nextInt(6) + 1;

System.out.println("ROUND 1");
System.out.println("Player A rolls: " + die1 + " and " + die2 +".");
System.out.println("Player B rolls: " + die3 + " and " + die4 +".");

Integer aMax = Integer.max(die1*10 + die2, die2*10 + die1);
System.out.println("Player A's highest number is: " + aMax);

Integer bMax = Integer.max(die3*10 + die4, die4*10 + die3);
System.out.println("Player B's highest number is: " + bMax);

System.out.println("Result: " +
(!aMax.equals(bMax) ?
aMax > bMax ? "Player A wins!" : "Player B wins!"
:
"Draw!")
);
}
}

我所做的只是用简单的构建和比较这两个数字来替换不漂亮的 if/else 语句。在这种情况下,有两卷我认为就可以了。如果您考虑更多,也许您应该尝试使用字符串排列并获取值数组的最大值。试试this .

关于数字连接。如果至少有一对位于连接链中的第一位,则无需将它们转换为字符串。

这个例子会让它变得干净:

System.out.println(1 + 2 + "text"); //"3text"
System.out.println(1 + "text" + 2); //"1text3"
System.out.println("text" + 1 + 2); //"text12"

希望对您有帮助。干杯。

关于java - 掷骰子游戏作业,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50203320/

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