Considera questi 15 schemi di carte da gioco ASCII (asso attraverso Joker e il lato posteriore), dove Xè presente un segnaposto per il simbolo del seme : (hanno un aspetto migliore con meno spazio tra le linee)
------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- -------------
|AX | |2X | |3X | |4X | |5X | |6X | |7X | |8X | |9X | |10X | |JX | |QX | |KX | |J | |* * * * * * *|
| ------- | | ------- | | ------- | | ------- | | ------- | | ------- | | ------- | | ------- | | ------- | | ------- | | ------- | | ------- | | ------- | |O ------- | | * * * * * * |
| | | | | | | | | | | | | |X X| | | |X X| | | |X X| | | |X X| | | |X X| | | |X X| | | |X X| | | |X | | | |X | | | |X | | |K | | | |* * * * * * *|
| | | | | | X | | | | X | | | | | | | | | | | | | | | | X | | | | X | | | | | | | | X | | | | | | | | | | | | | | |E | J | | | * * * * * * |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |X X| | | |X X| | | | | | | | | | | | | | |R | O | | |* * * * * * *|
| | X | | | | | | | | X | | | | | | | | X | | | |X X| | | |X X| | | |X X| | | | X | | | | | | | | J | | | | Q | | | | K | | | | K | | | * * * * * * |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |X X| | | |X X| | | | | | | | | | | | | | | | E | J| |* * * * * * *|
| | | | | | X | | | | X | | | | | | | | | | | | | | | | | | | | X | | | | | | | | X | | | | | | | | | | | | | | | | R | O| | * * * * * * |
| | | | | | | | | | | | | |X X| | | |X X| | | |X X| | | |X X| | | |X X| | | |X X| | | |X X| | | | X| | | | X| | | | X| | | | | K| |* * * * * * *|
| ------- | | ------- | | ------- | | ------- | | ------- | | ------- | | ------- | | ------- | | ------- | | ------- | | ------- | | ------- | | ------- | | ------- E| | * * * * * * |
| XA| | X2| | X3| | X4| | X5| | X6| | X7| | X8| | X9| | X10| | XJ| | XQ| | XK| | R| |* * * * * * *|
------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- -------------
Scrivi un programma che contiene una stringa che indica una sequenza di carte separata da spazi usando ...
A 2 3 4 5 6 7 8 9 10 J Q Kseguito da uno deiC D H S(per fiori, quadri, cuori e picche) per le 52 carte standard.- Un singolo
Rper un Joker. - Un singolo
Bper il lato posteriore (una carta coperta).
Quindi la stringa B AS KH 10C R JDindica una carta coperta, seguita da un asso di picche, seguito da un re di cuori, seguito da una decina di fiori, seguito da un Joker, seguito da un jack di quadri.
Il tuo programma deve stampare le corrispondenti carte da gioco ASCII su stdout, sostituendole Xcon il simbolo del seme appropriato.
Ad esempio, l'output per B AS KH 10C R JDsarebbe
------------- ------------- ------------- ------------- ------------- -------------
|* * * * * * *| |AS | |KH | |10C | |J | |JD |
| * * * * * * | | ------- | | ------- | | ------- | |O ------- | | ------- |
|* * * * * * *| | | | | | |H | | | |C C| | |K | | | | |D | |
| * * * * * * | | | | | | | | | | | C | | |E | J | | | | | |
|* * * * * * *| | | | | | | | | | |C C| | |R | O | | | | | |
| * * * * * * | | | S | | | | K | | | | | | | | K | | | | J | |
|* * * * * * *| | | | | | | | | | |C C| | | | E | J| | | | |
| * * * * * * | | | | | | | | | | | C | | | | R | O| | | | |
|* * * * * * *| | | | | | | H| | | |C C| | | | | K| | | D| |
| * * * * * * | | ------- | | ------- | | ------- | | ------- E| | ------- |
|* * * * * * *| | SA| | HK| | C10| | R| | DJ|
------------- ------------- ------------- ------------- ------------- -------------
Puoi prendere l'input da stdin o scrivere una funzione che accetta una stringa.
Vince l'invio con il minor numero di personaggi.
Bonus: sottrai 30 dal conteggio dei personaggi se usi i simboli del seme Unicode nero ♣ ♦ ♥ ♠invece che C D H Snell'output. (L'input utilizza sempre C D H S.)
Appunti
- Ci possono essere più di 54 carte nella stringa di input e possono esserci duplicati di qualsiasi carta.
- Non dovrebbe esserci output se l'input è la stringa vuota.
- Non ci dovrebbero essere spazi finali oltre (facoltativamente) i due che compongono gli angoli giusti dell'ultima carta.
- Si può presumere che l'input sia valido.
- Aggiornamento: l'etichetta in basso a destra sulle carte standard è stata invertita, quindi il valore è nell'angolo. L'etichetta Joker in basso a destra non è cambiata.