cre-ne-jp / rgrb

irc.cre.jp 系 IRC サーバ群で用いられている汎用チャットボット
http://www.cre.ne.jp/services/irc/bots/rgrb
MIT License
4 stars 0 forks source link

計算機機能を実装する #39

Open ochaochaocha3 opened 9 years ago

ochaochaocha3 commented 9 years ago

オンラインセッションでの利用を想定した計算機機能を実装する。

まずとりあえず使える程度に実装する。その後ダイスロール等を拡張して BCDice 等のように充実させていければ良いのかな、と。

ochaochaocha3 commented 9 years ago

ダイスロールの表示案。BCDice と OD_TOOL を混ぜた感じに。

2*(1+1)d6+1
> 2 * 2d6 + 1 = 2 * 11[6,5] + 1 = 23
  1. 抽象構文木のダイスロールノードについて、振る数・面数を評価する。
    • それらの中にさらにダイスロールノードがあるときはどうなる?
    • BCDice のようにダイスロールの中にダイスロールを含めないようにする手も(([1...3]+1)d6 のような)
  2. ダイスロールを評価し、結果を確定させる。
  3. 全体を評価し、最終計算結果を出す。
ochaochaocha3 commented 5 years ago

GoBCDiceでようやくアルゴリズム(字句解析、構文解析、中置表記、評価)が固まったので、移植すれば実現できるようになりました。RaccでLALR(1)構文解析器を作る方針。