Mi piacciono le sfide del gioco di carte, quindi l'ho realizzato per il gioco di carte italiano Scopa. La mia famiglia gioca a questo gioco da tempo immemorabile. Ha un sistema di punteggio molto interessante che dovrebbe essere divertente da giocare a golf. Invierò una risposta in R per iniziare il divertimento, che sono sicuro che le persone miglioreranno.
La sfida: capire il numero di punti segnati in un round di Scopa, date le carte che il giocatore ha catturato durante il round come input.
Ci sono 40 carte in un mazzo Scopa. Se stai usando un mazzo internazionale rimuovi 8, 9 e 10, lasciando A, 2,3,4,5,6,7, Q, J, K in ogni seme. 1 Ci sono due giocatori o due partenariati e, dopo ogni round, tutte le carte vengono catturate da uno o l'altro dei due giocatori. Il punteggio viene conteggiato come segue (maggiori informazioni qui ):
- Il giocatore con il maggior numero di carte ottiene 1 punto.
- Il giocatore con il maggior numero di diamanti (o monete se utilizza il mazzo italiano) ottiene 1 punto.
- Il giocatore con il 7 di diamanti (o monete), noto come il sette bello o bello sette, segna 1 punto.
- Il giocatore con la primaera più alta ottiene 1 punto. Il punteggio Primiera di un giocatore è la somma dei punteggi della carta di valore più alto che il giocatore ha catturato in ogni seme (vedere la tabella sotto). Se non hai almeno una carta in ogni seme, perdi per impostazione predefinita anche se il tuo punteggio supererebbe il punteggio del tuo avversario. Nel caso estremamente raro che nessuno dei due giocatori abbia almeno una carta in ogni seme, il giocatore con il totale di primiera più alto segna il punto. 2
Tabella dei punteggi dei primiera
| Rank | Value |
| ----- | ----- |
| 7 | 21 |
| 6 | 18 |
| A | 16 |
| 5 | 15 |
| 4 | 14 |
| 3 | 13 |
| 2 | 12 |
| Q,J,K | 10 |
Quindi un giocatore può segnare al massimo 4 punti in un round. 3 Se c'è un pareggio, che è possibile per carte, quadri o primiera , nessuno segna il punto.
È importante rendersi conto che poiché ogni carta deve essere catturata da uno dei due giocatori, puoi dedurre quali carte devono aver preso l'altro giocatore anche se sai solo quali carte sono state prese da un giocatore. Dovrai farlo per segnare correttamente i primiera .
Regole della sfida
Ingresso
Il tuo codice dovrebbe prendere come input le carte catturate da un singolo giocatore durante un round di Scopa.
L'input deve essere in formato stringa, in cui un personaggio rappresenta il rango di ogni carta e un personaggio il suo seme. Questo rimuove la potenziale scappatoia del passaggio deipunteggi dei primiera direttamente come input. La conversione dei ranghi delle carte inpunteggi primiera deve essere effettuata nel programma. Tuttavia, puoi scegliere di utilizzare una singola stringa separata da spazi o virgole, una matrice di stringhe o qualsiasi altro formato. Ad esempio, se si sceglie di codificare le classifiche come76A5432QJK
e si adatta comeDCHS
si potrebbe utilizzare input come['7D', '6H', 'QD', 'JS']
o'7D,6H,QD,JS'
.
Produzione
Un numero intero compreso tra 0 e 4 che rappresenta il punteggio del giocatore.
vincente
Vince la risposta più breve in byte!
Casi test
["7D", "6D", "AD", "5D", "4D", "3D", "2D", "QD", "7C", "6C", "4C", "3C", "2C", "7H", "4H", "2H", "5S", "3S", "QS", "JS", "KS"]
Segna 4 : 1 punto per> 20 carte, 1 punto per> 5 diamanti, 1 punto per il 7 di diamanti e 1 punto per segnare 78 in primiera (7,7,7,5 dove l'avversario ha 7,6,5, K per 64)
["3D", "7C", "6C", "AC", "5C", "4C", "3C", "2C", "QC", "4H", "7S"]
Punteggio 0 : <= 20 carte, <= 5 diamanti, n. 7 di diamanti e segna solo 69 in primiera (7,7,4,3 dove l'avversario ha 7,7,6, K per 70)
[7D", "6D", "AD", "5D", "4D", "3D", "2D", "7C", "6C", "AC", "5C", "4C", "3C", "2C", "7H", "6H", "AH", "5H", "4H", "3H", "2H"]
Punteggio 3 : 1 punto per> 20 carte, 1 punto per> 5 diamanti, 1 punto per 7 di diamanti. La primaera sarebbe 63 (7,7,7) e l'avversario può segnare solo 51 (7, Q, Q, Q) ma poiché questa mano non ha picche perde il punto di default.
["7D", "6D", "AD", "5D", "4D", "3D", "2D", "QD", "JD", "KD", "QC", "QH", "QS"]
Punteggio 3 : <= 20 carte, 1 punto per> 5 diamanti, 1 punto per 7 di diamanti. Il primoera segna solo 51 (7, Q, Q, Q) e l'avversario può segnare 63 (7,7,7) ma poiché la mano dell'avversario non ha diamanti questa mano vince il punto primiera per impostazione predefinita.
["7D", "6D", "AD", "5D", "4D", "3D", "2D", "QD", "JD", "KD", "7C", "7H"]
Punteggi 3 : <= 20 carte, 1 punto per> 5 diamanti, 1 punto per 7 di diamanti. Anche se questa mano non ha picche, vince comunque la primaera con un punteggio da 63 a 57 (7,7,7 contro 7,6,6) perché la mano dell'avversario non ha diamanti.
["7D", "6D", "AD", "5D", "4D", "3D", "2D", "QD", "JD", "KD", "QC", "QH"]
Punteggio 2 : <= 20 carte, 1 punto per> 5 diamanti, 1 punto per 7 di diamanti. Questa mano non ha picche e la mano dell'avversario non ha diamanti. L'avversario vince i primiera con un punteggio da 63 a 41 (7,7,7 contro 7, Q, Q).
[]
(matrice vuota)
Punteggi 0
1: Almeno nella nostra famiglia, Jack supera la Regina a Scopa ma questo è irrilevante ai fini del punteggio.
2: Gioco a questo gioco fin dall'infanzia e non l'ho mai visto accadere, ma è meglio che il tuo codice sia in grado di gestire quel caso!
3: Ci sono punti bonus per gli "sweep" segnati durante il round che sto ignorando ai fini di questa sfida.