【发布时间】:2013-04-11 06:26:28
【问题描述】:
我已经创建了我的牌组,可以处理每张牌和一套花色,直到没有剩余牌为止。对于我的项目,我需要将它分成 3 个类,其中包括一个驱动程序类。我首先创建了一个包含所有内容的类,所以我知道如何让它全部工作。
public class DeckOfCards2 {
public static void main(String[] args) {
int[] deck = new int[52];
String[] suits = {"Spades", "Hearts", "Diamonds", "Clubs"};
String[] ranks = {"Ace", "2", "3", "4", "5", "6", "7", "8", "9", "10", "Jack", "Queen", "King"};
// Initialize cards
for (int i = 0; i < deck.length; i++) {
deck[i] = i;
}
// Shuffle the cards
for (int i = 0; i < deck.length; i++) {
int index = (int)(Math.random() * deck.length);
int temp = deck[i];
deck[i] = deck[index];
deck[index] = temp;
}
// Display the all the cards
for (int i = 0; i < 52; i++) {
String suit = suits[deck[i] / 13];
String rank = ranks[deck[i] % 13];
System.out.println( rank + " of " + suit);
}
}
}
现在尝试将其分成 3 个类。我的 DeckOfCards 类的所有套牌/西装变量上都出现了红色的波浪线。我不知道如何解决它。
public class DeckOfCards {
private Card theCard;
private int remainingCards = 52;
DeckOfCards() {
theCard = new Card();
}
public void shuffle(){
for (int i = 0; i < deck.length; i++) {
int index = (int)(Math.random() deck.length);
int temp = deck[i];
deck[i] = deck[index];
deck[index] = temp;
remainingCards--;
}
}
public void deal(){
for (int i = 0; i < 52; i++) {
String suit = suits[deck[i] / 13];
String rank = ranks[deck[i] % 13];
System.out.println( rank + " of " + suit);
System.out.println("Remaining cards: " + remainingCards);
}
}
}
卡类:
public class Card {
int[] deck = new int[52];
String[] suits = {"Spades", "Hearts", "Diamonds", "Clubs"};
String[] ranks = {"Ace", "2", "3", "4", "5", "6", "7", "8", "9", "10", "Jack", "Queen", "King"};
Card() {
for (int i = 0; i < deck.length; i++) {
deck[i] = i;
}
}
}
经销商类
public class Dealer {
public static void main(String[]args){
System.out.println("The deck will randomly print out a card from a full deck each time");
DeckOfCards player = new DeckOfCards();
player.deal();
}
}
【问题讨论】:
-
你能包括你得到的错误吗?
-
DeckOfCards中没有任何数组,这对于修复那些讨厌的红色曲线可能是一个好的开始。在您的卡片实例化中也没有任何逻辑可以保证我得到一张独特的卡片(或实际花色和等级的卡片),但这不会引起曲线。 -
我没有收到错误。我的 DeckOfCards 课程中的套牌和套装下面都有红色的波浪线。当我将鼠标悬停在它上面时,它说“甲板无法解析为变量”
-
@Makoto 我如何让这些数组出现在我的班级中,因为它们在 Card 班级中?
-
将它们移出...?无论如何,它们不属于
Card- 为什么卡片要关心它的牌组?
标签: java