Tujuan Anda adalah untuk menulis sebuah program yang akan memecahkan teka-teki Mastermind dalam 6 gerakan atau kurang.
Latar Belakang
Mastermind adalah permainan papan. Tujuan permainan ini adalah untuk menebak dengan tepat kombinasi (warna dan urutan) 4 pasak berwarna yang disembunyikan oleh pemain lain. Ketika tebakan dibuat, pemain lain merespons dengan antara 0 dan 4 pasak putih dan atau merah. Pasak merah adalah tempat warna dan lokasi benar. Pasak putih adalah tempat warna diwakili di bagian yang tersisa, tetapi di lokasi yang salah. Jika ada warna duplikat di tebakan, hanya akan ada satu pasak yang diberikan per warna yang sesuai dalam rahasia. (Jadi - jika rahasianya berisi 1 Biru, dan tebakan itu memiliki 2 blues dengan satu di lokasi yang benar, akan ada satu pasak merah yang diberikan). Ada 6 warna berbeda, dan duplikat dapat digunakan.
Jadi misalnya, permainan mungkin berjalan sebagai berikut: (Dengan asumsi solusinya adalah Merah Hijau Hijau Biru)
1: Blue Purple Black Green - 2 white pegs
2: Green Red Black Blue - 2 white pegs, 1 red peg
3: Green Green Green Blue - 3 red pegs
4: Red Green Green Blue - 4 red pegs
Aturan diperluas di Wikipedia
Persyaratan
- Program harus membaca dari stdin, dan menulis ke stdout
- Saya akan menggunakan angka untuk kesederhanaan, bukan warna. Kombinasi untuk menebak adalah 4 angka antara 1 dan 6
Mereka harus menampilkan tebakan mereka sebagai serangkaian 4 angka yang dipisahkan oleh spasi dari 1 hingga 6 yang diakhiri dengan baris baru. Contohnya:
1 5 2 2 \ n
Program selanjutnya akan menerima input setelah tebakan 2 integer antara 0 dan 4 dipisahkan oleh spasi dan diakhiri dengan baris baru. Yang pertama adalah jumlah pasak putih, yang kedua jumlah pasak merah.
- Pada input "0 4" (4 pasak merah), program harus diakhiri
- Program harus mampu menyelesaikan puzzle apa pun dalam waktu kurang dari 6 putaran (program Anda memberikan output, diikuti oleh input respon adalah 1 putaran). Tidak ada bonus (karena kompleksitas pembuktian) karena dapat menyelesaikannya dalam waktu kurang.
- Solusinya harus sepenuhnya internal dan termasuk dalam sumber. Hanya Perpustakaan Standar yang diizinkan. Karena itu solusinya mungkin tidak bergantung pada file lain (seperti kamus), atau internet.
Contoh Input / Output
> is your programs output
< is the responding input
Solution is 1 5 6 6
> 1 2 3 4
< 0 1
> 4 1 6 6
< 1 2
> 1 6 5 6
< 2 2
> 1 5 6 6
< 0 4
Mencetak gol
- Ini adalah Golf Code yang murni dan sederhana . Solusi terpendek dalam byte menang.
Ini adalah pertanyaan Golf Code pertama saya. Saya minta maaf jika saya telah melakukan sesuatu yang salah, tetapi saya telah berusaha sebaik mungkin untuk memastikan bahwa sama sekali tidak ada ambiguitas, dan mencegah sebanyak mungkin peraturan yang mengatur hukum. Jika saya ambigu atau tidak jelas, jangan ragu untuk bertanya.
1 2 3 4kembali0 1?