Das Spiel von Sevens wird wie folgt gespielt: Die nSpieler sitzen in einem Kreis und zählen von 1 nach links (oder von Spieler Azu Spieler B).
Wenn eine Zahl erreicht ist p, die ein 7ODER enthält, das durch teilbar 7ist, muss der Spieler, der die Nummer gesprochen hat p-1, nach dem nächsten Spieler psagen, p+1und die Reihenfolge der sprechenden Personen wird umgekehrt. Zum Beispiel, wenn der Spieler Bspricht 6, Csagt der Spieler 7, Bsagt 8und Asagt der Spieler 9.
Hinweis: Wenn eine Person eine Zahl vergisst (oder in der Version, in der sevensnicht gesagt wird, versehentlich a seven), werden sie aus dem Kreis gestrichen, aber wir werden dieses Detail bei dieser Herausforderung weglassen.
Die Herausforderung selbst besteht darin, die Zahlen zu drucken, die jeder Spieler in einem perfekten Sevens-Spiel sagen sollte, bis eine Eingabe mfür eine Eingabe erfolgtn .
Als ein Beispiel, in dem fünf Menschen, A, B, C, D, und Esind zu spielen , bis sie erreichen 30. Sie spielen auf diese Weise
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
wo sevenssind mit gekennzeichnet *. Beachten Sie, dass bei 27und 28, wir Umkehr zweimal, und das Spiel geht weiter „normal“ aus Dzu E.
Bitte beachten Sie, dass die Ausgabe nicht im obigen Format erfolgen muss. Ich habe es aus Gründen der Klarheit einfach so ausgedruckt.
Regeln
Die Eingabe besteht aus zwei Ganzzahlen in beliebiger Reihenfolge,
mdie die letzte zu sagendenZahl darstellen und die Anzahl der Spieler darstellen.Die Ausgabe kann aus mehreren Arrays oder mehreren Zeichenfolgen bestehen, eine für jeden Player. Wenn Sie Zeichenfolgen verwenden, müssen Sie keine Trennzeichen verwenden (wenn Sie jedoch einige in Ihren Codetests hinzufügen könnten, wären wir für die Lesbarkeit dankbar). Wenn man sie tatsächlich irgendwie im Kreis drucken kann, ist das auch akzeptabel, und es wäre auch ziemlich cool.
Die Ausgabe muss nicht angeben, welche Spieler welche sind (es ist ziemlich offensichtlich, dass der erste Spieler derjenige ist, der sagt
1). Wenn die Ausgabe jedoch aus irgendeinem Grund nicht sortiert ist, sollten Sie klarstellen, welcher Spieler welchen Satz von Zahlen spricht . Das Weglassen von Spielern, die nichts sagen, ist auch zulässig, wenn Sie klar machen, welche Spieler sprechen. Ich werde im Folgenden einige weitere Beispiele für mögliche Ausgaben hinzufügen.Das ist Codegolf, also gewinnt die kleinste Anzahl von Bytes.
Wie immer, wenn das Problem unklar ist, lassen Sie es mich bitte wissen. Viel Glück und gutes Golfen!
Beispiele
>>> 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.) Ich sage nicht, dass das in Bezug auf die Herausforderung besser oder schlechter ist: Nur, dass es in der realen Welt nützlicher wäre.