ホームページパズルプログラミング勉強会

再帰のお勉強

あくまでもパズルプログラミングのために

2002年4月30日 作成 完

2006年3月14日 移動 完

by パズルプログラミング初心者


Cパズルプログラミング-再帰編」 on Karetta

再帰のお勉強も、Karettaへの移動を完了しちゃいました。
新しい名称は、「Cパズルプログラミング-再帰編」です。
ソースプログラム中で色がついていた個所など
現状では一部反映されていないものもあります。


◆はじめに

◆基本的過ぎること
  • 階乗
  • 組合せ
  • 四則演算

◆8クイーン
  • ボードの準備
  • クイーンを左端に置いてみよう
  • クイーンを8個置いてみよう
  • 効き筋のチェック
  • デバッグをする羽目に
  • 動くようになったので整理整頓
  • 対称移動の研究
  • 対称移動の実装
  • ユニーク解は12個

◆ペグ・ソリテア
  • ボードの準備
  • 移動可能チェック
  • 1手移動
  • 再帰をしてみよう
  • 残り1個に挑戦
  • またもや泥沼か
  • 履歴の採取
  • 履歴の再生

◆ペントミノ
  • ボードの準備
  • ピースを置いてみよう
  • ピースを取り除いてみよう
  • 置けるか確認してみよう
  • ピースの置き方の全可能性
  • ピースを左上隅から順に置いてみる
  • 再帰がちゃんと動きだしたようだが
  • 対称性を除去して2339通り、でも遅い
  • 対称なものはできない探索方法
  • 盤面の1次元配列化
  • ピースXを左上1/4に制限
  • 近傍を予備的にチェック
  • 使用済みピースを調べない
  • 他の長方形枠でも可能に
  • 32ビットのビット演算で大丈夫

◆ナンバープイレス -- 本格派への第一歩
  • ボードの準備
  • 問題ファイルの読み込み
  • マスに入れられる数
  • 数字を置いてみる
  • 数字あるマスは飛ばす
  • 次の列への移動
  • 3x3ブロックへの対応
  • 連続して解けるように


ホームページパズルプログラミング勉強会