- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:入れ替える処理)
AS3.0で簡単な15面パズルの入れ替え処理を行う方法
このQ&Aのポイント
- AS3.0で簡単な15面パズルの入れ替え処理を行う方法について教えてください。15面パズルは解けない配置があるため、数字の入れ替えをランダムではなく100回くらい行いたいです。具体的なコードの書き方と、重複がないように処理する方法を教えてください。
- スタートボタンを押したときに4つの隣接するマスをランダムに選び、数字の入れ替えを100回くらい行う方法を教えてください。ただし、端のマスは例外処理が必要です。また、重複がないように処理する方法も教えてください。
- AS3.0で15面パズルの入れ替え処理を行う方法について教えてください。15面パズルは解けない配置があるため、数字の入れ替えを100回くらい行いたいです。具体的なコードの書き方と、重複がないように処理する方法を教えてください。スタートボタンを押したときに4つの隣接するマスをランダムに選び、数字の入れ替え処理を行う方法を教えてください。ただし、端のマスは例外処理が必要です。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
20年ばかり前に、Basio言語で作ったことがありますが、考えかたのみ紹介すると、 (1)配列Aを16個を用意する(25個、36個、49個のレベルも選べるようにしました。) (2)それぞれの配列に、配列変数と同じ数字を割り当てる。16番目には0を割り当てる。 (3)ランダムに1~4の数字Xを出し、空白のパネル(0が割り当てられている配列)がどちらに進むか決める。 (4)(3)で決めた方向が、適切でないとき(枠外にはみ出る)、(3)をやり直す。 (5)進む方向の配列変数にある数字と、空白のマスの数字(つまりは0)を置き換える。 (6)(3)~(5)を何回か繰り返す。繰り返す回数(置き換える回数)も選べるようにしました。 (7)Play中は、カーソルキーにより進む方向を決め、(3)~(5)を繰り返す。 というものです。つまりは、マスはそのままにし、そこに入る数字だけを入れ替えるというものです。 大体の方針はつかんでらっしゃるみたいですね。(4)は、X=1のとき上のマスと交換としたなら、空白のマスが1~4だったら上はないのでやり直し、というif文書けばいい。(5)は上と交換なら、配列変数-4と交換。 ランダムに選ぶには、宣言が必要ですよ。そうしなければ、いつも同じ数字が出てくることになり、同じ結果になる。 表示は別のObjectで、A(1)~A(16)まで表示すればいい。 とまあ、こんなものです。できあがったら、私のやったみたいに、レベルを変えられるようにしたら、面白いですよ。
お礼
貴重な意見ありがとうございました なんとか作れました