ความท้าทายของคุณคือการตรวจสอบว่าเป็นจำนวนที่จะทำให้ชุดที่ดีในเกม 2048 ข้อมูลที่คุณป้อนจะเป็นตัวเลขเช่น:
8224
และเอาท์พุทจะเป็นว่าตัวเลขนั้นจะสร้างคอมโบได้ดีในปี 2048 หรือไม่ซึ่งสำหรับอินพุทนี้จะเป็นtrue
หรือyes
หรือ1
หรือวิธีอื่นใดในการระบุผลลัพธ์ที่เป็นบวก
สำหรับผู้ที่ไม่คุ้นเคยกับเกมที่นี่เป็นคำอธิบายง่ายๆ: [2] [2]
พลังของทั้งสองจะจัดในตารางเช่นนี้ สามารถเคลื่อนย้ายแผ่นกระเบื้องไปในทิศทางใดก็ได้และหากมีแผ่นกระเบื้องเหมือนกันสองแผ่นที่พบกันพวกมันจะกลายเป็นกำลังต่อไปของทั้งสอง (ดังนั้น[2] [2]
เมื่อเลื่อนไปทางซ้ายหรือขวาจะกลายเป็น[4]
) หรือคุณก็สามารถลองเล่นเกมที่นี่
"ชุดค่าผสมที่ดี 2048" หมายความว่าอะไร หมายถึงหมายเลขใด ๆ ที่ถ้าอยู่ในเกม "2048" ก็สามารถรวมกันเป็นหมายเลขเดียว (ศูนย์หมายถึงพื้นที่ว่างและสามารถละเว้นได้ถ้าจำเป็น) โปรดทราบว่าตัวเลขอาจมีหลายหลัก! อย่างไรก็ตามตัวเลขจะต้องไม่เปลี่ยนแปลงระหว่างการเคลื่อนไหว ต่อไปนี้เป็นตัวอย่างบางส่วน / กรณีทดสอบ (ด้วย "ดี" หมายถึงชุดค่าผสมที่ดีและความหมาย "ไม่ดี" ไม่ดี):
- ดี: 8224 (8224 -> 844 -> 88 -> 16)
- ดี: 2222 (2222 -> 44 -> 8)
- ดี: 22048 (22048 -> 448 -> 88 -> 16)
- ไม่ดี: 20482 (ไม่สามารถรวม 2 ด้านนอกและคุณไม่สามารถรวม 2048 และ 2 ได้)
- ดี: 20482048 (20482048 -> 4096)
- ไม่ดี: 210241024 (210241024 -> 22048 แต่ตอนนี้ [2] [2048] และไม่สามารถรวมกันได้เนื่องจากตัวเลขไม่สามารถเปลี่ยนระหว่างการเคลื่อนไหวได้)
- ดี: 2048 (หมายเลขหนึ่งมีอยู่แล้ว)
- ไม่ดี: 2047 (ไม่ใช่พลังของ 2)
- ไม่ดี: 11 (ไม่มี 1 ในเกม)
- ดี: 000040000000 (เลขศูนย์เป็นพื้นที่ว่าง)
กฎเบ็ดเตล็ด:
- อินพุตอาจมาจากที่ใดก็ได้ที่เหมาะสมเช่น STDIN, อาร์กิวเมนต์ของฟังก์ชัน, ไฟล์ ฯลฯ
- เอาท์พุทสามารถที่ใดก็ได้ที่เหมาะสมเช่น STDOUT ค่าส่งคืนฟังก์ชั่นไฟล์ ฯลฯ
- ไม่ต้องสนใจขนาดกริด -
22222222
ควรออกจริง - จำนวนไม่มากเท่าที่จะเป็นไปได้ตราบใดที่ยังเป็นเลขยกกำลังสอง ดังนั้นตัวเลขที่เป็นไปได้คือกำลังใด ๆ ของสองที่มากกว่า 0
- สำหรับผู้ที่กังวลเกี่ยวกับศูนย์ที่ก่อให้เกิดความกำกวมนั่นไม่ใช่กรณี ยกตัวอย่างเช่น
22048
สามารถแยกวิเคราะห์เป็นอย่างใดอย่างหนึ่งหรือ[2] [2048]
[2] [2] [0] [4] [8]
คนแรกไม่ทำงาน แต่คนที่สองทำดังนั้นมันควรจะออกจริง - นี่คือโค้ดกอล์ฟดังนั้นโค้ดที่สั้นที่สุดเป็นไบต์จะเป็นผู้ชนะ!
22048
ควรส่งออกgood
แต่นั่นไม่เป็นความจริง คุณไม่สามารถรวม2
กับ2048
และตารางคือ4x4
ถ้าตัวเลขทั้งหมดควรแยกคุณจะได้รับ 5 เซลล์ ดังนั้นบางทีคุณควรลบ0
? นอกจากนี้ยังมีตัวอย่างที่ 5 ของคุณน่าจะไม่ถูกต้องตั้งแต่เกมหยุดที่2048
:)
1