RensaYomi7クラスで実装されているAI-COMロジックについて,説明する.


優先順位とルール

  • 1.窒息しないこと
  • 2.適切なタイミングで発火する (発火のタイミング参照)
  • 3.発火候補点で発火したと仮定したときに生じる連鎖数(NEXT〜NEXT3まで考慮) と 同色連結個数
  • 4.できるだけ下に置く

今回の変更箇所は2,3である. 発火のタイミングで,相手の発動連鎖数も考慮するようにしたことと, 連鎖数を求めるときの危険度を細かくしたことである.


各ルールの意味

2.適切なタイミングで発火する

RensaYomi6では,自フィールドの埋まり具合を判断して危険度を求めていたが,今回は,相手の連鎖数も考慮するように変更した. 相手の連鎖が短いなら急いで発火する必要があるが,長いなら急ぐ必要はないという対応.

具体的な内容については,発火のタイミングを参照.

相手が先に発火して後打ちになった時の対応が,改善されたはずだ.

3.発火候補点で発火したと仮定したときに生じる連鎖数(NEXT〜NEXT3まで考慮)

危険度を1つ追加して,NormalをNormalとNormal2に分けた.

発火候補点の条件

危険度k(NEXTに適用)k(NEXT2に適用)k(NEXT3に適用)
Normal23-
Normal233-
Red3333
Red244-
Red144-

序盤(Normal)ではk=2として,連鎖の可能性を幅広く探るようにした.

連鎖数の評価式

危険度連鎖数の評価式
Red1以外MAX( [NEXTの連鎖数],[NEXT2の最大連鎖数] )
Red1[NEXTの連鎖数]

試行錯誤の末,RensaYomi4で使っていた大きい方しか考慮しない方法に戻してみた. ここは良くなったという確信がいまいち持てないところ.


総括

あまり強くなったような気がしない. どうも,壁にぶつかったんじゃなかろうか.
kamolandをフォローしましょう


© 2019 KMIソフトウェア