La partita di Sevens si gioca come segue: i ngiocatori si siedono in cerchio e iniziano a contare da 1, passando a sinistra (o da giocatore Aa giocatore B).
Quando viene raggiunto un numero pche ha un 7OR o divisibile per, 7viene raggiunto il giocatore che ha pronunciato il numero p-1, dopo il giocatore successivo p, p+1e l'ordine delle persone che parlano si inverte. Ad esempio, se il giocatore Bparla 6, il giocatore Cdice 7, Bdice 8e il giocatore Adice 9.
Nota: per coloro che vogliono giocare nella vita reale, se una persona dimentica un numero (o nella versione in cui sevensnon 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 mper un ngiocatore 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 sevenssono contrassegnati con *. Nota che su 27e 28, stiamo invertendo due volte, e il gioco continua "normalmente" da Da 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
mrappresenta l'ultimo numero da dire, chenrappresenta 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.