为图像分配 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.

如果您还有任何问题,请随时发表评论,我不完全确定您还需要存储关于卡的哪些其他信息。