Hai deciso di organizzare un campionato di rock-paper-scissors per scoprire chi è il migliore. Non vuoi lasciare la fortuna a decidere il vincitore, quindi tutti devono darti la loro tattica per iscritto prima della competizione. Ti piacciono anche le cose semplici, quindi una mossa di un concorrente (che mostra roccia, carta o forbici) deve essere basata solo sul turno precedente (RvR, RvP, RvS, PvR, PvP, PvS, SvR, SvP o SvS). Nel primo turno un giocatore deve mostrare un segno fisso.
Hai deciso di scrivere un programma (o una funzione) per simulare il campionato.
Dettagli della competizione
- Ci saranno almeno 2 concorrenti.
- Ogni giocatore gioca esattamente una partita con tutti gli altri.
- Una partita dura 7 round.
- In ogni round il vincitore ottiene 2 punti, il perdente non ne ottiene nessuno. In caso di pareggio entrambi i giocatori segnano 1 punto.
- Il punteggio di un giocatore in una partita è la somma dei suoi punti durante i turni della partita.
- Il punteggio finale di un giocatore nel campionato è la somma dei suoi punti in tutte le partite.
Dettagli dell'input:
- il tuo programma o funzione riceve
N
10 stringhe lunghe di caratteri ciascuna corrispondente a una strategia del giocatore. Tutti i personaggi sono (minuscoli)r
p
os
significano che nella situazione data il giocatore mostrerà carta rock o forbici. - La prima lettera codifica il primo turno (in ogni partita per quel concorrente). Il secondo mostra cosa succede se l'ultimo round è stato rock vs rock. I prossimi sono RvP, RvS, PvR, PvP, PvS, SvR, SvP e SvS dove la prima lettera è il segno del giocatore e la seconda è quella dell'avversario. Ad esempio
rrpsrpsrps
, il giocatore inizia con il rock e quindi copia l'ultima mossa dell'avversario. - È possibile inserire l'elenco di stringhe come un elenco / array o dati simili della propria lingua o come una stringa. In quest'ultimo caso, una sorta di carattere separatore è d'obbligo.
Dettagli dell'output:
- Il tuo programma o funzione dovrebbe generare i punteggi finali di ciascun giocatore nello stesso ordine in cui è stato fornito l'input.
- I punteggi devono essere separati da spazi o righe. Spazio finale o newline consentito.
Esempi:
Ingresso:
['rrpsrpsrps', 'rpppsprrpr']
Uscita:
5 9
(i giri sono rvr rvp pvs svp pvr rvp pvs
)
Ingresso:
['rrpsrpsrps', 'rpppsprrpr', 'ssssssssss']
Output:
13 17 12
(le partite sono 5-9
(1 ° vs 2 °), 8-6
(1 ° vs 3 °) e 8-6
(2 ° vs 3 °))
Questo è code-golf, quindi vince l'ingresso più breve.
6-8
e il secondo perda contro il 3 ° con 6-8
.