Jest piątek i jestem zmęczony, więc zróbmy szybki! Nie wkładaj żadnych danych, jednak powinieneś wypisać wszystkie trzynaście kart o różnych numerach w standardowej talii kart. Powinieneś wypisać 2 poprzez asa (kolor agnostyczny).
Każda karta ma blat oznaczony spacją
oraz dziesięć _
i inną spację
.
Drugi rząd od góry jest oznaczony a /
oraz 10 spacjami
i a\
Trzeci rząd jest taki sam, jak wszystkie środkowe rzędy, z wyjątkiem tego, że znak (i) oznaczający wartość karty pojawiają się dwa spacje po prawej stronie (jeśli u góry) lub dwa spacje po lewej stronie (jeśli u dołu) krawędzi.
Każdy środkowy rząd jest prostym |
i dziesięcioma spacjami
i jeszcze jednym|
Wreszcie ostatnia linia to a \
i dziesięć, _
a na końcu a/
Jeśli wartość jest wielocyfrowa, całkowita szerokość według wysokości karty nie powinna się zmienić. (tzn. 10 nie spowoduje poszerzenia boków karty)
Przykład króla:
__________
/ \
| K |
| |
| |
| |
| |
| |
| K |
\__________/
9 Przykład
__________
/ \
| 9 |
| |
| |
| |
| |
| |
| 9 |
\__________/
10 Przykład
__________
/ \
| 10 |
| |
| |
| |
| |
| |
| 10 |
\__________/
Wydaj je w kolejności od najmniejszej do największej (asy są wysokie!).
To jest golf golfowy, więc wygrywa najkrótszy kod.
Miłej zabawy i miłego weekendu!
źródło
Odpowiedzi:
PowerShell v2 +,
120116114108 bajtówKonstruuje zakres
2..10
i dokonuje konkatenacji tablicy za pomocą opcjichar
-arrayJQKA
. Przekazuje to do pętli|%{...}
. Każda iteracja, ustawiamy$z
równa odpowiedniej liczby miejsc (na podstawie tego, czy jesteśmy w karty10
lub nie), zestaw$x
do10
podkreślenia i zestaw$y
do10
przestrzeni.Następnie rozpoczynamy nasze miejsca docelowe. Wykorzystamy wartość domyślną,
Write-Output
aby wstawić nowy wiersz między elementami potoku, więc musimy tylko pobrać rzeczy do potoku. Zauważ, że w większości miejsc używamy dosłownie nowego wiersza zamiast zamykania i ponownego otwierania naszych ciągów, aby zaoszczędzić kilka bajtów.Pierwszy to tylko
$x
dwie spacje, potem$y
dwa ukośniki, następnie| $_$z|"
rura, spacja, odpowiednia liczba spacji i inna rura. Tworzy to górę kart do linii wartości włącznie.Mamy tutaj średnik, ponieważ następny używa tablicy.
,"|$y|"*5
Konstruuje ciągu matrycą z przecinkiem operatorów, rury z przestrzeni - na wyjściu, każdy element tej tablicy otrzymuje przełamane za darmo.Następnie
"|$z$_ |
oznaczenie dolnej wartości, a na końcu$x
ukośniki u dołu karty.Fragment wyjściowy
źródło
Python,
161160156149 bajtówJeden bajt zapisany przez Shebang
Przydałoby się to trochę pracy, ale oto:
Wyjaśnienie
Tworzymy listę wszystkich rang w kolejności użycia
map(str,range(2,11)
. Następnie przeglądamy każdą z rang i tworzymy kartę.Robimy górę karty:
Następnie ranga idzie w lewo:
Używamy,
.ljust
ponieważ10
dwa są długie, a wszystkie pozostałe są szerokie.Następnie drukujemy 5 rzędów na środku:
i najniższy stopień:
Na koniec drukujemy spód karty:
źródło
v="_"*10
i zastąpisz te wystąpienia, zaoszczędzisz kolejny bajt!JavaScript (ES6), 151 bajtów
źródło
Perl,
128117111 bajtów6 dosłownych znaków nowej linii oszczędza 1 bajt. Nie można tego uruchomić bezpośrednio z wiersza poleceń ze względu na pojedyncze cudzysłowy w wierszach 2 i 4 , aby zaoszczędzić 1 bajt bez konieczności ucieczki przed odwrotnym ukośnikiem.
Edycja: Ace umieszczam na początku, ale ma być na końcu. Nie zmienia to liczby bajtów.
Edytuj 2: -11 bajtów: Pozbyłem się niepotrzebnych instrukcji i dodałem kolejną dosłowną linię. Wszystko jest teraz wyprowadzane przez pojedynczy printf.
Edytuj 3: -5 bajtów dzięki @Ton Hospel. Ale z jakiegoś powodu mam w domu 111 bajtów zamiast 112 w porównaniu do pracy, więc idę z liczbą bajtów, którą podaje mój komputer domowy.
źródło
_ x10
zamiast"_"x10
. Równieżqw
prawie nigdy nie jest użyteczny. w golfa.J,Q,K,A
Zamiast tego użyj bez cudzysłowu (nawet pomijając()
)Can't locate object method "_" via package "x10" (perhaps you forgot to load "x10"?) at shuffle.pl line 1.
\n
prawdziwą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 bajtów
źródło
if
można zastąpić$k>9&&$c[29]=$c[113]=0&$c[112]=1;
, aby zaoszczędzić kilka bajtów. Ponadto Notepad ++ mówi, że twój kod ma w rzeczywistości 241 bajtów. Wiem, że 1 z tych bajtów pochodzi z nowej linii. Ale druga sprawa jest dla mnie tajemnicą.///,
182180 bajtówWypróbuj online!
-2 bajty dzięki m-chrzan
źródło
+
zastępując tylko 5_
s, a następnie mając dwa+
s tam, gdzie masz+
teraz pojedyncze s.Python 3.5, 110 bajtów
Wydruki
' %s\n/%%11s\n'%u%'\\'
gdzieu
jest'_'*10
'| %-2s %2s |\n'
, z których każdy ma dwa sloty formatowania ciągów. Pierwszy i ostatni są wypełnione wartością karty, a reszta spacjami bez efektuNowe funkcje rozpakowywania w Pythonie 3.5 są używane w dwóch miejscach. Lista etykiet
[*range(2,11),*'JQKA']
rozpakowuje cyfry i litery na jedną listę. Krotka(c,*' '*12,c)
rozpakowuje dwanaście wejść do środka.źródło
Scala, 161 bajtów
źródło
Partia, 236 bajtów
Próbowałem grać w golfa na trzy różne sposoby, ale za każdym razem otrzymywałem tę samą liczbę bajtów ...
źródło
05AB1E ,
717068666564 bajtówWykorzystuje kodowanie CP-1252 .
Nieznacznie zmodyfikowany link, ponieważ
…
nie działa zÿ
bankomatem TIO.Wypróbuj online!
Wyjaśnienie
TL¦"JQKA"S«
przesuwa listę[2,3,4,5,6,7,8,9,10,J,Q,K,A]
Następnie zapętlamy każdą wartość karty za pomocą
v
ð'_Tשð
konstruuje" __________ "
ðT×…/ÿ\
konstruuje"/ \"
9yg-ð×y"| ÿÿ|"Â
konstruuje 2 wiersze z wartościami kart (drugi wiersz jest pierwszym odwróconym)ðT×…|ÿ|5×
konstruuje 5 wierszy formularza"| |"
Wtedy my
®…\ÿ/
konstruuje dolny rządźródło
V , 87 bajtów
Wypróbuj online!
Ponieważ zawiera on niektóre elementy niedrukowalne, oto zrzut zrzutu:
źródło
PHP,
135131158134 bajtówMam nadzieję, że znajdę sposób, aby nieco to skrócić.
Korzysta się z
printf
powtarzania wielu znaków i ładnego formatowania wszystkiego.Stara wersja:
Niezupełnie piękna, ale działa!
Dzięki Jörgowi Hülsermannowi za wykrycie błędu i pozwolenie na użycie części jego kodu, co zmniejszyło go o 4 bajty! I za znalezienie fatalnego błędu.
źródło
10
Jest na podsłuchu. Czy mogę używać twojej tablicy? Zastosowanie[2,3,4,5,6,7,8,9,10,J,Q,K,A]
zamiast tego podziału oszczędza mi 4 bajty. Jeśli nie autoryzujesz, zrozumiem.$C$S
$C".($P=substr($S,$C>9))."
obsługiwać spacje o wartości 10 i zamiast tego$S$C
potrzebujesz$P$C
Rubin, 115 bajtów
Dość proste użycie
printf
.źródło
Rakieta 327 bajtów
Nie golfowany:
Testowanie:
Wynik:
źródło
Java 7, 287 bajtów
Ok, to jest brzydkie i niezbyt wydajne, ale działa .. To
10
jako specjalny przypadek ze spacją przed górą i potem w dolnej pozycji naprawdę pieprzy się ze wszystkimi ..Kod niepoznany i testowy:
Wypróbuj tutaj.
Wynik:
źródło
R, 175 bajtów
Rywalizująca odpowiedź w R tym razem na wyzwanie ascii-art i zdecydowanie powinna być możliwa do gry w golfa.
Wypróbuj na skrzypcach R.
Nie golfił i wyjaśnił
Najciekawszym aspektem, w którym zapisanych jest kilka bajtów, to przypisanie trzeciego rzędu:
Ponieważ
8
między postacią oznaczającą wartość karty a końcową spacją są w sumie spacje|
(z wyjątkiem10
), możemy powtarzać9
spacje i odejmować liczbę znaków na aktualnie drukowanej karcie.Przechowując każdy znak w
3rd
rzędzie jako własny element w wektorze ciągówr
, możemy odwrócić wektor i ponownie użyć go w9th
wierszu.źródło
C #, 385 bajtów
Moje pierwsze wyzwanie ASCII Art - było fajnie!
Gra w golfa:
Nie golfowany:
źródło
Właściwie 91 bajtów
Wypróbuj online!
Wyjaśnienie
Część 1: Konfigurowanie listy wartości nominalnych:
Część 2: tworzenie kart (nowy wiersz zastąpiono ze względu
\n
na czytelność):źródło