課題の質問
Posted: 2007年6月14日(木) 01:22
課題でこのような問題が出たのですが、途中までしか分からなくて・・・
[ まず,3×3の全マス目の初期状態を1~6の並び番号付きでコンソールに表示する.
次に,キーボードからシフト回数を入力する.
入力された回数だけ,シフト処理を繰り返し実行する.
(1) 1~6の並びのうちの1つをランダムに選び,その並びのシフト方向(-1 または +1)をランダムに決定する.
(2) 上記(ⅰ)の並びに対し,決定した方向のシフト操作でのシャッフルを実行する.
(3) シフトされた結果を表示する.なお,選択された並び番号及びシフト方向も併せて表示する.
(4) キーボードより1~6の並び番号,及び-1または+1のシフト方向を入力.
(5) 指定された並びに対し,指定された方向のシフト操作を実行する.
(6) シフトによるシャッフル結果を表示する.
(7)もし行方向,あるいは列方向に3つの並びとも同じ数字が揃っていれば祝福のメッセージを表示して終了する.そうでなければ(4)へ戻る
<実行例>
シフト回数は?2 ← キーボードから2と入力
1 2 3
[1][1][1] 4
[2][2][2] 5
[3][3][3] 6
<1回目> 3を-1動かす
1 2 3
[1][1][2] 4
[2][2][3] 5
[3][3][1] 6
<2回目> 5を1動かす
1 2 3
[1][1][2] 4
[3][2][2] 5
[3][3][1] 6
(1)~(3)の動作がここまで
(4)~(7)の動作はここから
どの並びを動かしますか?(1~6) 5 ← キーボードから5と入力
どう動かしますか? (-1 or 1) -1 ← キーボードから-1と入力
1 2 3
[1][1][2] 4
[2][2][3] 5
[3][3][1] 6
どの並びを動かしますか?(1~6) 3 ← キーボードから3と入力
どう動かしますか? (-1 or 1) 1 ← キーボードから1と入力
1 2 3
[1][1][1] 4
[2][2][2] 5
[3][3][3] 6
Congratulations !! ]
(3)までのプログラムはできてるんですが、(4)からの処理がお手上げ状態で・・・
よろしくお願いします。
<!--2-->
[ まず,3×3の全マス目の初期状態を1~6の並び番号付きでコンソールに表示する.
次に,キーボードからシフト回数を入力する.
入力された回数だけ,シフト処理を繰り返し実行する.
(1) 1~6の並びのうちの1つをランダムに選び,その並びのシフト方向(-1 または +1)をランダムに決定する.
(2) 上記(ⅰ)の並びに対し,決定した方向のシフト操作でのシャッフルを実行する.
(3) シフトされた結果を表示する.なお,選択された並び番号及びシフト方向も併せて表示する.
(4) キーボードより1~6の並び番号,及び-1または+1のシフト方向を入力.
(5) 指定された並びに対し,指定された方向のシフト操作を実行する.
(6) シフトによるシャッフル結果を表示する.
(7)もし行方向,あるいは列方向に3つの並びとも同じ数字が揃っていれば祝福のメッセージを表示して終了する.そうでなければ(4)へ戻る
<実行例>
シフト回数は?2 ← キーボードから2と入力
1 2 3
[1][1][1] 4
[2][2][2] 5
[3][3][3] 6
<1回目> 3を-1動かす
1 2 3
[1][1][2] 4
[2][2][3] 5
[3][3][1] 6
<2回目> 5を1動かす
1 2 3
[1][1][2] 4
[3][2][2] 5
[3][3][1] 6
(1)~(3)の動作がここまで
(4)~(7)の動作はここから
どの並びを動かしますか?(1~6) 5 ← キーボードから5と入力
どう動かしますか? (-1 or 1) -1 ← キーボードから-1と入力
1 2 3
[1][1][2] 4
[2][2][3] 5
[3][3][1] 6
どの並びを動かしますか?(1~6) 3 ← キーボードから3と入力
どう動かしますか? (-1 or 1) 1 ← キーボードから1と入力
1 2 3
[1][1][1] 4
[2][2][2] 5
[3][3][3] 6
Congratulations !! ]
(3)までのプログラムはできてるんですが、(4)からの処理がお手上げ状態で・・・
よろしくお願いします。
<!--2-->