C/C++の宿題片付けます 133代目

このエントリーをはてなブックマークに追加
400デフォルトの名無しさん
[1]授業単元:プログラミング
[2] 課題:いわゆる15パズル。
01 02 03 04
05 06 07 08
09 10 11 12
13 14 15
のように配置された4x4のパネルを乱数を用いてシャフルする。シャフル時のパネルの動かし方は
ゲーム進行中のパネルを動かすやり方と同じルールが適用される。
パネル座標値(R,C) を入力させ (Rは行 Cは列 それぞれ1から4の値を取る)
対応するパネルが空白でないパネルで空白と隣接する場合はそこに移動させる方法で
ゲームを進行させ、最初の状態に戻った場合(完成)は「暇人さんご苦労様」と出力して終了。
完成するまで入力と移動を繰り返す。無効なマスの指定は「そんなパネル動かせへん」と警告を表示すること。
盤面状況はコンソール出力とし、動かした回数と共に入力の直前に随時、及びゲーム終了前に表示すること。
[3] Linux/gcc 4.0/C
[4] 2010年1月第一週の授業までに提出
[5]stdio.h,stdlib.hのみ使用可能 fgets,sscanf,rand,fprintfの使用を許可 4x4、16マスを仮定するが
一辺の長さを4については#defineで文字列レベルでの変更が出来るようにすること