Le jeu de Sevens se joue comme suit: les n
joueurs s'assoient en cercle, et commencent à compter à partir de 1, en passant à gauche (ou de joueur A
à joueur B
).
Lorsqu'un nombre p
qui contient un 7
OU est divisible par 7
est atteint, alors le joueur qui a prononcé le nombre p-1
, après que le joueur suivant a dit p
, doit dire p+1
et l'ordre des personnes qui parlent s'inverse. Par exemple, si le joueur B
parle 6
, le joueur C
dit 7
, B
dit 8
et le joueur A
dit 9
.
Remarque: Pour ceux qui veulent jouer dans la vraie vie, si une personne oublie un numéro (ou dans la version où sevens
ne sont pas dit, dit accidentellement seven
), ils sont éliminés du cercle, mais nous allons omettre ce détail de ce défi.
Le défi lui-même est d'imprimer les nombres que chaque joueur devrait dire dans un jeu parfait de Sevens jusqu'à une entrée m
pour une entrée des n
joueurs.
À titre d'exemple, où cinq personnes, A
, B
, C
, D
et E
, sont appelés à jouer jusqu'à ce qu'ils atteignent30
. Ils jouent de cette manière
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
où sevens
sont marqués *
. Notez que à 27
et 28
, nous inversons deux fois, et le jeu continue "comme d'habitude" de D
à E
.
Veuillez noter que la sortie ne doit pas nécessairement être au format ci-dessus. Je l'ai simplement imprimé de cette façon pour plus de clarté.
Règles
L'entrée est deux entiers dans n'importe quel ordre,
m
représentant le dernier nombre à dire,n
représentant le nombre de joueurs.La sortie peut être plusieurs tableaux ou plusieurs chaînes, une pour chaque joueur. Si vous utilisez des chaînes, vous n'avez pas besoin d'utiliser de séparateurs (cependant, si vous pouviez en ajouter dans vos tests de code, nous apprécierions la lisibilité). Si vous pouvez les imprimer dans un cercle d'une manière ou d'une autre, cela est également acceptable, et ce serait plutôt cool aussi.
La sortie n'a pas à désigner quels joueurs sont lesquels (il est assez évident que le premier joueur est celui qui dit
1
), bien que si la sortie n'est pas triée pour une raison quelconque, vous devez préciser quel joueur parle quel ensemble de nombres . L'omission de joueurs qui ne disent rien est également autorisée si vous précisez quels joueurs parlent. J'ajouterai plus d'exemples de sorties possibles ci-dessous.C'est le golf de code, donc le plus petit nombre d'octets gagne.
Comme toujours, si le problème n'est pas clair, faites-le moi savoir. Bonne chance et bon golf!
Exemples
>>> 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
.) Je ne dis pas que c'est mieux ou pire en termes de défi: juste que ce serait plus utile dans le monde réel.