ธนาคารถูกบุกรุกและบรรดานักเลงมาเฟียในท้องถิ่นมีข้อแก้ตัวที่ผิดปกติ: พวกเขาเล่นที่บ้าน Connect 4! เพื่อช่วยในการสืบสวนคุณจะถูกขอให้เขียนโปรแกรมเพื่อตรวจสอบบอร์ด Connect 4 ทั้งหมดที่ถูกยึดเพื่อตรวจสอบว่าตำแหน่งนั้นอยู่ในตำแหน่งที่แน่นอนจากเกม Connect 4 ที่ถูกต้องและยังไม่ได้รวมเข้าด้วยกัน ทันทีที่ตำรวจเคาะประตู
กฎสำหรับการเชื่อมต่อ 4: ผู้เล่นR
และY
หันมาวางไพ่ที่มีสีลงในคอลัมน์ของตารางขนาด 7x6 เมื่อผู้เล่นวางไทล์ลงในคอลัมน์มันจะหล่นลงมาเพื่อครองตำแหน่งที่ไม่สำเร็จที่ต่ำที่สุดในคอลัมน์นั้น หากผู้เล่นจัดการเพื่อให้ได้สีในแนวนอนแนวตั้งหรือแนวทแยงของไพ่สี่สีบนกระดานจากนั้นพวกเขาชนะและเกมจะจบลงทันที
ตัวอย่างเช่น (เมื่อR
เริ่มต้น) ต่อไปนี้เป็นตำแหน่งเชื่อมต่อ 4 ที่เป็นไปไม่ได้
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | |R| | | | |
| | |Y| | | | |
|R| |Y| | | | |
โปรแกรมหรือฟังก์ชั่นของคุณจะต้องใช้บอร์ด Connect 4 และส่งคืน
- ค่าเท็จแสดงว่าตำแหน่งนั้นเป็นไปไม่ได้หรือ
- สตริงของตัวเลข 1-7 แสดงให้เห็นลำดับที่เป็นไปได้อย่างใดอย่างหนึ่งของการเคลื่อนไหวที่นำไปสู่ตำแหน่งที่ (คอลัมน์ที่มีหมายเลข
1
ที่จะ7
จากซ้ายไปขวาและอื่น ๆ ตามลำดับ112
ตัวอย่างเช่นระบุว่ามีการย้ายสีแดงในคอลัมน์1
ตามด้วยการย้ายสีเหลือง ในคอลัมน์1
ตามด้วยการย้ายสีแดงในคอลัมน์2
) คุณสามารถเลือกหมายเลขคอลัมน์อื่นที่ไม่ใช่ 1234567 หากคุณต้องการตราบใดที่คุณระบุในโซลูชันของคุณ หากคุณต้องการส่งคืนรายการในรูปแบบอื่น ตัวอย่างเช่นอาเรย์[2, 4, 3, 1, 1, 3]
แล้วก็ใช้ได้เช่นกันตราบใดที่ง่ายต่อการดูว่าการเคลื่อนไหวนั้นเป็นอย่างไร
คุณสามารถเลือกที่จะอ่านกระดานในรูปแบบที่เหมาะสมรวมถึงการใช้ตัวอักษรที่นอกเหนือจากR
และY
สำหรับผู้เล่น แต่คุณต้องระบุผู้เล่นคนแรก คุณสามารถสันนิษฐานได้ว่าบอร์ดจะมีขนาด 6x7 โดยมีผู้เล่นสองคน
คุณอาจสันนิษฐานได้ว่าตำแหน่งที่คุณได้รับนั้นเป็นไปได้อย่างน้อยที่สุดที่จะสร้างบนกระดาน Connect 4 มาตรฐาน กล่าวคือจะไม่มีชิ้นส่วน 'ลอย' คุณสามารถสันนิษฐานได้ว่าบอร์ดจะไม่ว่างเปล่า
นี่คือรหัสกอล์ฟดังนั้นคำตอบที่สั้นที่สุดจึงชนะ ช่องโหว่มาตรฐานใช้
ตัวอย่าง
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | | --> 1234567 (one possible answer)
| | | | | | | |
|R|Y|R|Y|R|Y|R|
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | |R| | | | | --> false
| | |Y| | | | |
|R| |Y| | | | |
| | | | | | | |
| | |Y| | | | |
| | |R| | | | |
| | |Y| | | | | --> 323333 (only possible answer)
| | |R| | | | |
| |Y|R| | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | | --> false (this is the position arising after
| |Y|Y|Y|Y| | | the moves 11223344, but using those moves
| |R|R|R|R| | | the game would have ended once R made a 4)
| | | | | | | |
| | | | | | | |
|Y| | | | | | |
|R|Y| | | | | | --> 2134231211 (among other possibilities)
|R|R|Y| | | | |
|Y|R|R|Y| | | |
| | | | | | | |
| | | | | | | |
|Y| | | | | | |
|R|Y| | | | | | --> false (for example, 21342312117 does not
|R|R|Y| | | | | work, because Y has already made a diagonal 4)
|Y|R|R|Y| | |R|
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | | --> 112244553 or similar
|Y|Y| |Y|Y| | |
|R|R|R|R|R| | |