[1] 授業単元: プログラミング実習2
[2] 問題文(含コード&リンク):
15パズルを作成せよ
・4×4のマス目を持つ盤に置かれた15個の番号付きのコマを番号順に並べる
 ・1マスだけは空白で上下左右のコマをその場所に移動することが出来る
以下の関数を使って15パズルを作成せよ
関数 disp
void disp(int b[NX][NY]);
・引数 盤面の配列
・働き 盤面を表示する、数字の右端を揃える、空白は[]を出力
関数 move
void move(int b[NX][NY], int *x, int *y, int d);
・引数 盤面の配列、空白のコマのx座標(変数のアドレス)、空白のコマのy座標(変数のアドレス)、移動方向(1
     〜4)
・働き 移動方向に従い盤面の配列を変更(端で移動できるコマがない場合は変更せず)、新たな空白コマの座
     標にx,yを更新
関数 shuffle
void shuffle(int b[NX][NY], int *x, int *y);
・引数 盤面の配列、空白のコマのx座標(変数のアドレス)、空白のコマのy座標(変数のアドレス)
・働き 盤面をバラバラにし、空白のマスのx,yを更新して返す
関数 check
int check(int b[NX][NY]);
・引数 盤面の配列
・働き 完成しているかどうかのチェックを行い、完成していれば1、完成していなければ0を返す
[3] 環境 Visual C++
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン: C++コンパイラ,リンカ
[3.3] 言語: C言語
[4] 期限: 2009年1月30日(金)まで
[5] その他の制限: 関数内の処理の説明(コメントとしてプログラムに書いてもいい) もお願いします。
宜しくお願いします。