我正在制作这个纸牌游戏应用程序,当用户点击卡片时,此图片将变成随机的其他卡片。这是一个例子:
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"所有卡片都显示出来的时候。 任何帮助表示赞赏。
答案 0 :(得分:1)
您需要将卡片(或只是值1到52)放在数组或列表中,然后shuffle。您正在描述的要求正是改组所做的。
答案 1 :(得分:0)
请参阅此回答to get unique random numbers in Java
您需要基本相同的结构和流程。