嵌套for循环java扑克游戏arraylist构造函数
这是我到目前为止的45张牌的构造器,我正在写一个基本构造器,它应该制作一副45张牌,其中适合的值是(0-黑桃,1-红桃,2-梅花,3-钻石,4-madeupname),而牌值是(1-9,其中1是a) 私人ArrayList卡嵌套for循环java扑克游戏arraylist构造函数,java,arraylist,Java,Arraylist,这是我到目前为止的45张牌的构造器,我正在写一个基本构造器,它应该制作一副45张牌,其中适合的值是(0-黑桃,1-红桃,2-梅花,3-钻石,4-madeupname),而牌值是(1-9,其中1是a) 私人ArrayList卡 public Deck() { cards = new ArrayList <Card>(); for (int valueKind = 1; valueKind<9; valueKind++){ Card newCar
public Deck() {
cards = new ArrayList <Card>();
for (int valueKind = 1; valueKind<9; valueKind++){
Card newCard = new Card(valueKind,0);
cards.add(newCard);
}
for (int valueKind = 1; valueKind<9; valueKind++){
Card newCard = new Card(valueKind,1);
cards.add(newCard);
}
for (int valueKind = 1 ; valueKind<9; valueKind++){
Card newCard = new Card(valueKind,2);
cards.add(newCard);
}
for (int valueKind = 1; valueKind<9; valueKind++){
Card newCard = new Card(valueKind,3);
cards.add(newCard);
}
for (int valueKind = 1; valueKind<9; valueKind++){
Card newCard = new Card(valueKind,4);
cards.add(newCard);
}
公共甲板(){
cards=newarraylist();
for(int valueKind=1;valueKind如果你想创建值1-9,那么你的for循环处于错误的状态。它应该是,因为你没有给我一个明确的问题,我就给你一些关于代码的一般性建议
首先,您当前的for loop循环从1到8,而不是从1到9。您应该将循环条件从valueKind<9
更改为valueKind有什么问题/缺少了什么?:这是您应该告诉我们的,而不是让我们猜测问题出在哪里。如果您想要每套衣服有9张卡,应该使用新的for
循环开始de>for(int i=0;i在内部for循环中不是valuekind吗?你听说过int-enum模式吗(我将其命名为int-enum-hell)?避免这种情况。(第30项,有效Java)@Andrew,因为枚举在内存中添加的数据比使用integer多得多
import java.util.ArrayList;
import java.util.List;
/**
* Created by hendrawd on 11/13/16.
*/
public class Deck {
List<Card> cards;
public Deck() {
cards = new ArrayList<>();
makeCards(Card.SPADE);
makeCards(Card.HEART);
makeCards(Card.CLUB);
makeCards(Card.DIAMOND);
makeCards(Card.MADEUPNAME);
}
private void makeCards(int type) {
for (int valueKind = 1; valueKind <= 9; valueKind++) {
Card newCard = new Card(valueKind, type);
cards.add(newCard);
}
}
}
class Card {
static final int SPADE = 0;
static final int HEART = 1;
static final int CLUB = 2;
static final int DIAMOND = 3;
static final int MADEUPNAME = 4;
private int value, type;
Card(int value, int type) {
this.value = value;
this.type = type;
}
}
for(int suit = 0 ; suit < 5 ; suit++) {
for (int valueKind = 1; valueKind<9; valueKind++){
Card newCard = new Card(valueKind,suit);
cards.add(newCard);
}
}
public static final int SPADE = 0;
public static final int DIAMOND = 1;
public static final int HEART = 2;
public static final int CLUB = 3;
public static final int MADE_UP_NAME = 4;
//...
for(int suit = SPADE ; suit <= MADE_UP_NAME ; suit++) {
for (int valueKind = 1; valueKind<9; valueKind++){
Card newCard = new Card(valueKind,suit);
cards.add(newCard);
}
}