เราทุกคนรู้หรืออย่างน้อยก็เคยรู้จักbrainfuckหนึ่งในภาษาลึกลับที่มีชื่อเสียงและมีอิทธิพลมากที่สุด ในขณะที่การใช้งานส่วนใหญ่ใช้เทปที่ไม่มีที่สิ้นสุดคอมไพเลอร์ดั้งเดิมโดย Urban Müllerมีเทปเซลล์ 30000 เซลล์ ความจริงที่รู้จักกันน้อย * คือมีคุณค่าพิเศษจริง ๆ ในตอนท้ายของเทปสิ่งที่แทบไม่เคยมีปฏิสัมพันธ์กับในโปรแกรม brainfuck ทั่วไป
ในขณะที่คุณสามารถพิมพ์ค่านี้ด้วย 29999 >
s และ a .
, brainfuck เป็นที่รู้จักสำหรับการแก้ปัญหาที่สั้นและกระชับดังนั้นเป้าหมายของคุณคือการพิมพ์ค่านี้ด้วยจำนวนอักขระขั้นต่ำ
* นิยาย
กฎ:
- ทบทวนคำแนะนำ brainfuck:
+
/-
: เพิ่ม / ลดเซลล์ปัจจุบันล้อมจาก 255 เป็น 0 เมื่อ 255 เพิ่มขึ้นและกลับกัน<
/>
: เลื่อนตัวชี้ไปทางซ้าย / ขวาบนเทป.
: พิมพ์ค่าของเซลล์ปัจจุบัน[
: ข้ามไปที่ตรงกัน]
หากค่าที่เซลล์เป็น 0]
: ข้ามไปที่ตรงกัน[
หากค่าในเซลล์ไม่ใช่ 0
- ในกรณีนี้
,
(รับอินพุต) ไม่ทำอะไรเลยเนื่องจากคอมไพเลอร์ดั้งเดิมออกจากเซลล์ที่ไม่เปลี่ยนแปลงบน EOF และโปรแกรมนี้ไม่ควรรับอินพุต - ในตอนแรกเทปจะถูกเติมด้วย 0s ทั้งหมดยกเว้นเซลล์ 30000 ซึ่งมีค่าที่ไม่รู้จัก
- ตัวชี้เริ่มต้นที่เซลล์ 1 และควรลงท้ายด้วยเซลล์ 30000 โดยพิมพ์
- เซลล์ทางด้านซ้ายของ 1 และทางด้านขวาของ 30,000 มีพฤติกรรมที่ไม่ได้กำหนดดังนั้นการแก้ปัญหาไม่ควรเยี่ยมชมเซลล์เหล่านี้
- หมายเหตุว่าค่าที่ 30000
คืออาจจะเป็น 0 ดังนั้นก็วนลูปจนกว่าคุณจะตีไม่ใช่ศูนย์เซลล์จะไม่ทำงาน - คุณควรพิมพ์เฉพาะค่าที่เซลล์ 30000
- ทางออกที่สั้นที่สุดชนะ!
- Tie-breaker เป็นโปรแกรมที่มีประสิทธิภาพมากขึ้น (ดำเนินการในขั้นตอนน้อยที่สุด) ตามด้วยเวลาการส่งที่เร็วที่สุด
เคล็ดลับ: การแยกผลไม้แนะนำให้ใช้https://copy.sh/brainfuckเพื่อทดสอบรหัสของคุณ ข้อมูลจำเพาะมีรายละเอียดตามที่อธิบายไว้ในการท้าทายนี้และคุณสามารถเลือกabort
ตัวเลือกเพื่อให้โปรแกรมของคุณหยุดทำงานหากขอบเขตไม่เพียงพอ
.
ไบต์: ผมชนะ.