为图像分配 int 值以与更高值的胜利进行比较(纸牌游戏)
Assign int value to image for compare with higher value wins (card game)
我是一名菜鸟程序员,我正在尝试开发一款基于更高获胜率的纸牌游戏。
问题是,我不知道如何将 int 值分配给卡片进行比较。
假设有 46 张牌,每张都有不同的值,例如:
int peter = 19;
int jack = 26;
int martin = 22;
//...and so on
有两个玩家,每个人有四张随机生成的牌(我是这样做的,所以我可以在每个人身上施放翻转动画,有点笨拙但有效)
//Assign my cards
TypedArray my_cards = res.obtainTypedArray(R.array.mycards);
final Random random5 = new Random();
final Random random6 = new Random();
final Random random7 = new Random();
final Random random8 = new Random();
//Generate random indexes for my cards
int RandomCard5 = random5.nextInt(my_cards.length());
int RandomCard6 = random6.nextInt(my_cards.length());
int RandomCard7 = random7.nextInt(my_cards.length());
int RandomCard8 = random8.nextInt(my_cards.length());
//Generate my cards from RandomCard
int drawableCard5 = my_cards.getResourceId(RandomCard5,-1);
int drawableCard6 = my_cards.getResourceId(RandomCard6,-1);
int drawableCard7 = my_cards.getResourceId(RandomCard7,-1);
int drawableCard8 = my_cards.getResourceId(RandomCard8,-1);
//Deal my cards
card1.setImageResource(drawableCard5);
card2.setImageResource(drawableCard6);
card3.setImageResource(drawableCard7);
card4.setImageResource(drawableCard8);
如您所见,我正在使用 typedArray(不确定这是否是个好主意)。
对于敌人卡也是一样的。
选择一张卡片进行战斗后(确认按钮),它被转移到其他 ImageView(fightcard1),并从这四张随机卡片中随机选择一张敌人卡片并转移到 ImageView(fightcard2)。
现在我需要比较这些卡片(假设这些卡片的值为 19 和 24)。
比较功能应该不是问题,但我不知道如何将这些特定的 int 值分配给特定的卡片。
有没有一种方法可以用我当前的“垃圾”代码来做到这一点,或者有没有更好更简单的方法 some/complete 重写?
谢谢。
我认为您最好创建一个名为 Card 的对象
public class Card{
private int cardValue;
public Card(int cardValue){
this.cardValue = cardValue;
}
public int GetCardValue(){
return cardValue;
}
}
我不确定您要在此卡上存储哪些其他信息,但可以通过将其添加到构造函数中轻松添加,就像在 Card
方法中使用 cardValue
所做的那样。然后,这将允许您存储 Card
对象,当您想要比较它们时,您可以调用 card1.GetCardValue()
,这将 return cardValue
变量中的值。这将允许您进行您正在尝试进行的比较。
您将使用
创建一个 Card 对象
Card card = new Card(5); // this would set the cards value to 5.
如果您还有任何问题,请随时发表评论,我不完全确定您还需要存储关于卡的哪些其他信息。
我是一名菜鸟程序员,我正在尝试开发一款基于更高获胜率的纸牌游戏。 问题是,我不知道如何将 int 值分配给卡片进行比较。 假设有 46 张牌,每张都有不同的值,例如:
int peter = 19;
int jack = 26;
int martin = 22;
//...and so on
有两个玩家,每个人有四张随机生成的牌(我是这样做的,所以我可以在每个人身上施放翻转动画,有点笨拙但有效)
//Assign my cards
TypedArray my_cards = res.obtainTypedArray(R.array.mycards);
final Random random5 = new Random();
final Random random6 = new Random();
final Random random7 = new Random();
final Random random8 = new Random();
//Generate random indexes for my cards
int RandomCard5 = random5.nextInt(my_cards.length());
int RandomCard6 = random6.nextInt(my_cards.length());
int RandomCard7 = random7.nextInt(my_cards.length());
int RandomCard8 = random8.nextInt(my_cards.length());
//Generate my cards from RandomCard
int drawableCard5 = my_cards.getResourceId(RandomCard5,-1);
int drawableCard6 = my_cards.getResourceId(RandomCard6,-1);
int drawableCard7 = my_cards.getResourceId(RandomCard7,-1);
int drawableCard8 = my_cards.getResourceId(RandomCard8,-1);
//Deal my cards
card1.setImageResource(drawableCard5);
card2.setImageResource(drawableCard6);
card3.setImageResource(drawableCard7);
card4.setImageResource(drawableCard8);
如您所见,我正在使用 typedArray(不确定这是否是个好主意)。 对于敌人卡也是一样的。 选择一张卡片进行战斗后(确认按钮),它被转移到其他 ImageView(fightcard1),并从这四张随机卡片中随机选择一张敌人卡片并转移到 ImageView(fightcard2)。
现在我需要比较这些卡片(假设这些卡片的值为 19 和 24)。 比较功能应该不是问题,但我不知道如何将这些特定的 int 值分配给特定的卡片。 有没有一种方法可以用我当前的“垃圾”代码来做到这一点,或者有没有更好更简单的方法 some/complete 重写?
谢谢。
我认为您最好创建一个名为 Card 的对象
public class Card{
private int cardValue;
public Card(int cardValue){
this.cardValue = cardValue;
}
public int GetCardValue(){
return cardValue;
}
}
我不确定您要在此卡上存储哪些其他信息,但可以通过将其添加到构造函数中轻松添加,就像在 Card
方法中使用 cardValue
所做的那样。然后,这将允许您存储 Card
对象,当您想要比较它们时,您可以调用 card1.GetCardValue()
,这将 return cardValue
变量中的值。这将允许您进行您正在尝试进行的比较。
您将使用
创建一个 Card 对象Card card = new Card(5); // this would set the cards value to 5.
如果您还有任何问题,请随时发表评论,我不完全确定您还需要存储关于卡的哪些其他信息。