เบื่อกับความน่าเชื่อถือของการจัดเก็บแฟลชคุณตัดสินใจที่จะจัดเก็บโปรแกรมทั้งหมดของคุณในหนึ่งในผู้ดี 1,440 KiB floppies อย่างไรก็ตามหลังจากคัดลอกโปรแกรมไม่ถึง 3,000 โปรแกรมดิสก์ก็เต็ม เป็นไปได้ยังไง? มีทักษะในการเขียนโค้ดกอล์ฟอย่างที่คุณเป็นส่วนใหญ่โปรแกรมของคุณมีความยาวไม่เกิน 100 ไบต์ดังนั้นควรเหลือพื้นที่เหลืออีกมาก ...
หลังจากถามถึงผู้ใช้ขั้นสูงคุณจะพบว่าขนาดของคลัสเตอร์ของระบบไฟล์เป็นพล็อตที่ชั่วร้ายของนักออกแบบของFAT12ที่ทิ้งส่วนสำคัญของฟลอปปี้ที่ไม่ได้ใช้และบังคับให้คุณซื้อมากกว่าที่คุณต้องการจริงๆ
ซื้อฟลอปปี้เพิ่มเติมหรือไม่ ไม่! ขนาดกลุ่มจะมีปัญหาน้อยลงหากเราบันทึกหลาย ๆ โปรแกรมไว้ในไฟล์เดียวซึ่งเป็นไปได้เพราะคอมไพเลอร์ / ล่ามที่แตกต่างกันจะทำงานแตกต่างกันสำหรับซอร์สโค้ดเดียวกัน
งาน
เขียนรูปหลายภาษาที่เหมาะกับในคลัสเตอร์เดียว (512 ไบต์หรือน้อยกว่า) และแก้ไขงานต่อไปนี้ให้ได้มากที่สุด
อ่านอินพุตทั้งหมดและพิมพ์
พิมพ์Hello, World! .
อ่านบรรทัด / อาร์กิวเมนต์ ( ชื่อ ) เป็นอินพุตและพิมพ์สุขสันต์วันเกิด [ชื่อ]! .
อ่านอินพุตทั้งหมดและพิมพ์ฉันรักแท็บ! ถ้ามันมีหนึ่ง tabulators อย่างน้อยหนึ่ง (0x09) และฉันเกลียดช่องว่าง! ถ้าไม่ได้
อ่านสองบรรทัด / อาร์กิวเมนต์และพิมพ์ค่าความจริงหากสตริงที่สองเป็นซับสตริงของค่าแรกและค่าเท็จถ้าไม่
อ่านบรรทัด / อาร์กิวเมนต์และพิมพ์ค่าความจริงหากอักขระอยู่ในลำดับจากน้อยไปหามากและค่าเท็จถ้าไม่
อ่านบรรทัด / อาร์กิวเมนต์และตัวอักษรและพิมพ์ดัชนีของเหตุการณ์ทั้งหมดของตัวละครนั้น
อ่านบรรทัด / อาร์กิวเมนต์และพิมพ์อักขระใด ๆ ที่มีจำนวนครั้งสูงสุด
อ่านจำนวนเต็มสองจำนวนระหว่าง0ถึง255และพิมพ์ผลรวม
อ่านจำนวนเต็มเดียวระหว่าง0และ255และพิมพ์ผลหารและกากของฝ่ายตนโดย7
อ่านจำนวนเต็มเดียวระหว่าง1ถึง255และพิมพ์ค่าจริงถ้าเป็นตัวเลขคอมโพสิต (ไม่ใช่ 1 หรือเฉพาะ) และค่าเท็จถ้าไม่
อ่านจำนวนเต็มเดียวระหว่าง1ถึง255และพิมพ์ค่าจริงถ้ามันเป็นกำลังของ 2 และค่าเท็จถ้าไม่
อ่านจำนวนเต็มสองจำนวนระหว่าง0ถึง255และพิมพ์ค่าที่ใหญ่กว่า
อ่านจำนวนเต็มทศนิยมระหว่าง0ถึง255พิมพ์การแสดงเลขฐานสิบหก
อ่านจำนวนเต็มเดียวระหว่าง0ถึง255และพิมพ์น้ำหนัก Hamming (จำนวน 1 บิต)
อ่านจำนวนเต็มเดียวnระหว่าง1และ13และพิมพ์F nที่n TH จำนวนฟีโบนักชี
ตัวอย่างเช่นสำหรับการป้อนข้อมูลที่พิมพ์
13
233
อ่านบรรทัด / อาร์กิวเมนต์ของอินพุตและใส่กรอบ
ตัวอย่างเช่นสำหรับอินพุต
Programming Puzzles & Code Golf
พิมพ์สิ่งนี้:+---------------------------------+ | Programming Puzzles & Code Golf | +---------------------------------+
อ่านบล็อกสี่เหลี่ยมของตัวละครและหมุนหนึ่งในสี่ตามเข็มนาฬิกา
ตัวอย่างเช่นสำหรับการป้อนข้อมูล
tye xll epb tma id sa s e i r hsn Tiu
พิมพ์นี้:
This text is simply unreadable
อ่านจำนวนเต็มระหว่าง1และ40และพิมพ์เพชรของความยาวด้านข้างว่า
ตัวอย่างเช่นสำหรับอินพุต
3
พิมพ์สิ่งนี้:/\ / \ / \ \ / \ / \/
พิมพ์สิ่งนี้:
....@@@@....@@@@....@@@@....@@@@ ....@@@@....@@@@....@@@@....@@@@ ....@@@@....@@@@....@@@@....@@@@ @@@@....@@@@....@@@@....@@@@.... @@@@....@@@@....@@@@....@@@@.... @@@@....@@@@....@@@@....@@@@.... ....@@@@....@@@@....@@@@....@@@@ ....@@@@....@@@@....@@@@....@@@@ ....@@@@....@@@@....@@@@....@@@@ @@@@....@@@@....@@@@....@@@@.... @@@@....@@@@....@@@@....@@@@.... @@@@....@@@@....@@@@....@@@@.... ....@@@@....@@@@....@@@@....@@@@ ....@@@@....@@@@....@@@@....@@@@ ....@@@@....@@@@....@@@@....@@@@ @@@@....@@@@....@@@@....@@@@.... @@@@....@@@@....@@@@....@@@@.... @@@@....@@@@....@@@@....@@@@.... ....@@@@....@@@@....@@@@....@@@@ ....@@@@....@@@@....@@@@....@@@@ ....@@@@....@@@@....@@@@....@@@@ @@@@....@@@@....@@@@....@@@@.... @@@@....@@@@....@@@@....@@@@.... @@@@....@@@@....@@@@....@@@@....
เกณฑ์การให้คะแนน
คำตอบที่จัดการเพื่อรวมจำนวนสูงสุดของโปรแกรมในไฟล์เดียวที่เหมาะกับคลัสเตอร์ 512 ไบต์เดียวที่ชนะ ความสัมพันธ์จะหักตามจำนวนไบต์ (ต่ำกว่าดีกว่า)
กฎเพิ่มเติม
สำหรับแต่ละงานที่คุณอ้างสิทธิ์ในคะแนนของคุณไฟล์เดียวกัน (ไบต์ต่อไบต์) จะต้องประกอบด้วยโปรแกรมเต็ม - ในภาษาที่คุณเลือก - ซึ่งจะแก้ปัญหาเฉพาะงานนี้
แต่ละงานจะต้องมีการแก้ไขในภาษาที่แตกต่างกัน
ภาษานับว่าแตกต่างกันหากไม่ใช่ภาษาเดียวกัน ตัวอย่างเช่นมีเพียงหนึ่ง JavaScript, Python หนึ่งและหนึ่ง TI-BASIC แต่ C, C ++, Octave และ MATLAB เป็นสี่ภาษาที่แตกต่างกัน
ภาษาที่เลือกสำหรับแต่ละงานมีการตอบสนองความหมายของเราตามปกติของการเขียนโปรแกรมภาษา
นอกจากนี้ภาษาต้องได้รับการเผยแพร่และนำไปใช้ก่อนวันที่ 9 กันยายน 2558
คอมไพเลอร์ / ล่ามของคุณอาจไม่ต้องการแฟล็กที่ไม่ได้มาตรฐานใด ๆ
ข้อยกเว้นของกฎนี้รวมถึงการตั้งค่าสถานะที่จำเป็นในการระบุภาษาเฉพาะเพื่ออ่านโปรแกรมจากไฟล์ (เดี่ยว) หรือเพื่อหยุดแบนเนอร์
อินพุตสำหรับแต่ละงานจะประกอบด้วยอักขระ ASCII ที่พิมพ์ได้ (0x20 ถึง 0x7E) และ linefeeds (0x0A) และจะมีความยาวไม่เกิน255ไบต์
จำนวนเต็มทั้งหมดสามารถอ่านได้ในรูปทศนิยมหรือไม่เป็นเอกภาพเว้นแต่จะระบุไว้เป็นอย่างอื่นในงาน
พฤติกรรมสำหรับการป้อนข้อมูลที่ไม่ถูกต้องจะไม่ได้กำหนด
คุณสามารถอ่านอินพุตจาก STDIN (หรือทางเลือกที่ใกล้เคียงที่สุด) หรือเป็นอาร์กิวเมนต์บรรทัดคำสั่ง
หากภารกิจต้องการอ่านอินพุตสองชิ้นคุณสามารถอ่านได้ในลำดับใด ๆ คั่นด้วยตัวคั่นขนาดหนึ่งไบต์ที่คุณเลือกเป็นอาร์กิวเมนต์บรรทัดคำสั่งแยกต่างหากหรืออย่างใดอย่างหนึ่งจาก STDIN และอื่น ๆ เป็นอาร์กิวเมนต์บรรทัดคำสั่ง
หากหนึ่งในอินพุตชิ้นเป็นบรรทัดตัวคั่นที่เป็นไปได้เท่านั้นคือตัวป้อนบรรทัด
พิมพ์เอาต์พุตไปที่ STDOUT (หรือทางเลือกที่ใกล้เคียงที่สุด) เอาต์พุตทั้งหมดไปยัง STDERR จะถูกละเว้น
สำหรับแต่ละภารกิจจะใช้กฎการเขียนโค๊ดมาตรฐาน
โดยเฉพาะอย่างยิ่งสิ่งนี้รวมถึงช่องโหว่ที่ถูกห้ามโดยค่าเริ่มต้นยกเว้นการเข้ารหัสฮาร์ดโค้ดเอาต์พุตซึ่งได้รับอนุญาตอย่างชัดเจนสำหรับความท้าทายนี้
2>/dev/null
และรับเอาต์พุตที่ถูกต้องเพื่อ stdout มันก็โอเค? เพียงเพื่อให้แน่ใจ