FC2ブログ

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Bぷよver0.138以降のキーワード関数

http://www1.axfc.net/uploader/so/2728328.dat
うpしておきました。ご自由にどうぞ。
スポンサーサイト

掘り評価関数について

例えば以下の図のような初期位置だったとします。
dikstr.png



ここにぷよを置いたとして、どの状態が一番よいのか?を評価するものです。

単純に☆と空き空間との距離にすると、この図で一番上の紫を消した後、赤が来ると、連結して欲しいのに連結すると
距離が増えるので悪いと判断するため、よくありません。

そんなある日。

全部1連結だったら空との距離でいいのになーと思ってました。



ここで思いついたのが、経路探索アルゴリズムを応用して、繋がっているぷよをひとつのノードとしてみてみればどうかと。

つまり、こういうことになります。

dikstr2.png
☆をスタート(S)とし、空きマスをゴール(G)とする。各マスをノードとし、上下左右で隣接。距離は1とする。


dikstr3.png
くっついているぷよは1つのノードとみなす。

dikstr4.png
適当なアルゴリズムを用いて経路探索。このスクリプトではダイクストラ法を採用。(a*より楽だったし)

具体的な処理内容は
1.上部のぷよについて
2.がまだ未踏か調べる。
3.未踏なら現在の探索回数を記録。既に入っていた(現在の探索回数より小さい)場合は
4. そこが上のぷよと繋がっているかどうか調べる。
5. つながっていない場合は次に調べるリストとして場所を覚えておく。既に次に調べるリストに入っている場合はなにもしない。
6. 4を下、左、右についてもやる。
7. 繋がっている時は4を繋がっているぷよにたいしてやる。
8. 2.を左部、右部のぷよにたいしてもやる

9. 空きマスに到達したら終了。

ゴールする時の最後のぷよがおじゃまぷよだったらもう1足してゴール。これは、おじゃまを消すのに色ぷよが必要であるため。色ぷよの場合は足さない。

当然、小さい数字が入っていたらその道は最短距離ではないので走査をやめる。

この最短距離を最重要項目として評価をしている。


評価の基準として

1.距離
2.道中の連結数(図の中で言うと中央の紫。こういうのが多いほど高評価)
3.そのほかの連結数

の順。
こうすることで、必ずいつかは☆を消してくれる。(☆がない時は距離は0になるようにしている。)
しかも真っ直ぐ掘ってくれるのでなかなか強かったり。

ただ、計算量が多いので400通り以上の計算をすると1フレームでは処理しきれない。

次の目標は毎フレーム処理をすることだが・・・SetTumi相当の関数を作るところからになりそうだ・・・。

BぷよAI作成メモ7

昨日言ってた連鎖シミュレータが完成しました!。

ダウンロードはこちらから

以下はSS
ss1.png
掘りモード発火前

ss2.png
掘りモード発火後。得点も完璧。

ss3.png
☆を消したときにもちゃんと得点が入ります。

ss4.png
スクリプトの一行を変えるだけで通常モードの得点計算も可能。


ss5.png
是非お試しあれ。

掘りあいモードの10連結と11連結

10連結
11連結

BぷよAI作成メモ6

12/24日に堀神様を祭る会があるそうなので、そのためのAI作ってます。

しかし

・ネット環境がないと、動作テストをすることができない。(AIの堀合を見れない)
・☆が既存の関数で消えてくれない。

の理由により製作は困難に・・・
というわけで以上の問題を解決すべく、自分のフィールドと現在手の位置から仮想的に置き、
何点入るのかーとか、どんなフィールドになるのかーとかを出力するシミュレータAIを作成することからはじめました。
いまのところ、

・仮想的に置いてくれる(ぷよは消えない)
・4連結以上になっているかの判定

はできているようです。



よく考えたら、これ普通に練習にかなり使えるのでは?と思うのです。

構想ではぷよを(横移動や回転で)動かす度に判定をしてくれるので、消すところに置こうとすると、一瞬でAIがコンソールに○○点入りますっと出力してくれる・・・予定。

これって結構便利じゃないかな。


ai1.png

4連結以上になる予定のぷよがあるとコンソールに4連結以上になる代表の点を出力。この代表点につながっているぷよを消せばいいというわけだ。
プロフィール

都倉 欅(とくら けやき)

Author:都倉 欅(とくら けやき)
いとも容易くというハンドルネームで活動している人の日記。
たわごととか満載。

最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QRコード
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。