Sha*_*ird 8 ruby language-agnostic oop nlp
我正在玩Ruby中的MUD /文字冒险(请不要笑).任何人都可以给我任何指向优雅,基于oop的解析输入文本的解决方案吗?
在这里,我们所说的并不比"把魔杖放在桌子上"更复杂.但一切都需要柔软; 我想稍后无痛地扩展命令集.
我目前的想法,略有简化:
每个项目类(框,表,房间,播放器)都知道如何识别"属于"它的命令.
游戏类理解一种特定于域的语言,涉及诸如"在对象Y内移动对象X","显示对象X的描述"等操作.
如果游戏类识别输入命令,则会询问房间中的每个项目.首先说是赢.
然后它将控制权传递给处理命令的item类中的方法.此方法重新命名DSL中的命令,将其传递回游戏对象以使其发生.
必须有陈旧,优雅的方式来做这些事情.但是,似乎无法谷歌任何东西.