สรุป
เป้าหมายของความท้าทายนี้คือการสร้างตัวต่อปริศนา 15 ตัว / เลื่อนซึ่งเรียกว่าtaquinในภาษาฝรั่งเศส
รายละเอียด:
รับอินพุตประกอบด้วย:
- รูปภาพ
- จำนวนเต็ม
n
, - จำนวนเต็มอื่น ๆ
r
,
โปรแกรมหรือฟังก์ชั่นของคุณหรือสิ่งอื่น ๆ ที่เหมาะกับคุณจะต้องส่งออกภาพเดียวกัน ( เช่นขนาดและรูปแบบเดียวกัน) เป็นอินพุท แต่เปลี่ยนไปตามกระบวนการต่อไปนี้:
- แบ่งภาพออกเป็น
n²
สี่เหลี่ยม - ลบสี่เหลี่ยมอันใดอันหนึ่งแบบสุ่ม
- ย้ายจำนวนสุ่มของรูปสี่เหลี่ยมผืนผ้าที่ต่อเนื่องกันจากบรรทัด / คอลัมน์ที่ได้รับผลกระทบจากจุด (2. ) เพื่อให้หลุมที่สร้างเต็มไปและอีกหนึ่งจะถูกสร้างขึ้นในบรรทัด / คอลัมน์นี้ ตัวเลขนี้อาจเป็นได้
0
ว่าช่องว่างอยู่ในมุมหรือขอบ
ทำซ้ำ (3. ) r
ครั้ง
ชี้แจง:
- หากคุณย้ายสี่เหลี่ยมจากบรรทัดในขั้นตอนที่ (3) คุณต้องย้ายสี่เหลี่ยมจากคอลัมน์ในการทำซ้ำครั้งถัดไป
- หากคุณย้ายสี่เหลี่ยมจากซ้ายไปขวาในขั้นตอนบรรทัดจะต้องย้ายจากขวาไปซ้ายในขั้นตอนบรรทัดถัดไปเช่นเดียวกันกับคอลัมน์จากบนลงล่างและล่างขึ้นบน
- คุณอาจสันนิษฐานว่า
n
จะถูกเลือกเพื่อให้มันหารความยาวของด้านข้างของภาพ
จุดสุดท้าย:
ภาพเคลื่อนไหวที่.gif
แสดงกระบวนการทั้งหมดได้รับการต้อนรับอย่างมาก
ฉันเสนอให้ใช้รูปภาพต่อไปนี้ (ซึ่งก็คือ1024x768
) ด้วยn=16
และr=100
ในฐานะที่เป็นแบบจำลองคุณสามารถใช้รูปภาพอื่น ๆ (ตราบเท่าที่มันเกี่ยวข้องและสอดคล้องกับกฎของ SE แน่นอน)
โปรดทราบว่ามีการใช้นโยบายช่องโหว่มาตรฐาน
นี่คือรหัสกอล์ฟดังนั้นการส่งที่สั้นจะชนะ!
เนื่องจากมีการร้องขอตัวอย่างนี่คือหนึ่งทำด้วยมือ "ด้วยn=4
และr=1
ขั้นตอนที่ 1 และ 2
ขั้นตอนที่ 3 : line-wise 2 สี่เหลี่ยมไปทางซ้าย
move a random number of contiguous rectangles
มันสามารถเป็น 0 สี่เหลี่ยม? (มันจะเป็นความเจ็บปวดที่จะทำให้โปรแกรมเปลี่ยนพฤติกรรมเมื่อที่ว่างอยู่บนขอบ / มุม)