Permainan Sevens dimainkan sebagai berikut: n
pemain duduk melingkar, dan mulai menghitung mulai dari 1, melewati ke kiri (atau dari pemain A
ke pemain B
).
Ketika angka p
yang memiliki 7
ATAU dapat dibagi dengan 7
tercapai, maka pemain yang berbicara nomor p-1
, setelah pemain berikutnya mengatakan p
, harus mengatakan p+1
dan urutan orang yang berbicara terbalik. Misalnya, jika pemain B
berbicara 6
, pemain C
mengatakan 7
, B
mengatakan 8
, dan pemain A
mengatakan 9
.
Catatan: Bagi mereka yang ingin bermain dalam kehidupan nyata, jika seseorang lupa nomor (atau dalam versi sevens
yang tidak disebutkan, secara tidak sengaja mengatakan a seven
), mereka dihilangkan dari lingkaran, tetapi kami akan menghilangkan detail ini dari tantangan ini.
Tantangannya sendiri adalah mencetak angka yang harus diucapkan oleh setiap pemain dalam permainan Sevens yang sempurna hingga input m
untuk n
pemain input .
Sebagai contoh, di mana lima orang, A
, B
, C
, D
, dan E
, yang bermain sampai mereka mencapai 30
. Mereka bermain dengan cara ini
A: 1 6 8 13 15 19 23 30
B: 2 7* 12 16 18 24
C: 3 11 17* 25
D: 4 10 21* 26 28*
E: 5 9 14* 20 22 27*29
dimana sevens
ditandai dengan *
. Perhatikan bahwa pada 27
dan 28
, kami membalik dua kali, dan permainan berlanjut "seperti biasa" dari D
ke E
.
Harap dicatat bahwa output tidak harus dalam format di atas. Saya hanya mencetaknya seperti itu untuk kejelasan.
Aturan
Input adalah dua bilangan bulat dalam urutan apa pun,
m
mewakili angka terakhir untuk diucapkan,n
mewakili jumlah pemain.Output dapat berupa beberapa array atau beberapa string, satu untuk setiap pemain. Jika Anda menggunakan string, Anda tidak harus menggunakan pemisah (meskipun, jika Anda bisa menambahkan beberapa dalam tes kode Anda, kami sangat menghargai keterbacaan). Jika Anda benar-benar dapat mencetaknya dalam lingkaran, itu juga dapat diterima, dan itu akan sangat keren juga.
Output tidak harus menentukan pemain mana yang (cukup jelas bahwa pemain pertama adalah yang mengatakan
1
), meskipun jika output tidak diurutkan untuk alasan apa pun, Anda harus memperjelas pemain mana yang berbicara set angka yang mana . Menghilangkan pemain yang tidak mengatakan apa-apa juga diperbolehkan jika Anda memperjelas pemain mana yang berbicara. Saya akan menambahkan beberapa contoh lagi kemungkinan keluaran di bawah ini.Ini adalah kode golf, sehingga jumlah byte terkecil menang.
Seperti biasa, jika masalahnya tidak jelas, beri tahu saya. Semoga berhasil dan bermain golf dengan baik!
Contohnya
>>> sevens_string(30, 5, " ")
'1 6 8 13 15 19 23 30'
'2 7 12 16 18 24'
'3 11 17 25'
'4 10 21 26 28'
'5 9 14 20 22 27 29'
>>> sevens_string(42, 5)
'16813151923303539'
'27121618243140'
'31117253241'
'410212628333742'
'591420222729343638'
>>> sevens_array(20, 3)
[1, 4, 7, 10, 13, 15, 19]
[2, 5, 9, 12, 16, 18]
[3, 6, 8, 11, 14, 17, 20]
>>> sevens_array(18, 10)
[1, 13, 15]
[2, 12, 16, 18]
[3, 11, 17]
[4, 10]
[5, 9]
[6, 8]
[7]
[]
[]
[14]
1 2 3 4 1 2 3 2 1 4 3 2 1 4 1
). Saya tidak mengatakan itu lebih baik atau lebih buruk dalam hal dia menantang: hanya saja itu akan lebih berguna di dunia nyata.