ภาษาคำอธิบายการวาดภาพ Mondrian
ความท้าทายนี้ประกอบด้วยการเข้ารหัสล่ามสำหรับภาษาคำอธิบายภาพวาดมอนเดรียน (MPDL) นิยามภาษา ภาษาดำเนินการกับกองสี่เหลี่ยม สี่เหลี่ยมถูกกำหนดโดยพิกัดด้านซ้ายบนและพิกัดล่างขวา พิกัดจะต้องเป็นจำนวนเต็ม สแต็กเริ่มต้นด้วยสี่เหลี่ยมเดียวที่มีคุณลักษณะ(1,1,254,254) แต่ละคำสั่งมีรูปแบบต่อไปนี้: <character><integer> มีสามคำสั่ง: v<integer>: ดำเนินการแบ่งตามแนวตั้งบนสี่เหลี่ยมผืนผ้าล่าสุดในสแต็ก ณ ตำแหน่งที่ระบุโดยพารามิเตอร์ (เป็นเปอร์เซ็นต์) สี่เหลี่ยมต้นฉบับจะถูกลบออกจากสแต็กและแทนที่ด้วยสี่เหลี่ยมใหม่สองอันที่เป็นผลมาจากการแยก สี่เหลี่ยมด้านซ้ายถูกผลักลงบนสแต็กจากนั้นสี่เหลี่ยมด้านขวา เนื่องจากพิกัดสี่เหลี่ยมผืนผ้าเป็นจำนวนเต็มเศษส่วนควรถูกปัดเป็นจำนวนเต็มเล็กที่สุด h<integer>: แยกแนวนอน สี่เหลี่ยมผืนผ้าด้านบนถูกผลักลงบนสแต็กจากนั้นสี่เหลี่ยมผืนผ้าด้านล่าง c<integer>: ลบสี่เหลี่ยมล่าสุดออกจากสแต็กและวาดเป็นสีที่กำหนดเป็นพารามิเตอร์ 1 = ขาว, 2 = แดง, 3 = น้ำเงิน, 4 = เหลือง ท้าทาย เขียนโปรแกรมที่รับพารามิเตอร์เป็นคำอธิบายการทาสีและสร้างการแทนค่าบิตแมป 256x256 ของสี่เหลี่ยมที่ทาสี รูปสี่เหลี่ยมจะต้องคั่นด้วยเส้นสีดำ 3 พิกเซล สี่เหลี่ยมหนึ่งหรือสองพิกเซลควรมีพิกเซลที่ไม่ใช่สีดำซ่อนอยู่โดยพิกเซลสีดำเส้นขอบ อินพุตสามารถอ่านเป็นพารามิเตอร์หรือเป็นไฟล์ขึ้นอยู่กับคุณ คำสั่งควรคั่นด้วยช่องว่าง คุณสามารถสันนิษฐานได้ว่าไฟล์อินพุตมีไวยากรณ์ที่ถูกต้องและไม่มีการเว้นวรรคหรือนำหน้าแท็บ ฯลฯ เอาต์พุตสามารถแสดงผลได้โดยตรงบนหน้าจอหรือบันทึกลงในไฟล์ตามที่คุณต้องการ รหัสที่สั้นที่สุดชนะ ทดสอบ …