Я написал программу с использованием Javafx и rivescript. В rivescript я пытаюсь использовать этот код, в котором, когда пользователь вводит слово «угадай», бот вызывает объект 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
Есть ли у кого-нибудь какие-либо предложения о том, как этот код будет работать правильно? Спасибо!