※ ChatGPTを利用し、要約された質問です(原文:java 格納した乱数それぞれにボタンを付け配置)
Javaでボタンに乱数を紐付け、順番に押すゲームを作りたい
このQ&Aのポイント
Javaで5行×5列のボタンを配置し、ボタンごとに異なる乱数を紐付ける方法について教えてください。
ボタンを順番に押していく処理について教えてください。
ボタンに対応した画像を表示させる方法について教えてください。
2回目の質問させて頂きます。
java勉強中の初級者です。
前回乱数を重複させずに5行×5列の25個並べる方法を教えて頂きました。
この25個にボタンをつけて最終的にタッチナンバーのゲームを作りたいです。
(ランダムに並んだ数字1~25まで順番に押してくゲーム)
5行×5列のボタンを配置まではできたのですが、
(1)そのボタンそれぞれに毎回違う乱数と紐付ける方法
(2)1~25まで順番に押してく処理
(3)そのボタンにその都度の数字に合わせた画像を付ける方法(押したら押された時用の画像に変わる)
上の3つが今悩んでいて、今回お聞きしたいところです。
(2)はifを使って
『25は24を押した後じゃないと押せない、24は23を押した後じゃないと押せない。』
みたいに一つずつ処理していくのかなぁと言うイメージです。
(合ってるのか効率いいのかもわかりませんが。)
(3)はこの数字が来たらこの画像、あらかじめ指定しておくのかな?と言うイメージです。
(これも合ってるのかすらわかりません。)
前回教えて頂いたソースコードを載せておきます。
import java.util.ArrayList;
import java.util.Collections;
import java.util.Formatter;
import java.util.List;
class RandomArray {
public static void main(String[] args) {
int n = 5;
int[][] a = new int[n][n];
List<Integer> shuffled = new ArrayList<Integer>();
// initialize
for (int i = 0; i < n * n; i++)
shuffled.add(i + 1);
// shuffle
Collections.shuffle(shuffled);
System.out.println("shuffled: " + shuffled);
// set
int c = 0;
for (int i = 0; i < n; i++)
for (int j = 0; j < n; j++)
a[i][j] = shuffled.get(c++);
// output
StringBuilder sb = new StringBuilder();
Formatter f = new Formatter(sb);
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++)
f.format("%2d ", a[i][j]);
f.format("\n");
}
System.out.print(f);
}
}
やりかた、考え方でもありがたいのですが、ソースコードも教えて頂けたら大変ありがたいです。
ぜひご教授頂きたいです。
よろしくお願いします。
お礼
何度も教えて頂きありがとうございました! ここまで教えて頂いたので、あとはがんばってやってみます! ありがとうございました!