我已经使用Javafx和rivescript编写了一个程序。在rivescript中,我尝试使用此代码,其中当用户键入单词“ guess”时,机器人会调用javascript对象randomnum,该对象会在1到10之间产生一个随机数。然后,机器人会要求用户键入介于1和10,如果用户输入正确的答案,则漫游器会向他表示祝贺,否则会要求他输入更大或更小的数字。问题是下面的代码无法正常运行。当用户键入任何数字时,程序将显示以下错误消息:
Exception in thread "JavaFX Application Thread" java.util.regex.PatternSyntaxException: Illegal repetition near index 42
^(?:(?:\s|\b)+(?:.+?)(?:\s|\b)+|(?:\s|\b)+){__call__}randomnum{/__call__}(?:(?:\s|\b)+(?:.+?)(?:\s|\b)+|(?:\s|\b)+)$
代码如下:
> object randomnum javascript
var a = Math.floor(Math.random() * 10)+ 1;
return a;
< object
+ guess
- <set result=<call>randomnum</call>> Give a number between 1 and 10 {topic=correctguess}
> topic correctguess
+ [*] <get result> [*]
- Well done! {topic=random}
+ #
* <star> > <get result> => Give a smaller number
* <star> < <get result> => Give a bigger number
< topic
有人对此代码如何正常工作有任何建议吗?谢谢!