Minesweeper adalah gim komputer populer yang mungkin Anda buang-buang waktu untuk mencoba mengungkap sel-sel yang ditambang dalam kotak persegi panjang berdasarkan petunjuk tentang berapa banyak tambang tetangga yang dimiliki masing-masing sel non-tambang. Dan jika Anda belum memainkannya, lakukan di sini .
Fakta matematika yang bagus tentang kisi Minesweeper (alias papan) adalah:
Dewan dan pelengkapnya memiliki jumlah total tambang yang sama . ( Bukti )
Artinya, jika Anda memiliki kisi Minesweeper yang benar-benar terungkap, jumlah semua angka pada kisi itu, yaitu total tambang , akan sama dengan total tambang dari komplemen kisi, yang merupakan kisi tempat setiap tambang telah diganti dengan non-tambang dan setiap non-tambang diganti dengan tambang.
Misalnya, untuk kisi Minesweeper
**1..
34321
*2**1
total tambang adalah 1 + 3 + 4 + 3 + 2 + 1 + 2 + 1 = 17.
Komplemen grid adalah
24***
*****
3*44*
yang memiliki total tambang 2 + 4 + 3 + 4 + 4 = 17 lagi.
Tulis program yang menggunakan kisi Minesweeper yang sewenang-wenang dalam bentuk teks yang *
mewakili tambang dan 1
melalui 8
jumlah tambang yang berdekatan dengan sel non-tambang. Anda dapat menggunakan .
atau 0
atau
(ruang) untuk mewakili sel dengan tetangga tidak tambang, pilihan Anda. Anda dapat mengasumsikan bahwa kisi-kisi input akan ditandai dengan benar, yaitu setiap sel non-ranjau akan secara akurat menunjukkan jumlah total tambang yang berbatasan langsung dengannya secara ortogonal atau diagonal.
Program Anda perlu untuk mencetak komplemen dari grid dalam format yang sama (menggunakan yang sama .
, 0
atau
seperti yang Anda harapkan di input).
Kode terpendek dalam byte menang.
- Alih-alih sebuah program Anda dapat menulis fungsi yang mengambil kisi input sebagai string dan mencetak atau mengembalikan kisi komplemen.
- Baris tambahan di input atau output baik-baik saja, tetapi tidak boleh ada karakter lain selain yang membentuk kisi.
- Anda dapat menganggap kisi 1 × 1 akan menjadi input terkecil.
Uji Kasus
Semua input dan output dapat ditukar karena komplemen dari komplemen adalah grid asli. Kisi-kisi dapat diputar juga untuk kasus uji lebih lanjut.
Memasukkan:
111
1*1
111
Keluaran:
***
*8*
***
Memasukkan:
.
Keluaran:
*
Memasukkan:
*11*1.1**1...1***1.....1*****1..........
Keluaran:
1**2***11*****1.1*******1...1***********
Input: ( Potong contoh Simpul )
**212*32
333*33**
1*22*333
222222*1
*33*2232
2**22*2*
Keluaran:
24***4**
***7**64
*8**7***
******8*
4**7****
*33**5*3
?
) pada baris setelah baris akhir papan dapat diterima, atau bisakah saya mengambil jumlah baris input melalui baris perintah?