0

我正在 android 开发中创建一个基本的顶级王牌应用程序。我只需要6张使用数据库制作的顶级王牌。我已经有了这个代码并成功地创建了卡片。

我被困在这一点上

当用户选择“玩”时,您应该将数据库中的一半牌随机分配给人类玩家,将一半的牌分配给计算机。

并且想知道是否有人对如何做到这一点有任何想法?谢谢大家。

更新

我试过这样做

ArrayList<Integer> cards = new ArrayList<Integer>();
for(int i=1;i<=6;i++)
{
this.cards.add(i);
}
Collections.shuffle(this.cards);

洗牌,但我不确定如何分配计算机和使用卡片。

4

2 回答 2

1

我不确定你在这里的目标是什么,但这样的事情会做吗(在你洗牌之后):

ArrayList<Integer> playerCards = new ArrayList<Integer>(cards.subList(0,2));    
ArrayList<Integer> computerCards = new ArrayList<Integer>(cards.subList(3,5));  

当然,你应该到处使用变量而不是常量,但你明白了。

于 2012-12-04T20:22:05.713 回答
1

我不是一个安卓程序员,但很久以前我意识到处理洗牌的方法是将卡片存储在一个数组中,或者按照它们的自然顺序而不是洗牌顺序存储卡片——对于普通扑克牌,2 黑桃到 A - 黑桃,然后 2-clubs 到 A-clubs 等等。然后,不是从洗好的牌堆中按顺序发牌,而是从未洗牌的牌堆中随机抽牌来发牌。你的卡片元素需要一个“使用过的”设置或值,这样它们就不会被重复使用或使用两次。节省大量时间进行洗牌。在你的情况下,你需要抽三张牌,然后其他人得到剩下的。

于 2012-12-04T21:43:27.580 回答