Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在android开发中洗牌并分配给用户和计算机_Android - Fatal编程技术网

在android开发中洗牌并分配给用户和计算机

在android开发中洗牌并分配给用户和计算机,android,Android,我正在android开发中创建一个基本的top trumps应用程序。我只需要使用数据库制作的6张王牌。我已经有了这方面的代码,并已成功地创建了卡 我被这一点卡住了 当用户选择Play时,应随机将数据库中的一半牌分配给人类玩家,将一半牌分配给计算机 我想知道是否有人对如何做到这一点有任何想法?谢谢大家 更新 我试过这样做 ArrayList<Integer> cards = new ArrayList<Integer>(); for(int i=1;i<=6;i++

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

我被这一点卡住了

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

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

更新

我试过这样做

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

对于(int i=1;i我不确定您在这里的目标是什么,但希望这样做(在您洗牌之后):

arraylistplayercards=新的ArrayList(cards.subList(0,2));
ArrayList computerCards=新的ArrayList(cards.subList(3,5));

当然,你应该在任何地方使用变量而不是常量,但你明白了。

我不是一个安卓程序员,但很久以前我就意识到处理洗牌的方法是将牌按数组或任何自然顺序存储,而不是按洗牌顺序存储——对于普通扑克牌,从2黑桃到a黑桃,再到2黑桃ubs到A-Club等。然后,不再从洗牌组中按顺序发牌,而是从非洗牌组中随机抽签发牌。你的牌元素需要一个“已使用”设置或设置值,这样它们就不会被重复使用或使用两次。这样做可以节省大量的洗牌时间。在你的情况下,你需要抽三张牌,然后其他人得到其余的。

啊,我明白了,我想我现在明白了!我会尝试实现这一点,谢谢!阿比盖尔,如果你接受答案,人们会更有可能在游戏中回答你的问题未来。很抱歉很久没有登录了,现在就登录。再次感谢:)
ArrayList<Integer> playerCards = new ArrayList<Integer>(cards.subList(0,2));    
ArrayList<Integer> computerCards = new ArrayList<Integer>(cards.subList(3,5));