La partita di Sevens si gioca come segue: i n
giocatori si siedono in cerchio e iniziano a contare da 1, passando a sinistra (o da giocatore A
a giocatore B
).
Quando viene raggiunto un numero p
che ha un 7
OR o divisibile per, 7
viene raggiunto il giocatore che ha pronunciato il numero p-1
, dopo il giocatore successivo p
, p+1
e l'ordine delle persone che parlano si inverte. Ad esempio, se il giocatore B
parla 6
, il giocatore C
dice 7
, B
dice 8
e il giocatore A
dice 9
.
Nota: per coloro che vogliono giocare nella vita reale, se una persona dimentica un numero (o nella versione in cui sevens
non viene detto, dice accidentalmente a seven
), vengono eliminati dal cerchio, ma ometteremo questo dettaglio da questa sfida.
La sfida stessa è quella di stampare i numeri che ogni giocatore dovrebbe dire in un gioco perfetto di Sevens fino a un input m
per un n
giocatore di input .
A titolo di esempio, in cui cinque persone, A
, B
, C
, D
, e E
, sono a giocare fino a raggiungere 30
. Suonano in questo modo
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
dove sevens
sono contrassegnati con *
. Nota che su 27
e 28
, stiamo invertendo due volte, e il gioco continua "normalmente" da D
a E
.
Si noti che l'output non deve essere nel formato sopra. L'ho semplicemente stampato in questo modo per un po 'di chiarezza.
Regole
L'input è di due numeri interi in qualsiasi ordine, che
m
rappresenta l'ultimo numero da dire, chen
rappresenta il numero di giocatori.L'output può essere costituito da più array o più stringhe, una per ciascun giocatore. Se si utilizzano stringhe, non è necessario utilizzare separatori (tuttavia, se è possibile aggiungerne alcuni nei test del codice, apprezzeremmo la leggibilità). Se riesci effettivamente a stamparli in un cerchio in qualche modo, anche questo è accettabile, e sarebbe anche abbastanza bello.
L'output non deve indicare quali giocatori sono quali (è abbastanza ovvio che il primo giocatore è quello che dice
1
), anche se se l'output non è ordinato per qualsiasi motivo, dovresti chiarire quale giocatore sta parlando quale set di numeri . Omettere giocatori che non dicono nulla è consentito anche se si chiarisce quali giocatori stanno parlando. Aggiungerò altri esempi di possibili uscite di seguito.Questo è il codice golf, quindi vince il minor numero di byte.
Come sempre, se il problema non è chiaro, per favore fatemi sapere. Buona fortuna e buon golf!
Esempi
>>> 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
.) Non sto dicendo che sia migliore o peggiore in termini di sfida: solo che sarebbe più utile nel mondo reale.