Saya menyaksikan kejuaraan snooker dunia dan itu membuat saya bertanya-tanya ..
Snooker mencetak gol
Dalam permainan snooker ada beberapa aturan yang harus Anda patuhi juga:
- Ketika ada bola merah di atas meja, selama giliran Anda, Anda harus terlebih dahulu memasang bola merah
- Setelah pot setiap bola merah, Anda harus pot bola berwarna (bukan merah) (bola berwarna pot kemudian diganti ke atas meja)
- Setelah semua bola merah naik (ada 15), pertama Anda dapat memilih bola berwarna dan kemudian Anda mulai dengan bola skor terendah dan bekerja sampai bola skor tertinggi (ini tidak diganti)
- Tidak pot pada titik mana pun mengakhiri giliran Anda.
- Poin per bola
- Bola merah: 1 poin
- Bola kuning: 2 poin
- Bola hijau: 3 poin
- Bola coklat: 4 poin
- Bola biru: 5 poin
- Bola merah muda: 6 poin
- Bola hitam: 7 poin
Pertanyaan
Anda mulai dengan sebuah meja dengan semua bola masih di atasnya - 15 merah dan satu dari masing-masing bola berwarna lainnya - dan diberi skor pemain di snooker setelah giliran pertama mereka, apa cara yang bisa mereka lakukan untuk mencapai ini skor?
Input akan berupa skor dari 1 hingga 147. Anda dapat memilih apakah bilangan bulat atau string. Output harus berupa kombinasi yang berbeda dari berapa kali Anda menempatkan setiap bola.
Kasus uji:
Input: 4
Output:
1r 1g
2r 1y
Input: 25
Output:
4r 3b
5r 2b 1br 1y
5r 2b 2g
...
9r 8y
Aturan:
- Anda dapat memilih apakah Anda menampilkan kemungkinan yang dibagi dengan baris baru atau pemisah semacam (/,; | | atau bahkan yang lain yang saya lewatkan)
Ini codegolf, jadi kode terpendek menang.
"5r 3b 2g"bisa menjadi output [5,0,2,0,3,0,0](selama ini konsisten)?
buntuk cokelat dan blbiru; jadi bkuntuk hitam? Bisakah kita menggunakan n, edan k(huruf terakhir) untuk ketiganya? Bagaimana dlerunamengidentifikasi delapan warna (masing-masing 3 huruf)?