ท้าทาย
ฉันเพิ่งเข้าสู่คอมพิวเตอร์ 8 บิตและรู้สึกทึ่งกับผลงานของพวกเขาและคนอื่น ๆ ดังนั้นวัตถุประสงค์ของรหัสกอล์ฟนี้คือการทำซ้ำส่วนของ Woz Monitor ซึ่งออกแบบโดย Steve Wozniak สำหรับ Apple I
คุณจะต้องเก็บอาร์เรย์ของค่าเลขฐานสิบหก 22 ค่าที่มีความกว้างสองไบต์ (ค่าต่ำสุด$ 10 , ค่าสูงสุด$ FF ) จากนั้นใช้จำนวนn-จำนวนอินพุต (ปกติสองภาษาเช่น Brainfuck อาจมีช่วงเวลาที่ยากลำบาก)
อินพุตจะอ้างอิงตำแหน่งที่อยู่ในอาเรย์เพื่อเริ่มการพิมพ์จากและตำแหน่งที่จะหยุด อินพุตที่มีพฤติกรรมที่กำหนดจะมีค่าเริ่มต้นน้อยกว่าหรือเท่ากับค่าสิ้นสุด โปรแกรมของคุณจะต้องสามารถพิมพ์ค่าเลขฐานสิบหกทุกค่าระหว่างและรวมถึงเลขฐานสิบหกที่ป้อนเข้า
ตัวอย่างของสิ่งนี้:
Array
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11 12 13 14 15
Values
FF F4 B6 D7 40 00 00 A4 F0 00 FF 0D 9C 21 65 C4 02 28 90 E7 D6 A5
input first num:
04
input second num:
14
40 00 00 A4 F0 00 FF 0D 9C 21 65 C4 02 28 90 E7 D6
ตอนนี้ส่วนที่น่าสนใจของแบบฝึกหัดนี้คือคุณสามารถใช้สิ่งที่คุณต้องการตรวจสอบขอบเขตของการป้อนข้อมูลของผู้ใช้ อินพุตบุคคลhello
และโปรแกรมของคุณมีพฤติกรรมที่ไม่ได้กำหนด? จะหยุดทำงานโดยไม่ต้องแจ้งให้ทราบล่วงหน้าหรือไม่ พวกมันใช้ได้ทั้งคู่
กฎเท่านั้นคือ:
1.คุณต้องรวมค่าของเลขฐานสิบหก 22 ค่าเป็นส่วนหนึ่งของโปรแกรมของคุณก่อนที่จะเริ่มต้น (ไม่สามารถขออินพุตจากผู้ใช้)
2.ผลลัพธ์ของค่าเลขฐานสิบหกต้องเป็นไปตามรูปแบบที่แน่นอน:
00 FF 00 FF 00
ช่องว่างต่อท้ายแท็บหรือบรรทัดเป็นปกติ ตัวละครไม่ได้
3.โปรแกรมไม่จำเป็นต้องขออินพุตด้วยข้อความ เว้น "ข้อความ" ว่างไว้หากคุณต้องการ ผู้ใช้จะต้องป้อนขอบเขตหกเหลี่ยมอย่างไรก็ตาม
4.เช่นเดียวกับค่าของเลขฐานสิบหก 22 ตัวที่ขึ้นอยู่กับคุณในการตัดสินใจคุณจะต้องสร้างโปรแกรมที่ดึงค่าจากหน่วยเก็บข้อมูลซึ่งตรงข้ามกับการเลียนแบบโปรแกรมโดยการพิมพ์ค่าเพียงอย่างเดียว (เช่นรายการ$ 00 )
5 อินพุตจำนวน nหมายถึงจำนวนอินพุตที่จำเป็นสำหรับภาษาที่คุณเลือกเพื่อให้รับรู้เลขฐานสิบหกที่มีความกว้างสองไบต์ เช่น. (Brainfuck จะต้องใช้สองอินพุตต่อฐานสิบหกทำให้เป็นสี่สำหรับสอง)
รู้สึกอิสระที่จะแสดงความคิดเห็นหากคุณต้องการชี้แจง
นี่คือรหัสกอล์ฟดังนั้นคำตอบที่สั้นที่สุดในจำนวนไบต์จึงเป็นผู้ชนะ
ลีดเดอร์บอร์ด
นี่คือการสร้างลีดเดอร์ข้อมูลโค้ดมารยาทของมาร์ตินเอนเดอร์
เพื่อให้แน่ใจว่าคำตอบของคุณปรากฏขึ้นโปรดเริ่มคำตอบด้วยหัวข้อโดยใช้เทมเพลต Markdown ต่อไปนี้:
# Language Name, N bytes
ที่N
มีขนาดของส่งของคุณ หากคุณปรับปรุงคะแนนของคุณคุณสามารถเก็บคะแนนเก่าไว้ในพาดหัวโดยการตีพวกเขาผ่าน ตัวอย่างเช่น
# Ruby, <s>104</s> <s>101</s> 96 bytes
n
เพราะ Brainfuck ไม่สามารถใช้สายอักขระ 2 ตัวได้คุณจะต้องใส่ไบต์แรกจากนั้นจึงเลือกที่สองสำหรับค่าแรกแล้วทำอีกครั้งสำหรับค่าที่สองซึ่งรวม 4 อินพุต พวกเขาสามารถเป็นได้มากเท่าที่คุณต้องการ