みなさんこんにちは! Javaカンファレンスごとに、誰でも私たちのブースで楽しんでいただけるように、ゲームを考案しています。 Joker 2018カンファレンスでは、参加者を招待してデュークを迷路から外してもらいました 。昨年のゲームに関する詳細な記事はこちらにあります 。 今年も私たちは伝統を守り、Javaの質問に答えて、デュークが隠れた道を見つけるのを助ける必要があるゲームを作りました。
要点は、Javaに関する質問でプライベートなプレイフィールドをさまようことです。ゲームセッションごとに、質問の一意のグリッドが生成されます。 プレイヤーが質問に答えるのは、デュークを迷路から抜け出すことです。ドアは毎回新しい場所です。したがって、事前に戦略を立ててそれに固執することは不可能です。常に間違った方向に進み、出口から遠く離れる絶好のチャンスです 同時に、異なるカテゴリの質問に答えると、プレーヤーは周囲の異なる数の閉じたセルを開きます。単純な質問に答えると、平均で2、難しい3で1つのセルが開きます。単純な質問に対する正解では、平均-1 、そして最も難しい-5、そしてプレーヤーがデュークを迷路から抜け出すことができた場合、彼はさらに20ポイントを授与されます。 しかし、それほど単純ではありません! プレイヤーが質問に間違って答えると、発生システムに比例してポイントが燃え尽き、単純な答えで間違って答え、平均で1ポイントを失いました-平均で-2、難しい-5。 180秒で最もポイントを獲得した人が勝ちます。
この質問は、参加者にとって最も難しいことが判明しました(ところで、単純な質問のカテゴリからです)。
コードは何を印刷しますか?
BigInteger big = BigInteger.valueOf(Long.MAX_VALUE); System.out.println(big.add(big).longValue());
- -2
- 4294967294
- 18446744073709551614
-
ArithmeticException
スローします
正解
ビット演算の基本を思い出し、
が縮小プリミティブ変換を実装することを忘れないでください:
longValue()
が縮小プリミティブ変換を実装することを忘れないでください:
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
いくつかのゲーム統計:
- ゲームセッションの数は1123でした。
- 最大スコア252;
- 平均して、1つのゲームセッションで、プレーヤーは15の質問に正しく答えました。
逆説的に、事実は、今年は単純な質問が複雑な質問よりも悪く答えられたということです。
今回は、質問に対する正しい答えを公開しないことにしましたが、JPoint 2019カンファレンスのOdnoklassnikiスタンドの条件に可能な限り近づき、すべての人にパブリックドメインでゲームを公開する機会を提供することにしました。
ここでゲームをプレイして自分の強さをテストできます: javagame.odkl.ru