Not logged in.  Login/Logout/Register | List snippets | | Create snippet | Upload image | Upload data

147
LINES

< > BotCompany Repo | #1013840 // Ja Oder Nein Bot [OK, mit Upload]

JavaX source code (desktop) [tags: use-pretranspiled] - run with: x30.jar

Download Jar. Uses 3874K of libraries. Click here for Pure Java version (21817L/156K).

!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<S> yesLiterals = ciSet(), noLiterals = ciSet();

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;
}

static Bool algo_0_3(S s) {
  try bool algo_0_2(s);
  S s2 = firstWord(s);
  if (neq(s, s2))
    try bool algo_0_2(s);
  null;
}

p {
  autoRestart();
  independentSmartBot();
  onNewTriple(f onTriple);
  sahara();
  consoleHeight(500);
  showMessagesInGerman(true);
  logModuleOutput();
  readLinePrefix("[] Eingabe: ");
  addAll_withCollapsed(yesLiterals, tlftj(yesText));
  addAll_withCollapsed(noLiterals, tlftj(noText));
  for (T3<S> t : triplesWithB("heißt")) onTriple(t);
  bot();
  centerBigConsole2();
  focusConsole(random(tossCoin() ? yesLiterals : noLiterals);
  controls2_default();
}

svoid controls_feedback(S text) {
  disableConsoleInput();
  hideControls2();
  showControls(withCenteredTitle("Ich glaube:",
    vstackWithSpacing(setFontSize(15, jcenteredBoldLabel(text)),
  centeredButtons(
    "Das ist korrekt", r {
      print("=> KORREKT");
      uploadOutputSinceLastInput();
      reset();
    },
    "Das ist nicht korrekt", r {
      print("=> INKORREKT");
      fS s = lastInput();
      //uploadOutputSinceLastInput();
      
      showControls(vstackWithSpacing(
        setFontSize(13, jcenteredBoldLabel("Was heißt " + quote(s) + " denn?")),
        jcenteredbuttons(
          "Es heißt Ja", r { correct(s, true) },
          "Es heißt Nein", r { correct(s, false) },
          "Es heißt was anderes", r { correct(s, null) })));
    }))));
}

answer {
  Bool b = algo_0_3(s);
  S a = formatSatz(s, b);
  controls_feedback(a);
  try answer a;
}

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));
  post(quote(input), "heißt", boolSwitch(b, "ja", "nein", "weder ja noch nein"));
  uploadOutputSinceLastInput();
  reset();
}

svoid reset { 
  hideControls();
  enableConsoleInput();
  focusConsole();
}

svoid onTriple(T3<S> t) {
  if (eqic(t.b, "heißt") && isQuoted(t.a)) {
    if (eqic(t.c, "ja")) add_withCollapsed(yesLiterals, unquote(t.a));
    else if (eqic(t.c, "nein")) add_withCollapsed(noLiterals, unquote(t.a));
  }
}

download  show line numbers  debug dex  old transpilations   

Travelled to 14 computer(s): aoiabmzegqzx, bhatertpkbcr, cbybwowwnfue, cfunsshuasjs, gwrvuhgaqvyk, ishqpsrjomds, lpdgvwnxivlt, mqqgnosmbjvj, pyentgdyhuwx, pzhvpgtvlbxg, tslmcundralx, tvejysmllsmz, vouqrxazstgt, xfbsdwenvhih

No comments. add comment

Snippet ID: #1013840
Snippet name: Ja Oder Nein Bot [OK, mit Upload]
Eternal ID of this version: #1013840/53
Text MD5: 20e4286af4833e569f578e74a4a1fdf8
Transpilation MD5: 914ba8e5d9ba8f77c59f2f4593ac08af
Author: stefan
Category: javax
Type: JavaX source code (desktop)
Public (visible to everyone): Yes
Archived (hidden from active list): No
Created/modified: 2018-03-07 02:32:18
Source code size: 3025 bytes / 147 lines
Pitched / IR pitched: No / No
Views / Downloads: 529 / 3141
Version history: 52 change(s)
Referenced in: [show references]