Sie haben beschlossen, eine Stein-Papier-Scheren- Meisterschaft zu organisieren, um herauszufinden, wer der Beste ist. Sie möchten nicht das Glück haben, den Gewinner zu bestimmen, daher muss jeder Ihnen seine Taktik vor dem Wettbewerb schriftlich mitteilen. Sie mögen auch einfache Dinge, so dass eine Bewegung eines Konkurrenten (mit Stein, Papier oder Schere) nur auf der vorherigen Runde basieren muss (RvR, RvP, RvS, PvR, PvP, PvS, SvR, SvP oder SvS). In der ersten Runde muss ein Spieler ein festes Zeichen zeigen.
Sie haben beschlossen, ein Programm (oder eine Funktion) zu schreiben, um die Meisterschaft zu simulieren.
Details des Wettbewerbs
- Es werden mindestens 2 Teilnehmer sein.
- Jeder Spieler spielt genau ein Match mit allen anderen.
- Ein Match dauert 7 Runden.
- In jeder Runde erhält der Gewinner 2 Punkte, der Verlierer keine. Bei einem Unentschieden erhalten beide Spieler 1 Punkt.
- Die Punktzahl eines Spielers in einem Spiel ist die Summe seiner Punkte über die Runden des Spiels.
- Das Endergebnis eines Spielers in der Meisterschaft ist die Summe seiner Punkte über alle Spiele.
Details der Eingabe:
- Ihr Programm oder Ihre Funktion erhält
N
10 Zeichen lange Zeichenfolgen, von denen jede einer Spielerstrategie entspricht. Alle Zeichen sind (Kleinbuchstaben)r
p
oders
bedeuten, dass der Spieler in der gegebenen Situation Steinpapier oder eine Schere zeigt. - Der erste Buchstabe kodiert die erste Runde (in jedem Spiel für diesen Teilnehmer). Die zweite zeigt, was passiert, wenn die letzte Runde Rock gegen Rock war. Die nächsten sind RvP, RvS, PvR, PvP, PvS, SvR, SvP und SvS, wobei der erste Buchstabe das Zeichen des Spielers und der zweite das Zeichen des Gegners ist. ZB
rrpsrpsrps
bedeutet, dass der Spieler mit Stein beginnt und dann den letzten Zug des Gegners kopiert. - Sie können die Liste der Zeichenfolgen als Liste / Array oder ähnliche Daten Ihrer Sprache oder als eine Zeichenfolge eingeben. Im letzteren Fall ist eine Art Trennzeichen ein Muss.
Details der Ausgabe:
- Ihr Programm oder Ihre Funktion sollte die Endergebnisse jedes Spielers in derselben Reihenfolge ausgeben, in der die Eingabe geliefert wurde.
- Scores sollten durch Leerzeichen oder Zeilenumbrüche getrennt werden. Leerzeichen oder Zeilenumbrüche sind zulässig.
Beispiele:
Eingang:
['rrpsrpsrps', 'rpppsprrpr']
Ausgabe:
5 9
(Umdrehungen sind rvr rvp pvs svp pvr rvp pvs
)
Eingang:
['rrpsrpsrps', 'rpppsprrpr', 'ssssssssss']
Ausgabe:
13 17 12
(Übereinstimmungen sind 5-9
(1. gegen 2.), 8-6
(1. gegen 3.) und 8-6
(2. gegen 3.))
Dies ist Code-Golf, also gewinnt der kürzeste Eintrag.
6-8
und der zweite verliert gegen den dritten mit 6-8
.