HOME → テトリスを作る(セガ アーケード版) ■テトリスを作る その3 コンピュータにテトリスをプレイさせる (AI テトリス) |
まだ、セガ・アーケード版テトリスの動作仕様の検証は全て行えていませんが、ちょっとブレイク
評価計算は基本的には減点法にしています。
例外として以下のふたつは、加点しています。
一応、E積みあがったブロックの高さ(平均)が高くなったら早く消すように係数は変化させています。逆に言えば少ない高さならばリーチを多くするようにしています。 とても効率的なブロックの積み方ではありませんが、25000個のブロックを落としましたが、ゲームオーバーにはなりませんでした。 一発で(初回で)このレベルならば、合格ではあるまいか。 もちろん、初回ならばの意味であり、およそ効率的な積み方とは思えません。 その確認が以下になります。
|
まだまだなAIシステムではありますが、”まずは” (こんなテキストのテトリスでは無く)本移植作にも、このAIシステムを実装してみます。 早速実行してみたら、テストプログラムでは、全く(25000個ブロックを落としても)ゲームオーバーにならなかったのですが、こちら側ではゲームオーバーになってしまいました。
落下が最高速度に達すると、目的の場所まで移動が出来ていないのです。
着地後も(このゲームシステムでは)0.5秒間(30フレーム分)は、左右、回転の修正は可能ですが、目的の横位置までにジャマなブロックが存在すると、それに引っ掛かってしまい最終的には目的の場所まで到達せずに、ブロックが接着されてしまいます。 このようになってしまう事は想定していました。 LEVELが46まで行ったのであれば、まずまずな気がしますが、ゲームオーバーにならないようにしてみます。 操作の”ため”を効かなくする為に、操作レバーを連打するように、コンピュータに指示させます。 1時間位プレイさせましたが、今度はゲームオーバーにならずカンストさせる事が出来ました。 以下が動画(操作レバーを連打させている)
|
これだと、(積み方は別として)人間らしくない・・・ やはり、速度が上がってきたら、着地後に修正するという動作の方が見ていて面白いと思います。 |