継続による時間操作とフィラデルフィア・エミュレータ(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> ...
今後は、以下の作業を順に行う予定。
- closure-amb化
- 対戦結果のmemoize(五人vs五人はかなり重いし、対戦内容にランダム要素が入る余地が無いので、memoizeが有効活用できると思われる。dbmにでも記録させる予定)
- 更にambを使い、縮退演義の最適解を検索させる
- 願いの実装
- CGI化
しかし、当面はGaucheNightの準備の方を優先して作業したいので、続きはまた今度。