前提・実現したいこと
javafxを使ってパズルゲームを作成しています。
開始ボタンを押すと4x4の16枚のパズルがランダムな配置につくようプログラミングしたいのですが、いくつか同じx,y座標に位置するようになってしまいます。
resultX,resultYに与えられる座標の数値がいくつか同じものが出てしまうため同じ座標に位置してしまうのだと思われます。
一度使った座標(例えばxは20,yは270に一度配置されたらそこには配置されないような仕組みを作る)に配置しなくなるようにはどうしたらいいでしょうか?
発生している問題・エラーメッセージ
パズルをシャッフルする際に同じ座標に位置するものが出てしまう
該当のソースコード
Button buttons[] = { this.button1, this.button2, this.button3, this.button4,
this.button5, this.button6, this.button7, this.button8,
this.button9, this.button10, this.button11, this.button12,
this.button13, this.button14, this.button15, this.button16 };
for (int i = 0; i < buttons.length; i++) { List<Integer> listX = Arrays.asList(20, 80, 140, 200); List<Integer> listY = Arrays.asList(270, 330, 390, 450); int indexX = new Random().nextInt(listX.size()); Integer resultX = listX.get(indexX); int indexY = new Random().nextInt(listY.size()); Integer resultY = listY.get(indexY); buttons[i].setLayoutX(resultX); buttons[i].setLayoutY(resultY); }
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/04/21 13:33
2020/04/21 14:12 編集
2020/04/21 14:45