【发布时间】:2019-11-10 23:57:32
【问题描述】:
作为我本周作业的一部分(计算机编程 I),我应该研究我们在整个课堂上都在研究的 UNO 游戏。游戏将仅在计算机之间进行,因此除了偶尔输入以使游戏继续外,没有键盘输入(有点无聊吧?)。本周我们应该为游戏的每个部分制作一些类(例如 CARD 类和 HAND 类)。我能够做到这一点,但我的任务的第二部分 - 有一个驱动程序:“创建一个甲板 UNO 牌,将牌发给两个或更多玩家,并显示每个玩家的内容 玩家的手。”——让我卡住了。我尝试了多种打印方法,但我的技能非常有限,但我什么也没想出来。有什么想法吗?
这是代码:
public class CARD
{
public String color;
public int value;
private Random random;
private String face;
public CARD(int v, String c)
{
value = v;
color = c;
}
public CARD()
{
random = new Random();
value = random.nextInt(28); // 108 cards in a deck and it Can be reduced to 27 which ignores colors
// Assigns value
if (value >= 14) // Some cards show up more often (numbers)
value -= 14;
// Assigns color
random = new Random();
switch(random.nextInt(4) ) //learned about switches here: https://www.youtube.com/watch?v=RVRPmeccFT0
{
case 0: color = "Red";
break;
case 1: color = "Green";
break;
case 2: color = "Blue";
break;
case 3: color = "Yellow";
break;
}
// If the card is wild
if (value >= 13)
color = "none";
}
}
【问题讨论】:
-
不知何故,每个
CARD创建自己的new Random()似乎有点矫枉过正。 -
另外请注意,UNO 牌组没有任何随机性。套牌总是包含完全相同的一组卡片。 UNO 游戏的随机性在您洗牌牌时进入(即,当您拿起固定的牌组并以随机选择的顺序排列它们时)。