Es ist Freitag und ich bin müde, also lass uns schnell einen machen! Nehmen Sie keine Eingabe vor, aber Sie sollten alle dreizehn Karten mit unterschiedlichen Nummern in einem Standardkartenstapel ausgeben. Sie sollten 2 durch Ace (Suit Agnostic) ausgeben.
Jede Karte hat eine Oberseite, die mit einem Feld
und zehn _
und einem anderen Feld gekennzeichnet ist
.
Die zweite Reihe von oben ist mit a /
und zehn Leerzeichen
und a gekennzeichnet\
Die dritte Zeile ist identisch mit allen mittleren Zeilen, außer dass die Zeichen, die den Kartenwert angeben, zwei Leerzeichen rechts (oben) oder zwei Leerzeichen links (unten) am Rand erscheinen.
Jede mittelgroße Reihe ist eine einfache |
und zehn Leerzeichen
und ein weiteres|
Schließlich ist die letzte Zeile a \
und zehn _
und schließlich a/
Wenn der Wert mehrstellig ist, sollte sich die Gesamtbreite nach Höhe der Karte nicht ändern. (dh die 10 macht die Kartenseiten nicht breiter)
König Beispiel:
__________
/ \
| K |
| |
| |
| |
| |
| |
| K |
\__________/
9 Beispiel
__________
/ \
| 9 |
| |
| |
| |
| |
| |
| 9 |
\__________/
10 Beispiel
__________
/ \
| 10 |
| |
| |
| |
| |
| |
| 10 |
\__________/
Gib sie in der Reihenfolge vom kleinsten zum größten aus (Asse sind hoch!).
Das ist Code-Golf, also gewinnt der kürzeste Code.
Viel Spaß und ein schönes Wochenende!
quelle
Antworten:
PowerShell v2 +,
120116114108 ByteErstellt einen Bereich
2..10
und führt die Array-Verkettung mitchar
-array durchJQKA
. Füttert das in eine Schleife|%{...}
. Jede Iteration setzten wir$z
gleich eine entsprechende Anzahl von Räumen (je nachdem , ob wir auf Karte sind10
oder nicht), Satz$x
zu10
Unterstrichen und Satz$y
zu10
Räumen.Dann beginnen wir mit unseren Praktika. Wir werden die Standardeinstellung nutzen
Write-Output
, um eine neue Zeile zwischen Pipeline-Elementen einzufügen, also müssen wir nur die Inhalte in die Pipeline aufnehmen. Beachten Sie, dass wir in den meisten Fällen einen wörtlichen Zeilenumbruch verwenden, anstatt unsere Zeichenfolgen zu schließen und erneut zu öffnen, um ein paar Bytes zu sparen.Das erste ist nur
$x
mit zwei Leerzeichen, dann$y
mit zwei Schrägstrichen, dann der| $_$z|"
Pipe, einem Leerzeichen, der entsprechenden Anzahl von Leerzeichen und einer weiteren Pipe. Dies bildet die Oberseite der Karten bis einschließlich der Wertelinie.Wir müssen hier ein Semikolon setzen, da der nächste ein Array verwendet. Das
,"|$y|"*5
Konstruiert ein String-Array mit dem Komma-Operator der Pipe mit Leerzeichen - bei der Ausgabe erhält jedes Element dieses Arrays kostenlos eine neue Zeile.Dann die
"|$z$_ |
Markierung für den unteren Wert und schließlich$x
Schrägstriche für den unteren Kartenrand.Ausgabefragment
quelle
Python,
161160156149 BytesEin Byte von Shebang gespeichert
Dies könnte etwas Arbeit gebrauchen, aber hier ist es:
Erläuterung
Wir machen eine Liste aller Ränge in der Reihenfolge mit
map(str,range(2,11)
. Dann durchlaufen wir die einzelnen Ränge und machen eine Karte.Wir machen den Anfang der Karte:
Dann geht der Rang nach links:
Wir verwenden,
.ljust
weil10
zwei lang ist und alle anderen eine Breite haben.Dann drucken wir die 5 Zeilen in der Mitte:
und der unterste Rang:
Zum Schluss drucken wir den unteren Rand der Karte:
quelle
v="_"*10
und diese Instanzen ersetzen, sparen Sie ein weiteres Byte!JavaScript (ES6), 151 Byte
quelle
Perl,
128117111 BytesDie 6 wörtlichen Zeilenumbrüche sparen jeweils 1 Byte. Dies kann aufgrund der einfachen Anführungszeichen in den Zeilen 2 und 4 nicht direkt von der Befehlszeile aus ausgeführt werden, um 1 Byte zu sparen, da kein Backslash verwendet werden muss.
Edit: Ich habe Ace am Anfang gesetzt, aber es soll am Ende sein. Die Byteanzahl wird nicht geändert.
Edit 2: -11 Bytes: Einige unnötige Anweisungen wurden entfernt und eine weitere wörtliche Newline hinzugefügt. Alles wird jetzt über einen einzigen Ausdruck ausgegeben.
Bearbeiten Sie 3: -5 Bytes dank @Ton Hospel. Aber aus irgendeinem Grund erhalte ich zu Hause 111 Bytes anstatt 112 im Vergleich zur Arbeit, also gehe ich mit der Byteanzahl um, die mir mein Heimcomputer gibt.
quelle
_ x10
statt"_"x10
. Auchqw
ist so gut wie nie nützlich. im golf. Verwenden SieJ,Q,K,A
stattdessen nicht zitiert (sogar()
Can't locate object method "_" via package "x10" (perhaps you forgot to load "x10"?) at shuffle.pl line 1.
Ich\n
durch echte Newline ersetzen ):printf' %2$s\n/%3$10s\\n| %-9s|\n'.'|%3$10s|\n'x5 .'|%1$9s |\n\%s/\n',$_,"_"x10for 2..10,J,Q,K,A
PHP, 233 Bytes
quelle
if
kann durch ersetzt werden$k>9&&$c[29]=$c[113]=0&$c[112]=1;
, um ein paar Bytes zu sparen. Außerdem sagt Notepad ++, dass Ihr Code tatsächlich 241 Byte lang ist. Ich weiß, dass eines dieser Bytes aus der Newline stammt. Aber der andere ist mir ein Rätsel.///
182180 BytesProbieren Sie es online!
-2 Bytes dank m-chrzan
quelle
+
nur 5 Sekunden ersetzen_
und dann zwei+
Sekunden haben, in denen Sie jetzt einzelne+
Sekunden haben.Python 3.5, 110 Bytes
Druckt
' %s\n/%%11s\n'%u%'\\'
wou
ist'_'*10
'| %-2s %2s |\n'
, von denen jede zwei Zeichenfolge-Formatierungsschlitze hat. Der erste und der letzte werden mit dem Kartenwert gefüllt, der Rest mit Leerzeichen, die keine Wirkung habenDie neuen Entpackungsfunktionen von Python 3.5 werden an zwei Stellen verwendet. Die Liste der Etiketten
[*range(2,11),*'JQKA']
packt die Zahlen und Buchstaben in eine Liste. Und das Tupel(c,*' '*12,c)
packt zwölf Einträge von Leerzeichen in die Mitte aus.quelle
Scala, 161 Bytes
quelle
Batch, 236 Bytes
Ich habe es auf drei verschiedene Arten versucht, habe aber jedes Mal die gleiche Anzahl von Bytes erhalten ...
quelle
05AB1E ,
717068666564 BytesVerwendet die CP-1252- Codierung.
Leicht modifizierter Link, wie
…
er beiÿ
TIO atm nicht funktioniert .Probieren Sie es online!
Erläuterung
TL¦"JQKA"S«
drückt die Liste[2,3,4,5,6,7,8,9,10,J,Q,K,A]
Wir durchlaufen dann jeden Kartenwert mit
v
ð'_Tשð
constructs" __________ "
ðT×…/ÿ\
constructs"/ \"
9yg-ð×y"| ÿÿ|"Â
konstruiert die 2 Zeilen mit Kartenwerten (die zweite Zeile ist die erste umgekehrt)ðT×…|ÿ|5×
konstruiert 5 Zeilen des Formulars"| |"
Dann wir
®…\ÿ/
konstruiert die unterste Reihequelle
V , 87 Bytes
Probieren Sie es online!
Da dies einige nicht druckbare Dateien enthält, ist hier ein Hexdump:
quelle
PHP,
135131158134 BytesIch hoffe, dass ich einen Weg finden kann, dies ein wenig zu verkürzen.
Dies nutzt den Vorteil
printf
, mehrere Zeichen zu wiederholen und alles schön zu formatieren.Alte Version:
Nicht gerade ein Stück Schönheit, aber funktioniert!
Vielen Dank an Jörg Hülsermann für das Erkennen eines Fehlers und die Erlaubnis , einen Teil seines Codes zu verwenden, der ihn um 4 Byte reduziert hat ! Und um einen tödlichen Fehler zu finden.
quelle
10
ist abgehört. Ist es in Ordnung, wenn ich Ihr Array verwende? Durch die Verwendung von[2,3,4,5,6,7,8,9,10,J,Q,K,A]
anstelle dieser Aufteilung werden 4 Bytes gespart. Wenn Sie es nicht genehmigen, werde ich verstehen.$C$S
$C".($P=substr($S,$C>9))."
die Leerzeichen mit dem Wert 10 zu behandeln und stattdessen$S$C
brauchen Sie dann$P$C
Ruby, 115 Bytes
Ziemlich unkomplizierte Verwendung von
printf
.quelle
Schläger 327 Bytes
Ungolfed:
Testen:
Ausgabe:
quelle
Java 7, 287 Bytes
Ok, das ist hässlich und nicht sehr effizient, aber es funktioniert .. Das
10
als Sonderfall mit einem Leerzeichen vor oben und nach unten schraubt wirklich jeder mit ..Ungolfed & Testcode:
Probieren Sie es hier aus.
Ausgabe:
quelle
R, 175 Bytes
Diesmal eine ziemlich konkurrenzfähige Antwort in R für eine Herausforderung im Ascii-Art-Bereich und sollte auf jeden Fall golffähig sein.
Probieren Sie es auf R-Geige
Ungolfed und erklärte
Der interessanteste Aspekt, bei dem einige Bytes gespeichert werden, ist die Zuweisung der dritten Zeile:
Weil es
8
zwischen dem Zeichen, das den Kartenwert angibt, und dem Schlusszeichen insgesamt Leerzeichen gibt|
(mit Ausnahme von10
), können wir wiederholen9
Leerzeichen und die Anzahl der Zeichen auf der aktuell gedruckten Karte abziehen.Durch Speichern jedes Zeichens in der
3rd
Zeile als eigenes Element im Zeichenfolgenvektorr
können wir den Vektor umkehren und für die9th
Zeile wiederverwenden .quelle
C #, 385 Bytes
Meine erste ASCII Art Challenge - es hat Spaß gemacht!
Golf gespielt:
Ungolfed:
quelle
Eigentlich 91 Bytes
Probieren Sie es online!
Erläuterung
Teil 1: Aufstellung der Liste der Nennwerte:
Teil 2: Erstellen der Karten (Zeilenumbruch aus Gründen der
\n
Lesbarkeit durch ersetzt):quelle