- ベストアンサー
騎士巡歴の問題 C言語
騎士の巡歴プログラム(5x5)をC言語で作成したいのですが どなたかわかる方いますか? OS: (Windows XP) コンパイラ名とバージョン: (Visual C++ 2008) チェスの駒、ナイト(■)を移動させて全てのマスとまるプログラムです。 □□□□□ □□□□□ □□□□□ ■□□□□ この状態からナイトが動けるのは、 □□□□□ □□□□□ □A □□□ □□B □□ ■□□□□ A(1,2)とB(2,3)です。 一度この状態のAとBの位置を黒く塗ります。 □□□□□ □□□□□ □■□□□ □□■□□ ■□□□□ 次にナイトが動けるのは、 A □B □□ □G □C □ F ■□□H □□■D □ ■□E □I 元Aからは、A(0,0)とB(2,0)とC(3,1)とD(3,3)とE(2,4)と最初のK(0,4)に、 元Bからは、F(0,2)とG(1,1)とC(3,1)とH(4,2)とI(4,4)と最初のK(0,4)に、移動できます。 これを続けて全ての□に止まるのが騎士の巡歴プログラムだと仮定します。 上記の条件でプログラムを作りたいのですが、どなたかソースをお分かりになる方いませんか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1335747848 で回答を頂いたものの、未解決なのですか? http://blogs.yahoo.co.jp/mki_ltd/27633908.html に回答プラグラムが掲載されています。そのうちの2カ所を、↓のように修正すればOKです。 knighttour(x + dx[i], y + dy[i]); /* 道順の先を辿る */ ↓↓↓ 修正 ↓↓↓ knighttour(x - dx[i], y + dy[i]); /* 道順の先を辿る */ /* board[2][2]が最初の地点 */ knighttour(2, 2); ↓↓↓ 修正 ↓↓↓ knighttour(6, 2);
その他の回答 (2)
- edomin7777
- ベストアンサー率40% (711/1750)
お礼
ありがとうございます。 参考にさせていただきます。
- asuncion
- ベストアンサー率33% (2127/6289)
>プログラムを作りたいのですが、どなたかソースをお分かりになる方いませんか? この文の意味がわかりません。 ご自分で作りたいのですよね?それなのに、どうして他人から ソースを得ようとするのでしょうか? プログラムを動かしたいのですが、どなたかソースをお分かりになる方いませんか? という質問ならば、まだわかります。
補足
>プログラムを動かしたいのですが、どなたかソースをお分かりになる方いませんか? 当方、プログラミング初心者で参考にしたいのでモデルとなるソースがほしいという意味で質問致しました。 わかりにくくて申し訳ない。。。
お礼
わざわざありがとうございます。 何とか先ほど無事解決できました。