Android 卡片游戏应用程序-随机卡片,但不是同一张卡片两次
我正在制作这个纸牌游戏应用程序,当用户点击该卡时,该图像将变成一张随机的其他卡。以下是一个例子:Android 卡片游戏应用程序-随机卡片,但不是同一张卡片两次,android,random,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(Bund
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”时,所有卡已显示。
非常感谢您的帮助。请参阅此答案
您需要基本相同的结构和流程。您需要将卡片(或仅值1到52)放入数组或列表中,然后将它们放入。您所描述的要求正是洗牌的作用。只是为了说明您应该将图像资源保存在一个数组中,这样您就不必键入52条if语句。其次,您应该使用if-else语句,因为您的程序将继续检查计数器,即使它找到匹配项,我也无法理解它,您能举一个例子说明它应该是怎样的吗?