เราสร้างเขตข้อมูล Minesweeperแล้ว แต่มีบางคนต้องกวาดเหมืองที่สร้างขึ้นก่อนที่ PCG จะระเบิด!
งานของคุณคือการเขียน Minesweeper Solver ที่เข้ากันได้กับโซลูชันที่ได้รับการยอมรับเล็กน้อยของ“ Working Minesweeper” (การกระทำถูกคั่นด้วยช่องว่างเพื่อให้มีฟิลด์ขนาดใหญ่)
อินพุต:ฟิลด์ Minesweeper ฟิลด์คั่นด้วยช่องว่าง บรรทัดแรกแสดงจำนวนเหมืองทั้งหมด
x
: ไม่มีใครแตะต้อง!
: ตั้งค่าสถานะ- หลัก: จำนวนเหมืองรอบ ๆ สนาม
ตัวอย่าง:
10
0 0 1 x x x x x
0 0 2 x x x x x
0 0 2 ! x x x x
0 0 1 2 x x x x
0 0 0 1 x x x x
1 1 0 2 x x x x
x 1 0 2 x x x x
1 1 0 1 x x x x
เอาท์พุท:ขั้นตอนต่อไปของคุณในรูปแบบaction row column
(เริ่มต้นที่ศูนย์)
การกระทำที่ถูกต้อง:
0
: เปิด1
: วางธง
ตัวอย่าง:
0 1 2
กฎ:
- คุณเขียนโปรแกรมที่สมบูรณ์ซึ่งรับฟิลด์เดียวเป็นอินพุต (STDIN หรืออาร์กิวเมนต์บรรทัดคำสั่ง) และส่งเอาต์พุตแอคชันเดียว (STDOUT)
!
ดังนั้นคุณจะไม่สามารถบันทึกรัฐยกเว้น - ตัวเลือกของคุณจะต้องเป็นไปตามอัตราต่อรองที่ดีที่สุดเพื่อความอยู่รอด (เช่นถ้ามีการย้ายที่ปลอดภัย 100% เอาไป)
- นี่คือรหัสกอล์ฟ ; โซลูชันที่สั้นที่สุด (เป็น UTF-8 ไบต์) จะชนะ
แบบทดสอบ:
การทดสอบเหล่านี้มีจุดประสงค์ในการทดสอบสำหรับสถานการณ์ที่ชัดเจนทั่วไป โปรแกรมของคุณจะต้องใช้งานได้กับทุกสนามทดสอบ
ใน:
4
x x x x
1 2 x x
0 1 2 x
0 0 1 x
ออก (ใด ๆ เหล่านี้):
1 1 2
0 0 2
0 1 3
ใน:
2
x x x
1 ! x
1 1 x
ออก (ใด ๆ เหล่านี้):
0 0 0
0 0 1
0 1 2
0 2 2
1 0 2
ใน:
10
x x x x x x x x
1 3 3 x x x x x
0 1 ! 3 3 4 x x
0 2 3 ! 2 3 x x
0 1 ! 2 2 ! x x
ออก (ใด ๆ เหล่านี้):
1 1 5
1 0 2
ใน:
2
x x x
2 3 1
! 1 0
ออก (ใด ๆ เหล่านี้):
0 0 1
1 0 0
1 0 2
0 0 2
0 1 3
ฉันไม่สามารถเห็นว่าหนึ่งในนั้นจะถือว่าปลอดภัยอย่างไร (ฉันจะต้องไม่ดีพอที่เรือกวาดทุ่นระเบิด ... )
F
หรือP
ธงรูปลักษณ์ที่ดีกว่า!
:)