如何在Pascal中检查对象的有效方法名



我有一个类(角色(,它具有继承的类(solider、medic等(,这些类具有特定的游戏相关方法。例如射击或治疗。

例如,我希望用户可以键入"治愈",程序可以检查他们的字符类型,从而查看这是否是该对象中方法的有效名称。

我知道这在其他语言中是可能的,但不知道如何用Pascal实现。它必须在Free Pascal以及Delphi中工作。谢谢

您不需要检查方法名称的有效性就可以做到这一点,如果不检查,可能会更好。

您可以使用RTTI检查方法名称,但在FreePascal中实现的方法与Delphi有所不同(尤其是扩展的RTTI(。

然而,在某种字典中实现自己的查找机制来解析游戏中的实体名称、属性和动词会简单得多。这在FP和Delphi中都是微不足道的,而且与所使用的编译器无关。它还将允许最终用户使用的名称独立于代码中使用的名称,这将更容易国际化等。它还将避免如果游戏中的标识符包含Pascal标识符中不允许的字符(如空格、重音字符或其他(时会出现的问题。

PS:你没有问这个,但是。。。如果我打算写一个任何大小的文本游戏,我都会认真考虑把它作为Prolog的混合Delphi:gui和Prolog的Delpi是一种更容易的语言,可以用它来编写游戏中的动作、对象和规则,还有一个有趣的实现,Amzi Prolog,它有一个非常丰富的接口,可以将Prolog引擎与Delphi接口-请参阅https://www.amzi.com/#apls.Amzi过去是商业人士,但现在是fwiw的PD。

相关内容

最新更新