パズルをコンピュータに解かせる

Preview:

DESCRIPTION

わんくま同盟東京勉強会#38 Lightning Talk2009/10/17

Citation preview

わんくま同盟東京勉強会 #38

パズルをコンピュータに解かせる

猪股健太郎

わんくま同盟東京勉強会 #38

パズルの元ねた

•「レイトン教授と最後の時間旅行」

–Nintendo DS用のゲーム

–開発・制作・販売 レベルフゔイブ– http://www.amazon.co.jp/dp/B001LNNNK4

わんくま同盟東京勉強会 #38

ナゾ035 回線混乱のナゾ

•ゕリの巣みたいにトンネルを掘っていたら、図のようにこんがらがってしまった。

わんくま同盟東京勉強会 #38

わんくま同盟東京勉強会 #38

ナゾ035 回線混乱のナゾ

•AとA’、BとB’、CとC’の間に専用回線を引くことになっているが、同じ道に回線を2回通してはいけないという。

わんくま同盟東京勉強会 #38

ナゾ035 回線混乱のナゾ

•さて、1本だけ地上を通さないとつながらない線があるのだが、それはA、B、Cのどれだろう?

わんくま同盟東京勉強会 #38

わんくま同盟東京勉強会 #38

というわけで

•自力で解くのはあきらめて、コンピュータにやらせる

わんくま同盟東京勉強会 #38

#1もつれた道をほぐす

わんくま同盟東京勉強会 #38

わんくま同盟東京勉強会 #38

#1の方針

•交差点と交差点の接続関係をキープしたまま、配置を変えてみる

わんくま同盟東京勉強会 #38

#1をコンピュータにやらせる

•ばねモデル

•道がバネでできてる

•交差点同士は反発しあう

わんくま同盟東京勉強会 #38

やってみよう

•demo

わんくま同盟東京勉強会 #38

やってみた

•失敗

•ゕルゴリズムが悪いっぽい

•もういいよ、手でやるから

わんくま同盟東京勉強会 #38

わんくま同盟東京勉強会 #38

#23つの道を交わらないように結ぶ

わんくま同盟東京勉強会 #38

#2の方針

•a、b、cを基点とする3つのルートを色分けしながら、交差点を塗っていく

•途中でルートが途絶えてしまったら、別のパターンで再チャレンジ

•すべてのパターンを網羅する

わんくま同盟東京勉強会 #38

#2をコンピュータにやらせる

•グラフ探索

–深さ優先探索

–幅優先探索

•両方とも実装する

わんくま同盟東京勉強会 #38

やってみよう

•demo

わんくま同盟東京勉強会 #38

やってみた

•成功

•解けた!

わんくま同盟東京勉強会 #38

アニメーションの注意点

•UIスレッドで重い処理をしない

•重い処理はバックグラウンドスレッドで

•UIスレッドに対し、定期的にリフレッシュ指示を出す

Recommended