Hilf Duke, einen Ausweg zu finden


Hallo allerseits! Für jede Java-Konferenz haben wir ein Spiel entwickelt, damit jeder Spaß an unserem Stand haben kann. Auf der Joker 2018-Konferenz haben wir die Teilnehmer eingeladen, Duke aus dem Labyrinth zu holen. Einen ausführlichen Artikel über das Spiel aus dem letzten Jahr finden Sie hier . In diesem Jahr haben wir die Tradition fortgesetzt und ein Spiel entwickelt, in dem Sie bei der Beantwortung von Java-Fragen Duke helfen müssen, einen versteckten Ausweg zu finden.

Die Idee ist, auf einem privaten Spielfeld mit Fragen zu Java herumzuwandern. Für jede Spielsitzung wird ein eindeutiges Fragenraster generiert. Die Aufgabe des Spielers bei der Beantwortung von Fragen besteht darin, Duke durch die Tür aus dem Labyrinth zu holen, deren Position jedes Mal neu ist. Es ist also unmöglich, im Voraus eine Strategie auszuarbeiten und sich daran zu halten. Es besteht immer eine große Chance, in die falsche Richtung zu gehen und weit vom Ausgang entfernt zu sein. Gleichzeitig öffnet der Spieler bei der Beantwortung verschiedener Kategorien von Fragen eine unterschiedliche Anzahl geschlossener Zellen um sich herum. Bei der Beantwortung einer einfachen Frage öffnet sich 1 Zelle im Durchschnitt 2 und im Komplex 3. Für die richtige Antwort auf eine einfache Frage wird 1 Punkt für den Durchschnitt - 2 vergeben und für die schwierigsten - 5, und wenn der Spieler Duke aus dem Labyrinth herausholen konnte, erhält er zusätzliche 20 Punkte. Aber nicht so einfach! Wenn ein Spieler Fragen falsch beantwortet, brennen Punkte im Verhältnis zum Abgrenzungssystem aus, werden für eine einfache Antwort falsch beantwortet, verlieren durchschnittlich 1 Punkt - 2, schwer - 5. Daher sind 0 Punkte nicht das schlechteste Ergebnis, da Sie tief in das Minus gehen können. Derjenige, der in 180 Sekunden die meisten Punkte bekommt, gewinnt.

Die schwierigste Frage für die Teilnehmer war diese Frage (die übrigens aus der Kategorie der einfachen stammt):

Was wird der Code drucken?

BigInteger big = BigInteger.valueOf(Long.MAX_VALUE); System.out.println(big.add(big).longValue()); 

  • -2
  • 4294967294
  • 18446744073709551614
  • löst eine ArithmeticException

Richtige Antwort
Es ist notwendig, sich an die Grundlagen der longValue() zu erinnern und nicht zu vergessen, dass longValue() eine Verengung der primitiven Konvertierung implementiert:

 jshell> BigInteger big = BigInteger.valueOf(Long.MAX_VALUE) big ==> 9223372036854775807 jshell> big.toString(16) $2 ==> "7fffffffffffffff" jshell> big.add(big).toString(16) $3 ==> "fffffffffffffffe" jshell> big.add(big).longValue() $4 ==> -2 


Einige Spielstatistiken:

  • die Anzahl der Spielesitzungen betrug 1123;
  • maximale Punktzahl 252;
  • Im Durchschnitt beantwortete ein Spieler in einer Spielsitzung 15 Fragen richtig.

Paradoxerweise wurden in diesem Jahr einfache Fragen schlechter beantwortet als komplexe.

Dieses Mal haben wir beschlossen, nicht die richtigen Antworten auf die Fragen zu veröffentlichen, sondern Ihnen die Möglichkeit zu geben, auf der JPoint 2019-Konferenz den Bedingungen des Odnoklassniki-Standes so nahe wie möglich zu kommen und das Spiel für alle öffentlich zugänglich zu machen.

Sie können das Spiel spielen und Ihre Stärke hier testen: javagame.odkl.ru

Source: https://habr.com/ru/post/de447252/


All Articles