ตอนนี้เป็นเวลาที่จะแสดงความสามารถของคุณในการเขียนโค้ดที่ไม่ดี ฉันลองใช้ตัวต่อเขียนโปรแกรมรูปแบบใหม่ที่ใกล้เคียงที่สุดกับการประกวด C ความแตกต่างที่สำคัญคือมันไม่ได้เลวร้ายนัก: มันเป็นแค่ความสนุกที่สะอาด เป้าหมายของจิ๊กซอว์คือการแพ็คข้อบกพร่องให้มากที่สุดเท่าที่จะทำได้ในโปรแกรม ผู้ชนะการประกวดนี้คือผู้ที่เขียนโปรแกรมที่มีข้อบกพร่องมากที่สุดต่อตัวละคร
เพื่อหลีกเลี่ยงความคิดเห็นจำนวนมากที่ขอความกระจ่างฉันควรกำหนดตอนนี้สิ่งที่ฉันคิดว่าเป็นข้อบกพร่องที่มีคุณสมบัติ
ครั้งแรกข้อผิดพลาดที่ไม่ได้เป็นข้อผิดพลาด หากเป็นปัญหาที่ล่ามสามารถตรวจพบว่าเป็นข้อผิดพลาด (เช่น delimeters ที่ไม่ตรงกัน, ไวยากรณ์ที่มีรูปแบบไม่ดี, acessing คุณสมบัติของวัตถุเป็นโมฆะ ฯลฯ ) หรือถ้ามันป้องกันโปรแกรมจากการดำเนินการหรือดำเนินการต่อไป แมลง. มิฉะนั้นคุณสามารถพิมพ์ตัวอักษรสี่ตัวและล่ามสามารถแสดงรายการข้อผิดพลาดทางไวยากรณ์ได้แปดข้อและคุณสามารถอ้างสิทธิ์อัตราส่วนตัวผิดพลาดที่ 2
ประการที่สองข้อผิดพลาดจะต้องไม่ผิดอย่างเห็นได้ชัดและข้อผิดพลาดที่ไม่ได้เป็นไข่อีสเตอร์ แน่นอนว่านี่เป็นเกณฑ์ส่วนตัว แต่ฉันคิดว่าจำเป็นต่อการแข่งขันประเภทนี้ ซึ่งหมายความว่าคุณไม่สามารถมีรหัสตามเงื่อนไขที่ mangles รหัสโดยเฉพาะในรูปแบบที่ชัดเจน (อ่าน: ใช้ภาษาพิทัวริงเพราะไม่มีใครรู้ถึงความแตกต่าง)
ประการที่สามข้อผิดพลาดจะต้องเป็นที่น่าเชื่อถือ นี่เป็นอัตนัยเช่นเดียวกับข้างต้น แต่ข้อผิดพลาดจะต้องดูเหมือนว่ามันอาจถูกเขียนขึ้นโดยคนที่พิถีพิถันน้อยกว่าหรืออาจงมงายหรือคนที่ทำผิดพลาด ซึ่งรวมถึงตัวอย่างเช่นข้อผิดพลาดหรือไวยากรณ์ที่ไม่ถูกต้องที่ถูกต้องและมีลักษณะที่ถูกต้อง แต่ทำให้เกิดพฤติกรรมที่ไม่พึงประสงค์ (พูดโดยใช้วงเล็บเหลี่ยมแทนวงเล็บ)
ข้อผิดพลาดอาจทำให้เกิดพฤติกรรมที่ไม่พึงประสงค์ใด ๆ กับโปรแกรมรวมถึง แต่ไม่ จำกัด เฉพาะผลลัพธ์ที่ไม่พึงประสงค์สำหรับบางกรณีมีพฤติกรรมที่แตกต่างกันไปตามสิ่งที่ดูเหมือนไม่เกี่ยวข้อง (เช่นผลลัพธ์จะแสดงแตกต่างกันขึ้นอยู่กับว่า ด้วยจำนวนวินาทีที่คี่หรือคู่) การรั่วไหลของหน่วยความจำการสูญเสียข้อมูลและอื่น ๆ
ตัวอย่างปัญหา:
สร้างโปรแกรมที่แสดงอักขระ ASCII ทั้งหมดตามลำดับจากน้อยไปหามากของค่าตัวเลข
ตัวอย่างคำตอบ:
Brainf ***, 5 chars, 1 bug, 0.2 bug-char ratio
+[+.]
ข้อผิดพลาด: ไม่แสดงอักขระ ASCII สำหรับ 1. .+[.+]
สามารถได้รับการแก้ไขโดยการเปลี่ยนไป
ตกลงฉันคิดว่าคุณควรได้รับมันเป็นส่วนใหญ่แล้วนี่คือปริศนาของคุณ:
ถอดรหัสเลขซีซาร์และเรียงคำตามลำดับตัวอักษร
รหัสซีซาร์ถูกสร้างขึ้นโดยการใช้ชุดของตัวอักษรและขยับพวกเขาnตัวอักษรในตัวอักษร ถ้ามันไปตลอดทางจนถึงจุดเริ่มต้นหรือจุดสิ้นสุดของตัวอักษร A จะตามหลัง Z และ Z มาก่อน A ตัวอย่างเช่น:
Mannequin
Nboofrvjo //Shifted over 1 or -25
Wkxxoaesx //Shifted over 10 -16
Ftggxjnbg //Shifted over -7 or 19
คุณจะได้รับสองอินพุต (คุณสามารถรับอินพุตได้ แต่สะดวกที่สุดสำหรับคุณตามเหตุผล) อินพุตแรกคือคำและอินพุตที่สองคือค่าที่เลื่อนไป งานของคุณคือการส่งออกคำถอดรหัสแล้วส่งออกคำถอดรหัสหลังจากที่เรียงลำดับตามตัวอักษร
ตัวอย่าง (ไม่มีความผิดต่อชายเลวมันเป็นเพียงตัวอย่าง):
อินพุตแรก: gtdx wjbfwiji ljy Gfi hfssty
อินพุตที่สอง: 5
ผลลัพธ์แรก: เด็ก ๆ ได้รับรางวัล รับแย่ไม่สามารถ
ผลลัพธ์ที่สอง: เด็กเลวไม่สามารถได้รับรางวัล
โชคดี!