私のコードのこの部分で助けが必要です。この部分では、2つの乱数を生成し、その乱数を使用して2つのラベルボックスのそれぞれにカードを同時に表示します。ここでの問題は乱数が適切に生成されず、カードが正しく表示されないことです(繰り返し、時には表示がありません)2つの乱数発生器(カード取引)
コードの基礎: hコードの別の部分は、1から53までの任意の数(カードに関連する各番号)です。生成された乱数(非繰り返し)が変数hと一致すると、タイマーは停止します。
これは基本的にカードのデッキと2人のカードを均等に扱うようなものですが、ここでは無作為に取られたカード(番号)に関する番号が一致すると取引が停止します。任意の助けをいただければ幸いです
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);
:
グローバル変数(L3、L4は、ラベル名です)。 お時間をいただきありがとうございます。
FFSはコードを正しくフォーマットします。あなたが助けを望むなら、私たちがあなたに読者を助けてくれるように助けてください。あなたの聴衆にある程度の敬意を表してください。 – Bohemian