昨日は tetrix を解くエージェントをアクターに組み込んでゲームを操作させた。これまでのゲームの手さばきは合理的だとも知的だとも言い難い。ヒューリスティックのペナルティが何度も 0.0 と評価されているのを見て 2つの疑惑が頭をもたげた。
第一に、Drop
はいかなる場合でも良い選択ではないということだ。特に探索木が浅い状況では Drop
を選択するのは早計だと思う。どうせ重力による Tick
が下向きに動かしてくれるので、エージェントが Drop
が最良の動作だと思った場合は無視することにした:
def receive = {
case BestMove(s: GameState) =>
val message = agent.bestMove(s)
if (message != Drop) stageActor ! message
}