【发布时间】:2016-02-03 18:45:50
【问题描述】:
所以我必须用 java 编写一个 HiLo 纸牌游戏程序,下面是它如何工作的说明:
有两个类 Card 和 Deck
卡片类包含 2 个私有变量 int suit 和 int faceValue 一个将 2 个变量作为参数的构造函数,如下所示:
- 卡片(int suit,int faceValue)
- Getters --> getSuit:int 和 getFaceValue:int
- compareTo(Card card):int 方法
- toString():String 方法
Deck 类包含一个 Random 类型的私有随机变量 私人随机:随机 一个无参数构造函数 Deck() 一个不带参数的卡片类型的deal方法
Card 类有一个花色,它是一个从 0 到 3 的数字,代表一张牌的花色: - 0 代表黑桃(这是排名最高的花色) - 1 代表红心(第二高的花色) - 2 代表钻石(第三高的花色) - 3 代表梅花(最弱的花色)
faceValue 是一个介于 1 和 13 之间的值; 1代表Ace,11代表Jack,12代表Queen,13代表King。
compareTo 方法将当前实例(即 this)与参数卡进行比较。如果两个对象的花色和面值相同,则该方法返回0。如果当前实例较高(较高的值,或者相同的值,较高的花色),则该方法返回一个正值(可以是+ 1 或任何其他正值,因为幅度并不重要,只有符号)。如果当前实例较低,则返回负值。
toString 方法返回卡片的字符串表示形式(例如,“黑桃 A”、“红桃 2”)
Deck 类有一个 Random 类型的实例,当 实例化和处理一张新卡片。
现在编写一个名为 HiLoApp 的应用程序类,它将: - 实例化一个 Deck 对象 - 处理并显示第一张牌 - 让用户选择 -1 如果他们认为下一张牌会更低,+1 如果下一张牌会更高,或者 0 退出游戏 o 发牌并显示下一张牌 o 显示用户是否选择正确 o 计算尝试次数和正确猜测次数
主要方法是不断执行这些步骤,直到用户输入0退出游戏。此时,显示用户的总尝试次数和正确猜测次数。
卡类:
public class Card
{
private int suit;
private int faceValue;
//Constructor
public Card(int suit, int faceValue)
{
this.suit = suits;
this.faceValue = faceValue;
card = deal(); //???
}
public int getSuit()
{
return suit;
}
public int getFaceValue()
{
return faceValue;
}
public int compareTo(Card card)
{
}
public String toString
{
String cardName = null;
switch (faceValue)
{
case 2:
cardName = "Two";
break;
case 3:
cardName = "Three";
break;
case 4:
cardName = "Four";
break;
case 5:
cardName = "Five";
break;
case 6:
cardName = "Six";
break;
case 7:
cardName = "Seven";
break;
case 8:
cardName = "Eight";
break;
case 9:
cardName = "Nine";
break;
case 10:
cardName = "Ten";
break;
case 1:
cardName = "Ace";
break;
case 11:
cardName = "Jack";
break;
case 12:
cardName = "Queen";
break;
case 13:
cardName = "King";
break;
}
switch (suit)
{
case 0:
cardName += "Of Spades";
break;
case 1:
cardName += "Of Hearts";
break;
case 2:
cardName += "Of Diamonds";
break;
case 3:
cardName += "Of Clubs";
break;
}
return cardName;
}
}
套牌类:
import java.util.Random;
public class Deck
{
private Random random;
public Deck()
{
random = 0;
}
public Card deal()
{
while (num != 0)
{
random = new Random();
suit = random.nextInt(3);
faceValue = random.nextInt(13) + 1;
}
return //how to return suit and faceValue at the same time?
}
}
应用程序类:
import java.util.Random;
import java.util.Scanner;
public class HiLo
{
public static void main(String [] args)
{
//to quit the game
int num;
//getting input from user
Scanner keyboard = new Scanner(System.in);
Deck deck1 = new Deck();
= deck1.deal()
}
}
我的问题是:我不明白 compareTo 方法中的 card 参数来自哪里。另外,我无法完全编写程序的原因是因为我不明白它是如何工作的。第一张牌的初始发牌发生在哪里? card 类是否可以访问 Deck 类以使用 deal 方法?我看到 deal 方法返回一个 Card 类类型,但我怎样才能同时返回花色和 faceValue?
【问题讨论】:
-
你应该问你的老师这些问题。
-
我做了,但你看它在线,我不能只是等她回复。我真的很想弄清楚,但每次我想我明白了,我最终都会有更多的问题