!7 sS yesText = [[ y yes yeah y yup yo correct sure ok affirmative ja ok richtig gut mach das ja ich will bitte ist so isso jau jawohl stimmt ]]; sS noText = [[ no n nope negative don't do that nay nein nö negativ lass das ]]; static Set yesLiterals, noLiterals; static Bool algo_0_1(S s) { if (yesLiterals.contains(s)) true; if (noLiterals.contains(s)) false; null; } static Bool algo_0_2(S s) { s = trim(s); try bool algo_0_1(s); S s2 = collapseWord(s); if (neq(s, s2)) try bool algo_0_1(s2); null; } p { autoRestart(); sahara(); consoleHeight(500); logModuleOutput(); readLinePrefix("[] Eingabe: "); yesLiterals = tlftj_asCISet(yesText); noLiterals = tlftj_asCISet(noText); bot(); centerBigConsole2(); focusConsole(random(tossCoin() ? yesLiterals : noLiterals); controls2_default(); showControls(withCenteredTitle("_ Feedback _", centeredButtons( "Das ist korrekt", r { print("=> CORRECT"); uploadOutputSinceLastInput(); }, "Das ist nicht korrekt", r { print("=> INCORRECT"); fS s = lastInput(); uploadOutputSinceLastInput(); showControls2(withCenteredTitle("Was heißt es denn?", jcenteredbuttons( "Ja", r { correct(s, true) }, "Nein", r { correct(s, false) }, "Was anderes", r { correct(s, null) }))); }))); } answer { Bool b = algo_0_2(s); try answer formatSatz(s, b); } sS formatSatz(S s, Bool b) { ret quote(s) + " " + ( isTrue(b) ? "bedeutet 'Ja'" : isFalse(b) ? "bedeutet 'Nein'" : " bedeutet weder Ja noch Nein"); } svoid controls2_default() { showControls2(jcenteredlabel("Schreib doch mal was ja-iges oder nein-iges:")); } svoid correct(S input, Bool b) { print(formatSatz(input, b)); uploadOutputSinceLastInput(); }