我正在努力制作一个名为Elevens的Solitaire简化版。我成功完成了Card
课程,但我在创建Deck
课程时遇到了麻烦。目标是创建一个具有独特卡片的牌组。很抱歉,如果这个解释不是最好的,但希望代码示例会有所帮助:
Card类构造函数:
package ElevensLab;
public class Card {
private String suit;
private String rank;
private int pointValue;
public Card(String cardRank, String cardSuit, int cardPointValue) {
rank=cardRank;
suit=cardSuit;
pointValue=cardPointValue;
}
Deck类构造函数:
package ElevensLab;
import java.util.List;
import java.util.ArrayList;
public class Deck {
private List<Card> cards;
private int size;
public Deck(String[] suits, String[] ranks, int[] values){
ArrayList<Card> cards=new ArrayList<Card>();
for(String suit: suits){
for(String rank: ranks){
for(int value: values){
cards.add(suit);
}
}
}
size=cards.size();
}
答案 0 :(得分:1)
好的,这里是:
因此,您正在制作ArrayList
Card
。要向ArrayList
添加项目,它必须是Card
类型,对吗?因此,在Deck
班cards.add(suit)
的第一行,您要为String
ArrayList
类型Card
添加Card
。我假设这会给你一个编译器错误。相反,我会做的,实际上是在cards.add()
调用内部放置package ElevensLab;
import java.util.List;
import java.util.ArrayList;
public class Deck {
private List<Card> cards;
private int size;
public Deck(String[] suits, String[] ranks, int[] values){
ArrayList<Card> cards=new ArrayList<Card>();
for(String suit: suits){
for(String rank: ranks){
for(int value: values){
cards.add(new Card(rank, suit, value)); //This is the line I changed
}
}
}
size=cards.size();
}
构造函数。我将告诉您使用您的代码:
Card
此代码向Deck
添加了一个新的cv::Mat1f a = cv::Mat(n, n);
cv::Mat1f b = cv::Mat(n, n);
cv::Mat1f x;
//fill a and b somehow
x = a+b;
,其中包含所需的值。我希望你觉得这很有帮助,祝你好运!