O jogo de Sevens é jogado da seguinte forma: os n
jogadores sentam em círculo e começam a contar a partir de 1, passando para a esquerda (ou de jogador A
para jogador B
).
Quando um número p
que tem um 7
OU é divisível por, 7
é atingido, o jogador que falou o número p-1
, depois que o próximo jogador diz p
, deve dizer p+1
e a ordem das pessoas que fala está invertida. Por exemplo, se o jogador B
fala 6
, o jogador C
diz 7
, B
diz 8
e o jogador A
diz 9
.
Nota: Para aqueles que querem jogar na vida real, se uma pessoa esquecer um número (ou na versão em que sevens
não se diz, acidentalmente diz a seven
), eles serão eliminados do círculo, mas omitiremos esse detalhe desse desafio.
O desafio em si é imprimir quais números cada jogador deve dizer em um jogo perfeito de Sevens até uma entrada m
para n
jogadores de entrada .
Como um exemplo, onde cinco pessoas, A
, B
, C
, D
, e E
, se jogar até chegarem 30
. Eles jogam dessa maneira
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
onde sevens
estão marcados com *
. Observe que em 27
e 28
, estamos invertendo duas vezes, e o jogo continua "normalmente" de D
para E
.
Observe que a saída não precisa estar no formato acima. Simplesmente imprimi dessa maneira para ter mais clareza.
Regras
A entrada é dois números inteiros em qualquer ordem,
m
representando o último número a dizer,n
representando o número de jogadores.A saída pode ser de várias matrizes ou várias strings, uma para cada jogador. Se você usa strings, não precisa usar separadores (no entanto, se você puder adicionar alguns em seus testes de código, agradecemos a legibilidade). Se você realmente puder imprimi-los em um círculo de alguma forma, isso também é aceitável e seria muito legal também.
A saída não precisa designar quais jogadores são (é óbvio que o primeiro jogador é quem diz
1
), embora se a saída não for classificada por qualquer motivo, você deve deixar claro qual jogador está falando qual conjunto de números . Omitir jogadores que não dizem nada também é permitido se você deixar claro quais jogadores estão falando. Vou adicionar mais alguns exemplos de possíveis resultados abaixo.Esse é o código golf, portanto o menor número de bytes vence.
Como sempre, se o problema não estiver claro, entre em contato. Boa sorte e bom golfe!
Exemplos
>>> 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
.) Não estou dizendo que isso seja melhor ou pior em termos de desafio: ele apenas seria mais útil no mundo real.