Warning: session_start(): open(/var/lib/php/sessions/sess_bmap6plcf5ouis39jk629aonmh, O_RDWR) failed: No space left on device (28) in /var/www/tb-usercake/models/config.php on line 51
Warning: session_start(): Failed to read session data: files (path: /var/lib/php/sessions) in /var/www/tb-usercake/models/config.php on line 51
!7
sclass Suggestion {
RuleWithParams rule;
S output;
*() {}
*(RuleWithParams *rule, S *output) {}
}
sclass TestBot extends DynObjectTable {
InputChooser inputChooser = new(this);
transient JTextField tfSource;
start { inputChooser.delay = 1000; }
visualize {
ret northAndCenter(vstackWithSpacing(
wrap(inputChooser),
withLabel("Rules mech list (empty for default rules&facts):", tfSource = jtextfield())),
super.visualize());
}
void update { if (inputChooser.update()) update(inputChooser.input()); }
void update(S input) {
new NLLogicChecker_v3 c;
c.input = input;
Pair, LS> rulesAndFacts;
S source = gtt(tfSource);
if (empty(source))
rulesAndFacts = ai_activeRulesAndFacts();
else
rulesAndFacts = pair(ai_parseRules(mL_raw(source)), (L) new L);
c.facts = reversed(rulesAndFacts.b);
c.rules = reversed(rulesAndFacts.a); // latest rules first!
c.rules = [IfThen r : c.rules | ai_ruleAccessesInput(r)];
c.rules = nlLogic_safeLHSEvalsOnly(c.rules);
print("Have " + n2(rulesAndFacts.a, "rule"));
c.useIterate = true;
new L battleSpace;
nlLogic_fillBattleSpace(c, battleSpace, false);
//print("l=" + l(battleSpace));
setData(map(battleSpace, func(RuleWithParams r) -> Suggestion {
Suggestion(r, nlLogic_outputFromRuleWithParams(r))
}));
}
}