【发布时间】:2012-03-03 02:37:43
【问题描述】:
我的这部分代码需要帮助。这部分处理生成 2 个随机数并使用该随机数同时在 2 个标签框中的每一个中显示一张卡片。这里的问题是随机数没有正确生成,因此卡片没有正确显示(有重复,有时没有显示等)
我的代码基础: 让我们假设 h 是代码另一部分的变量,它是 1 到 53 之间的任意数字(每个数字都与一张卡片有关)。如果生成的随机数(不重复)与变量 h 匹配,则计时器停止。
所以它基本上就像有一副纸牌,然后将纸牌平均分配给 2 个人,但这里一旦与随机抽取的纸牌(数字)有关的数字匹配,就停止发牌。
(l3,l4 是标签名称) 全局变量:
Random rng = new Random();
List<Integer> generated = new ArrayList<Integer>();
List<Integer> generated2 = new ArrayList<Integer>();
int l3count;
int l4count;
int Ulim = 53;
int Llim = 1;
int next;
int check;
int h;
int next2;
int Ulim2 = 53;
int Llim2 = 1;
final int p = h;
int delay2 = 1000;
final Timer timer2 = new Timer();
timer2.schedule(new TimerTask(){
public void run(){
for (int i = 1; i < 53; i++)
{
while(true)
{
next = rng.nextInt(Ulim) + Llim;
if (!(generated.contains(next)||generated.contains(next2)))
{
generated.add(next);
break;
}
next2 = rng.nextInt(Ulim2) + Llim2;
if (!(generated.contains(next)||generated.contains(next2)))
{
generated.add(next2);
break;
}
}
String a = Integer.toString(next);
String c = "C:\\Users\\mycompname\\Desktop\\deck\\"+a+".png";
String d = Integer.toString(next2);
String e = "C:\\Users\\mycompname\\Desktop\\deck\\"+d+".png";
for(int j = 1;j<=53;j++)
{
if(j%2==0)
{l3.setIcon(new ImageIcon(c));
}
else
{l4.setIcon(new ImageIcon(e));
}
}
if(next==p||next2==p)
check=10;
break;
}
if(check==10)
timer2.cancel();
timer2.purge();
}
},delay2, 1000);
任何帮助将不胜感激。 感谢您的宝贵时间。
【问题讨论】:
-
FFS 正确格式化您的代码 - 这是一团糟。如果您需要帮助,请帮助我们通过使其可读性来帮助您,并向您的观众表示尊重
标签: java random numbers generator