• ベストアンサー

騎士巡歴の問題 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)に、移動できます。 これを続けて全ての□に止まるのが騎士の巡歴プログラムだと仮定します。 上記の条件でプログラムを作りたいのですが、どなたかソースをお分かりになる方いませんか?

質問者が選んだベストアンサー

  • ベストアンサー
回答No.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);

12172777
質問者

お礼

わざわざありがとうございます。 何とか先ほど無事解決できました。

その他の回答 (2)

  • edomin7777
  • ベストアンサー率40% (711/1750)
回答No.2
12172777
質問者

お礼

ありがとうございます。 参考にさせていただきます。

  • asuncion
  • ベストアンサー率33% (2127/6289)
回答No.1

>プログラムを作りたいのですが、どなたかソースをお分かりになる方いませんか? この文の意味がわかりません。 ご自分で作りたいのですよね?それなのに、どうして他人から ソースを得ようとするのでしょうか? プログラムを動かしたいのですが、どなたかソースをお分かりになる方いませんか? という質問ならば、まだわかります。

12172777
質問者

補足

>プログラムを動かしたいのですが、どなたかソースをお分かりになる方いませんか? 当方、プログラミング初心者で参考にしたいのでモデルとなるソースがほしいという意味で質問致しました。 わかりにくくて申し訳ない。。。

関連するQ&A