纸牌游戏应用程序 - 随机卡但不是同一张卡两次

时间:2014-04-06 19:01:32

标签: android random

我正在制作这个纸牌游戏应用程序,当用户点击卡片时,此图片将变成随机的其他卡片。这是一个例子:

public class MainActivity extends Activity {

int[] cards={R.drawable.aceofspades,R.drawable.aceofhearts,R.drawable.aceofclubs};
static Random r = new Random();


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

}


public void imageClick(View view) { 

      int n=r.nextInt(cards.length);

    {
    ImageView image = (ImageView) findViewById(R.id.imageDice1);
    image.setImageResource(cards[n]);
    }


 } 

}

我想改变代码,以便同一张卡片不会显示两次,而不是直到所有牌都通过。因此,在这种情况下,当卡片是" aceofspades"下一张牌和之后的牌不应该是" aceofspades"。 用户将看到的第一个图像是" R.drawable.cardback"。 我想要一个代码将图像更改回" cardback"所有卡片都显示出来的时候。 任何帮助表示赞赏。

2 个答案:

答案 0 :(得分:1)

您需要将卡片(或只是值1到52)放在数组或列表中,然后shuffle。您正在描述的要求正是改组所做的。

答案 1 :(得分:0)

请参阅此回答to get unique random numbers in Java

您需要基本相同的结构和流程。