0

Android開発で基本的なトップトランプアプリを作成しています。データベースを使用して作成された上位 6 枚の切り札だけが必要です。私はすでにこのコードを持っており、カードを正常に作成しました。

私はこのビットで立ち往生しています

ユーザーが Play を選択すると、データベース内のカードの半分を人間のプレイヤーにランダムに割り当て、カードの半分をコンピュータに割り当てる必要があります。

そして、誰かがこれを行う方法についてアイデアを持っているかどうか疑問に思っていましたか? みんな、ありがとう。

アップデート

私はこれをやってみました

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

私は Android プログラマーではありませんが、シャッフルされたカードを処理する方法は、シャッフルされた順序ではなく、自然な順序でカードを配列などに格納することであることに気付きました。通常のポーカー カードの場合、2 スペードから A -スペード、次に2クラブからAクラブなど。その後、シャッフルされたデッキからカードを順番に配る代わりに、シャッフルされていないデッキからカードをランダムに引きます。カード要素には、再利用または 2 回使用されないように、「使用済み」の設定または値が必要です。シャッフルを行う時間を大幅に節約できます。あなたの場合、あなたは 3 枚のカードを引く必要があり、残りは相手が受け取ります。

于 2012-12-04T21:43:27.580 に答える
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 に答える