مساعدة دوق في العثور على مخرج


مرحبا بالجميع! لكل مؤتمر Java ، نأتي بلعبة حتى يتمكن أي شخص من الاستمتاع في جناحنا. في مؤتمر Joker 2018 ، قمنا بدعوة المشاركين إلى إخراج Duke من المتاهة ، ويمكن العثور على مقالة مفصلة حول اللعبة من العام الماضي هنا . واصلنا هذا العام تقليدنا ولعبنا لعبة ، حيث أجبنا على الإجابة عن أسئلة جافا ، فأنت بحاجة إلى مساعدة ديوك في إيجاد مخرج مخفي.

تكمن الفكرة في التجوّل حول ملعب خاص مع أسئلة حول Java ، ولكل جلسة لعبة يتم إنشاء شبكة فريدة من الأسئلة. تتمثل مهمة اللاعب في الإجابة على الأسئلة في إخراج Duke من المتاهة من الباب ، حيث يكون موقعه جديدًا في كل مرة ، لذلك يستحيل وضع استراتيجية مسبقًا والتمسك بها ، فهناك دائمًا فرصة كبيرة للذهاب في الاتجاه الخاطئ والبقاء بعيدًا عن المخرج. في الوقت نفسه ، عند الإجابة على فئات مختلفة من الأسئلة ، يفتح اللاعب عددًا مختلفًا من الخلايا المغلقة حوله ، وعند الإجابة على سؤال بسيط ، يتم فتح خلية واحدة ، في المتوسط ​​2 ، وفي المجمع 3. للحصول على الإجابة الصحيحة على سؤال بسيط ، يتم منح نقطة واحدة ، في المتوسط ​​- 2 والأكثر صعوبة - 5 ، وإذا تمكن اللاعب من إخراج Duke من المتاهة ، فسيحصل على 20 نقطة إضافية. لكن ليس بهذه البساطة! إذا أجاب اللاعب عن الأسئلة بشكل غير صحيح ، فإن النقاط المحققة تتناسب مع نظام الاستحقاق ، والإجابة بشكل غير صحيح عن إجابة بسيطة ، وفقدت نقطة واحدة ، في المتوسط ​​- 2 ، على صعوبة - 5. وبالتالي ، فإن 0 نقطة ليست هي أسوأ نتيجة ، لأنه يمكنك التعمق في النقص. الشخص الذي يحصل على أكبر عدد من النقاط في 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 ؛
  • في المتوسط ​​، خلال جلسة لعب واحدة ، أجاب اللاعب بشكل صحيح عن 15 سؤالًا.

ومن المفارقات أن الحقيقة هي أنه في هذا العام ، تمت الإجابة على أسئلة بسيطة أسوأ من الأسئلة المعقدة.

هذه المرة ، قررنا عدم نشر الإجابات الصحيحة على الأسئلة ، ولكن لمنحك الفرصة للاقتراب قدر الإمكان من شروط موقف Odnoklassniki في مؤتمر JPoint 2019 ووضع اللعبة في المجال العام للجميع.

يمكنك لعب اللعبة واختبار قوتك هنا: javagame.odkl.ru

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


All Articles