継続による時間操作とフィラデルフィア・エミュレータ(3)

要約:


とりあえず、前回の前提で、closure-ambを使って書き直そうと思ったら、ambの結果を取得する部分をlambdaとしてくくり出していた為、closure-ambに書き直すのが結構面倒だった。
とりあえず動作する事だけでも確認したいので、今回はclosure-ambではなくchoose2の方で実装する事にした。
あとでclosure-ambに直す。


これをgoshからloadし、何通りかのチームを対戦させたところ、おそらく正しそうな結果が出た。

gosh> (load "path/to/fe20070501.scm")
#t
gosh> (fira-emu '(100) '(10 10 9 9 9))
battle (100) vs (10 10 9 9 9)
draw
#<undef>
...


今後は、以下の作業を順に行う予定。

  1. closure-amb化
  2. 対戦結果のmemoize(五人vs五人はかなり重いし、対戦内容にランダム要素が入る余地が無いので、memoizeが有効活用できると思われる。dbmにでも記録させる予定)
  3. 更にambを使い、縮退演義の最適解を検索させる
  4. 願いの実装
  5. CGI


しかし、当面はGaucheNightの準備の方を優先して作業したいので、続きはまた今度。