Betrachten Sie diese 15 ASCII- Spielkartenmuster (Ass durch Joker und Rückseite), in denen X
sich ein Platzhalter für das Anzugsymbol befindet : (Sie sehen besser aus, wenn der Zeilenabstand geringer ist.)
------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- -------------
|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| |* * * * * * *|
------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- -------------
Schreiben Sie ein Programm, das eine Zeichenfolge enthält, die eine durch Leerzeichen getrennte Folge von Karten angibt, indem Sie ...
A 2 3 4 5 6 7 8 9 10 J Q K
gefolgt von einem vonC D H S
(für Kreuz, Karo, Herz und Pik) für die 52 Standardkarten.- Eine Single
R
für einen Joker. - Eine Single
B
für die Rückseite (eine verdeckte Karte).
Die Saite B AS KH 10C R JD
bezeichnet also eine verdeckte Karte, gefolgt von einem Pik-Ass, gefolgt von einem Herzkönig, gefolgt von zehn Keulen, gefolgt von einem Joker, gefolgt von einem Diamantenbuben.
Ihr Programm muss die entsprechenden ASCII-Spielkarten auf stdout drucken und durch das entsprechende Farbsymbol ersetzen X
.
Beispielsweise B AS KH 10C R JD
wäre die Ausgabe für
------------- ------------- ------------- ------------- ------------- -------------
|* * * * * * *| |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|
------------- ------------- ------------- ------------- ------------- -------------
Sie können die Eingabe von stdin übernehmen oder eine Funktion schreiben, die eine Zeichenfolge akzeptiert.
Die Einsendung mit der kürzesten Anzahl von Zeichen gewinnt.
Bonus: Subtrahieren Sie 30 von Ihrer Zeichenanzahl, wenn Sie die schwarzen Unicode-Anzugsymbole ♣ ♦ ♥ ♠
anstelle C D H S
Ihrer Ausgabe verwenden. (Die Eingabe wird immer verwendet C D H S
.)
Anmerkungen
- Es können mehr als 54 Karten in der Eingabezeichenfolge vorhanden sein, und von jeder Karte können Duplikate vorhanden sein.
- Es sollte keine Ausgabe erfolgen, wenn die Eingabe eine leere Zeichenfolge ist.
- Neben (optional) den beiden nachgestellten Leerzeichen, die die rechten Ecken der letzten Karte bilden, sollten keine Leerzeichen stehen.
- Sie können davon ausgehen, dass die Eingabe gültig ist.
- Update: Das Etikett rechts unten auf Standardkarten wurde vertauscht, sodass der Wert in der Ecke steht. Das Joker-Label unten rechts hat sich nicht geändert.
quelle
Antworten:
JavaScript (E6) 542 (572 - Bonus 30)
553 564 5763 Arten von Formen:
Der
z
String (komprimiert) enthält die Grundbausteine fürBonusnote Der Code für den Gewinn des 30-Punkte-Bonus beträgt 29 Zeichen.
Test In FireFox / Firebug - Konsole
Ausgabe
Nicht Golf Code
quelle
C # - 906
Eher großes und einfaches C # -Programm, das Ein- und Ausgaben über die Befehlszeile in die Standardausgabe umwandelt. Es gibt wahrscheinlich noch viel zu golfen, ich habe beim Schreiben ein paar langweilige Bytes entdeckt, aber das muss warten. Ich glaube nicht, dass ich mich für den Unicode-Bonus entscheiden werde.
Golf Code:
Beispielausgabe für
cardGolf.exe 7H QH 3S B R
Der Großteil des Renderns erfolgt mit der
P
anonymen Methode, die eine Position, Länge, Zeichenfolge und Breite annimmt und ein Rechteck der Zeichenfolge Ende an Ende rendert. Zum Beispiel wird die Rückseite der Karte nur"* "
wiederholt. DieT
anonyme Methode ist eine modifizierte Version von einer, die ich für eine vorherige Aufgabe verwendet habe und die viele Rechtecke rendert. Es ist jedoch ziemlich sperrig und erlaubt mir nur, die Ränder und den Hintergrund in weniger Bytes zu rendern, was es wahrscheinlich nicht wert ist. Ein gestreifter abgespeckte Version vonT
heißt ,W
die Zellen eher als Rechtecke darstellt, und wird auch nicht verwendet, sondern eine inlined Version davon verwendet wird , Karten von Wert 2 bis 10. Hinweis zu machen , dass nicht verwendete Code war Für die Anzahl der Bytes entfernt, lasse ich es in, weil ich es letztendlich verwenden kann, und ich benutze sie zum Testen.Das Programm durchläuft einfach jede Ausgabezeile (13 davon) und rendert dann jede Karte der Reihe nach. Anschließend extrahiert es 1 Slice daraus, sodass jede Karte 13 Mal vollständig gerendert wird. Zum Zwecke der Beabstandung wird jede Karte als 16 x 13-Block behandelt, und ich schneide jede Ausgabezeile ab, um nachgestellte Leerzeichen zu entfernen (die Eckabstände werden entfernt).
Formatierter Code mit Kommentaren und Konzept- / Testcode:
quelle
PowerShell , Ergebnis 442 = (
509495472 Bytes = (156 Skript + 316 Archiv) - 30 Bonus)Probieren Sie es online!
Abgerollt:
Powershell-Skript zum Erstellen des Tar-Archivs
t
(siehe TIO):quelle