pengantar
Nine Mens's Morris (juga disebut Mills) adalah permainan papan untuk dua pemain yang dimainkan di papan berikut (gambar diambil dari halaman Wikipedia yang terhubung):
Setiap pemain memiliki 9 pemain, berwarna hitam dan putih. Aturan konkret tidak penting untuk tantangan ini, tetapi periksa halaman Wikipedia jika Anda tertarik.
Tantangan
Mengingat grid sebagai input, yang merupakan boardstate tertentu, output count pabrik keseluruhan m
dengan 0<=m<=8
.
Tiga pria dengan warna yang sama membentuk penggilingan ketika mereka berada di barisan lurus titik-titik yang terhubung. b2
to f2
bukan pabrik karena laki-laki memiliki warna yang berbeda. Juga d2
untuk d5
tidak akan membentuk pabrik sejak tiga poin harus terhubung.
Papan pada gambar di atas mengandung dua pabrik misalnya. Satu dari f2
ke f6
dan satu dari e3
ke e5
.
Memasukkan
Papan direpresentasikan sebagai kisi 2D dengan 24 titik yang terhubung seperti yang ditunjukkan pada contoh gambar di atas. Contoh ini menggunakan huruf dari a-g
untuk kolom dan angka dari 1-7
untuk baris, tetapi Anda dapat memilih format input yang wajar selama memetakan 24 koordinat unik ke salah satu negara berikut:
- Kosong
- Diambil oleh hitam
- Diambil putih
Repersentasi beton terserah Anda, Anda tidak terbatas pada "b" atau "w" untuk warna.
Selain itu, input Anda mungkin tidak mengandung informasi tambahan.
Catatan tambahan
- Anda tidak harus memetakan poin berdasarkan jenis nilai apa pun. Jika Anda ingin mengambil input sebagai array 2D, itu bagus juga. Tetapi perlu diingat bahwa tidak semua poin di sana digunakan dan Anda harus mempertimbangkan koneksi di antara mereka.
- Input mungkin kosong, dalam hal ini Anda harus menghasilkan nol (papan kosong -> tidak ada pabrik).
- Karena setiap pemain memiliki 9 pemain, input tidak akan pernah mengandung lebih dari 18 poin yang diambil.
- Anda dapat meninggalkan poin emtpy di input dan oleh karena itu hanya input poin yang diambil.
- Input dapat dipesan dengan cara apa pun. Anda tidak dapat mengandalkan pesanan tertentu.
- Anda dapat mengasumsikan bahwa input akan selalu valid. Ini berarti bahwa tidak akan ada lebih dari 9 pria dari setiap warna dan bahwa setiap titik akan unik.
Aturan
- Jelaskan format input mana yang Anda gunakan dalam solusi Anda. Memberikan contoh program Anda sangat dianjurkan.
- Fungsi atau program lengkap diizinkan.
- Aturan default untuk input / output.
- Celah standar berlaku.
- Ini adalah kode-golf , sehingga byte-count terendah akan menang. Tiebreak adalah pengiriman sebelumnya.
Uji kasus
Format input di sini adalah daftar tupel dengan koordinat seperti pada contoh di atas sebagai elemen pertama dan keadaan elemen titik kedua. Titik yang diambil dengan warna putih ditandai sebagai "w" dan titik yang diambil dengan warna hitam sebagai "b". Semua poin lainnya ditinggalkan dan kosong.
[("a4", "w"), ("b2", "b"), ("b4", "b"), ("c4", "b"), ("d1", "w") , ("d2", "w"), ("e3", "w"), ("e4", "w"), ("e5", "w"), ("f2", "b") , ("f4", "b"), ("f6", "b"), ("g4", "w")] -> 2 [("a1", "b"), ("a4", "b"), ("a7", "b"), ("b4", "b"), ("c4", "b") , ("d3", "w"), ("d2", "w"), ("d1", "w")] -> 3 [] -> 0 [("b4", "b"), ("a4", b "), (" c4 ", w")] -> 0 [("b4", "b"), ("a4", b "), (" c4 ", b")] -> 1 [("a1", "b"), ("a4", "b"), ("a7", "b"), ("b2", "b"), ("b4", "b") , ("b6", "b"), ("c3", "b"), ("c4", "b"), ("c5", "b"), ("e3", "w") , ("e4", "w"), ("e5", "w"), ("f2", "w"), ("f4", "w"), ("f6", "w") , ("g1", "w"), ("g4", "w"), ("g7", "w")] -> 8
Selamat Coding!
d3
dan d5
tidak terhubung. Aturan mengatakan: Three men of the same color form a mill when they are in a straight row of connected points.
. Saya menambahkan beberapa contoh di bagian ini untuk menjelaskannya, terima kasih atas komentarnya!