【发布时间】:2015-05-18 08:12:27
【问题描述】:
我正在开发一个小程序,它显示一副 52 张卡片中的 10 张随机卡片。我使用 for 循环循环浏览 10 张卡片,并从我下载的图像中随机给它们一张卡片。当我编译和运行小程序时,有时会重复。有人可以告诉我如何在不重复的情况下解决这个问题吗?
import java.applet.Applet;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Color;
import java.util.Random;
public class Unit12Assignment1 extends Applet
{
Image card[] = new Image[10];
public void init()
{
String deckImages[] = {"cards_gif/c1.gif", "cards_gif/c2.gif", "cards_gif/c3.gif", "cards_gif/c4.gif",
"cards_gif/c5.gif", "cards_gif/c6.gif", "cards_gif/c7.gif", "cards_gif/c8.gif", "cards_gif/c9.gif",
"cards_gif/c10.gif", "cards_gif/cj.gif", "cards_gif/ck.gif", "cards_gif/cq.gif",
"cards_gif/s1.gif", "cards_gif/s2.gif", "cards_gif/s3.gif", "cards_gif/s4.gif",
"cards_gif/s5.gif", "cards_gif/s6.gif", "cards_gif/s7.gif", "cards_gif/s8.gif",
"cards_gif/s9.gif", "cards_gif/s10.gif", "cards_gif/sj.gif", "cards_gif/sk.gif",
"cards_gif/sq.gif", "cards_gif/d1.gif", "cards_gif/d2.gif", "cards_gif/d3.gif",
"cards_gif/d4.gif", "cards_gif/d5.gif", "cards_gif/d6.gif", "cards_gif/d7.gif",
"cards_gif/d8.gif", "cards_gif/d9.gif", "cards_gif/d10.gif", "cards_gif/dj.gif",
"cards_gif/dk.gif", "cards_gif/dq.gif", "cards_gif/h1.gif", "cards_gif/h2.gif",
"cards_gif/h3.gif", "cards_gif/h4.gif", "cards_gif/h5.gif", "cards_gif/h6.gif",
"cards_gif/h7.gif", "cards_gif/h8.gif", "cards_gif/h9.gif", "cards_gif/h10.gif",
"cards_gif/hj.gif", "cards_gif/hk.gif", "cards_gif/hq.gif"};
for( int i = 0; i < card.length; i++ )
{
int x = (int)(Math.random() * 52);
card[i] = getImage(getDocumentBase(), deckImages[x]);
}
}
public void paint(Graphics g)
{
setBackground( Color.green );
int x = -60;
for( int i = 0; i < card.length / 2; i++ )
{
x = x + 90;
g.drawImage(card[i], x, 30, this);
}
x = -60;
for( int i = card.length / 2; i < card.length; i++ )
{
x = x + 90;
g.drawImage(card[i], x, 150, this);
}
}
}
【问题讨论】: