我在扑克游戏的练习中绊倒了,我不知道怎么做:
我已经创建了一个包含7张卡的对象初始化数组。每张牌都由它的价值(7, 8, 9, 10,杰克...)和它的花色(俱乐部,钻石...)来指定。
我创建了第二个数组,计算相同值的卡片数量。例如,如果我有3张价值7的牌,那么在我的第二张表中,价值3的整数将适合价值7的牌。
我的问题是:在第三个数组中,Card[]cards=新卡[5]
,我如何将这3张值为7的卡复制到这张卡的开头?我不是在寻找解决方案,只是一个如何做到这一点的简单想法。
我创建了以下第一个数组:
Card[]VII encards=new Card[7];
我创建了以下方法来计算相同值的卡片数量如下:
private int[] nbCardsvalue(Card[] sevencards){
int[] nbvalue = new int[13];
for (int i = 0; i < sevencards).length; i++){
if (sevencards[i].getValue() == 2){
nbvalue [0]++;
}else if (sevencards[i].getValue() == 3){
nbvalue [1]++;
}else if (sevencards[i].getValue() == 4){
nbvalue [2]++;
}else if (sevencards[i].getValue() == 5){
nbvalue [3]++;
}else if (sevencards[i].getValue() == 6){
nbvalue [4]++;
}else if (sevencards[i].getValue() == 7){
nbvalue [5]++;
}else if (sevencards[i].getValue() == 8){
nbvalue [6]++;
}else if (sevencards[i].getValue() == 9){
nbvalue [7]++;
}else if (sevencards[i].getValue() == 10){
nbvalue [8]++;
}else if (sevencards[i].getValue() == 11){
nbvalue [9]++;
}else if (sevencards[i].getValue() == 12){
nbvalue [10]++;
}else if (sevencards[i].getValue() == 13){
nbvalue [11]++;
}else if (sevencards[i].getValue() == 14){
nbvalue [12]++;
}else{
return nbvalue ;
}
}
return nbvalue ;
}
澄清:
例如:如果在我的第一个数组中有七张卡片[],我有三张值为7的卡片(即一种三张)。在我的第二个数组nbvalue[]中,我的nbvalue[5]=3,这表示我有3张值为7的卡。
但是我需要一个第三个数组(例如。Main[]),我将把我的组合,即三个同类。我的三个7在这个数组的开始。问题是,我不知道如何得到这3张价值7的卡片,并把它们放在我的主[]数组中。
这是我的班级卡:
public class Card implements Comparable<Card>{
private final Suit suit
public final int Jack = 11;
public final int Queen = 12;
public final int King = 13;
public final int Ace = 14;
private final int value;
public Card (Suit s, int v){
this.suit = s;
this.value = v;
}
public Couleur getSuit(){
return suit
}
public int getValue(){
return value;
}
public String toString(){
String v = String.valueOf(value);
String s = suit.toString();
if (value >= 2 && value <= 10){
return v + " de " + s;
}else if (value == 11){
return "Jack of " + s;
}else if (value == 12){
return "Queen of " + s;
}else if (value == 13){
return "King of " + s;
}else if (value == 14){
return "Ace of " + s;
}
return null;
}
public int compareTo(Card c2){
if (this.value > c2.value){
return 1;
}else if (this.value < c2.value){
return -1;
}else {
return 0;
}
}
}
提前感谢您的帮助,祝您新年快乐;-)
你问“我如何将这三张价值7的牌复制到[第三个数组的开头”,但你没有详细说明“复制”在你的逻辑中意味着什么。更具体地说,在你的代码中(在你描述的状态下),你有一个卡的实例(我假设),当调用getValue()
时,它返回值7,而你在另一个实例中有一个值3的整数数组在特定的位置(索引5),这似乎意味着该类型的卡的数量。
因此,在您的代码中复制一张卡的单个引用三(3)次,可能意味着只需创建卡类的3个新实例(通过调用卡构造函数,即新卡(/*parameters*/)
,使用特定参数,以便创建的实例将表示值为7的卡,也就是说,对getValue()
的调用将为所有3个新创建的Card
实例返回7。如果你用你的卡片类的代码更新你的帖子,我可以更详细地解释一下。现在我不知道你有什么可用的构造函数,但是如果需要的话,你可以添加更多的构造函数——你可以添加一个特定的构造函数,有时称为“复制构造函数”,这将创建一个相同类型的卡片的新实例)。
当您创建3个Card实例中的每一个时,将它们分配给所需索引的数组Card
。
由于要创建(复制)并放入卡
数组的卡的数量可能是动态的(有时可能少于或多于3张),因此您可以使用循环来完成这一部分,并在循环中不断创建新的卡实例,并将其分配给数组中的某个索引。索引变量也将是循环变量,从0开始,直到(不包括)必须添加到卡
数组开头的卡的数量。
但是,根据您的用例,您可能不必复制卡片并制作它的多个实例,您也可以将您已经拥有的卡片实例(值7)的相同引用分配到卡片
数组,无需制作副本。这可能在逻辑上实现类似的结果(同样,免责声明,取决于您的用例)。
我正在学习lambda表达式。从一张名单中,我想要另一张20岁以上的人的名单。 我的印象是,只有前两个参数足够。 在我的示例中,如何以及何时使用第三个参数ArrayList::addAll?
我必须融合之前排序的2个数组,我必须为学校做这件事,但我可以有人可以帮助我,因为现在我要求数组的维度,我实例化了数组,然后我做了一个for来填充它们,我添加了数组的排序,我将把我的代码粘贴到这里。(评论是意大利语)我知道对一些人来说这可能是一个愚蠢的问题,但是,我在编程的第一年,我想提高自己。我提前感谢帮助我的人
我有一个数组,我需要三个数中最大的一个数和各自的索引值。我有一个这样的数组: 如何找到最大的数字及其索引值?
所以我写了一个代码,显示列表中重复次数最多值和重复时间。但是我不知道如何显示第二个,第三个等重复值。如果您提供帮助,将不胜感激。 代码如下:
我正在集成一个非react第三方库,它在我的react应用程序中呈现自己的HTML。如何渲染我自己的react组件后加载到该HTML的DOM中。我尝试使用ReactDom.Render,它确实有效,但不在根上下文中。反复调用ReactDom.Render似乎也会导致性能问题。