Le jeu de Sevens se joue comme suit: les njoueurs s'assoient en cercle, et commencent à compter à partir de 1, en passant à gauche (ou de joueur Aà joueur B).
Lorsqu'un nombre pqui contient un 7OU est divisible par 7est atteint, alors le joueur qui a prononcé le nombre p-1, après que le joueur suivant a dit p, doit dire p+1et l'ordre des personnes qui parlent s'inverse. Par exemple, si le joueur Bparle 6, le joueur Cdit 7, Bdit 8et le joueur Adit 9.
Remarque: Pour ceux qui veulent jouer dans la vraie vie, si une personne oublie un numéro (ou dans la version où sevensne 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 njoueurs.
À titre d'exemple, où cinq personnes, A, B, C, Det 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ù sevenssont marqués *. Notez que à 27et 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,
mreprésentant le dernier nombre à dire,nrepré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.