1
การวางแผนชั้น!
ข้อจำกัดความรับผิดชอบ: เรื่องราวที่บอกไว้ในคำถามนี้เป็นเรื่องสมมติทั้งหมดและคิดค้นขึ้นเพื่อวัตถุประสงค์ในการให้คำแนะนำ ฉันมีเพื่อนที่เป็นสถาปนิกและหลังจากอธิบายแนวคิดของ code-golf และเว็บไซต์นี้ให้เขาแล้วเขาบอกว่าฉันควรเขียนโค้ดบางอย่างที่มีประโยชน์สำหรับการเปลี่ยนแปลง ฉันถามเขาว่าสิ่งใดที่เขาคิดว่ามีประโยชน์และในฐานะสถาปนิกเขาตอบว่าเขาจะสนุกกับการวางแผนพื้นที่ให้การเตรียมการที่เป็นไปได้ทั้งหมดสำหรับห้องขนาดบางขนาดภายในบ้านที่มีขนาดที่แน่นอน ฉันคิดว่าฉันจะพิสูจน์ว่า code-golf ไม่ได้ไร้ประโยชน์เลยและให้โปรแกรมนี้แก่เขาด้วยจำนวนไบต์ที่น้อยที่สุดเท่าที่จะเป็นไปได้ งานของคุณ: เขียนโปรแกรมหรือฟังก์ชั่นที่เมื่อได้รับอาเรย์ D ที่มีขนาดของทั้งบ้านและอาเรย์ที่สองที่มีขนาดของห้องภายในออกเป็นศิลปะ ASCII การกำหนดค่าที่เป็นไปได้ทั้งหมดของห้องภายในบ้าน ห้องพักทุกห้องและผนังด้านนอกของบ้านควรสร้างเป็นกล่อง ASCII มาตรฐานโดยใช้ | สัญลักษณ์สำหรับผนังแนวตั้งสัญลักษณ์ - เป็นผนังแนวนอนและสัญลักษณ์ + สำหรับมุม ตัวอย่างเช่นบ้านที่มีขนาด [4,4] จะมีลักษณะดังนี้: +----+ | | | | | | | | +----+ อย่างที่คุณเห็นมุมไม่นับรวมเป็นส่วนหนึ่งของชุดข้อมูล จำนวน - หรือ | อักขระที่สร้างด้านข้างควรเท่ากับจำนวนที่กำหนดในมิติข้อมูล ห้องพักอาจแชร์ผนังหรือแชร์กำแพงกับบ้าน ห้องอาจไม่ประกอบด้วยห้องขนาดเล็กภายในตัวเอง ตัวอย่างเช่นการกำหนดค่า +--+---+-+ | | | …