【发布时间】:2022-01-10 18:02:55
【问题描述】:
我正在开发一款基于更高胜率的纸牌游戏。 从我在这里assign int value to image for compare 的第一个问题开始,我已经重写了我的代码,但现在我被卡在卡片的随机化和分配给 ImageView 上。
我有一张班级卡片。
public class Card{
private int cardValue;
@DrawableRes
private int image;
public Card(int cardValue, @DrawableRes int image){
this.cardValue = cardValue;
this.image = image;
}
public int getCardValue()
{
return cardValue;
}
@DrawableRes
public int getCardImage()
{
return image;
}
//Cards
Card ash = new Card(20, R.drawable.ash_card);
Card atlas = new Card(23, R.drawable.atlas_card);
Card banshee = new Card(14, R.drawable.banshee_card);
and so on....
在 MainActivity 中: 我有很多这样的卡片:
//Creating array of the cards
ArrayList<Card> cards = new ArrayList<>();
现在我需要从这个数组中随机化四张牌,并将每张牌分配给 IV。
final Random random1 = new Random();
//Generate random indexes for cards
int RandomCard1 = random1.nextInt(cards.size());
int RandomCard2 = random1.nextInt(cards.size());
int RandomCard3 = random1.nextInt(cards.size());
int RandomCard4 = random1.nextInt(cards.size());
//Generate the card from RandomCard
Card drawableCard1 = cards.get(RandomCard1);
Card drawableCard2 = cards.get(RandomCard2);
Card drawableCard3 = cards.get(RandomCard3);
Card drawableCard4 = cards.get(RandomCard4);
我正在使用它,因为我为每张卡片设置了翻转动画(也许有更好的方法,但它对我有用)。所以现在我只需要给 IV 分配一张卡片,但这不起作用。
//Deal my cards
card1.setImageResource(drawableCard1);
card2.setImageResource(drawableCard2);
card3.setImageResource(drawableCard3);
card4.setImageResource(drawableCard4);
我不能将 setImageResource 用于类对象。我已经被困在这里好几天了,试图弄清楚但没有运气。我应该以不同的方式进行随机化(例如,使用 Collections.shuffle?)。或者有什么办法吗? 谢谢。
【问题讨论】: