Problem
Biorąc pod uwagę dane wejściowe, a
gdzie a jest wartością prawda / fałsz, wyświetl dokładną kostkę niemożliwą poniżej, jeśli jest prawdą, i dokładną normalną kostkę poniżej, jeśli falsey.
Wejście truthy
:
___________________________________
/ _______________________________ /|
/ / _____________________________/ / |
/ / /| | / / |
/ / / | | / / |
/ / /| | | / / /| |
/ / / | | | / / / | |
/ / / | | | / / /| | |
/ /_/___| | |____________________/ / / | | |
/________| | |_____________________/ / | | |
| _______| | |____________________ | | | | |
| | | | | |___________________| | |__| | |
| | | | |_____________________| | |____| |
| | | / / _____________________| | |_ / /
| | | / / / | | |/ / /
| | | / / / | | | / /
| | |/ / / | | |/ /
| | | / / | | /
| | |/_/_________________________| | /
| |______________________________| | /
|__________________________________|/
Wejście falsy
:
___________________________________
/ _______________________________ /|
/ / _____________________________/ / |
/ / /| | / / |
/ / / | | / / |
/ / /| | | / / /| |
/ / / | | | / / / | |
/ / / | | | / / /| | |
/ /_/___|_|_|____________________/ / / | | |
/__________________________________/ / | | |
| ________________________________ | | | | |
| | | | | |___________________| | |__| | |
| | | | |_____________________| | |____| |
| | | / / _____________________| | |_ / /
| | | / / / | | |/ / /
| | | / / / | | | / /
| | |/ / / | | |/ /
| | | / / | | /
| | |/_/_________________________| | /
| |______________________________| | /
|__________________________________|/
Zasady
- Dozwolone końcowe znaki odstępu.
- Dozwolone są końcowe znaki nowej linii.
- wartości truey / falsey można zamieniać (true dla prawdziwej kostki i falsey dla niemożliwej kostki)
- Styl wprowadzania powinien zostać określony
- Najkrótszy kod w bajtach wygrywa
Odpowiedzi:
SOGL V0.12 , 145 bajtów
Wypróbuj tutaj!
Ten program przechowuje dane linii jako 3 oddzielne liczby podstawowe 36-46 i dekoduje każdą
ž
wartość w głównej tablicy.Ze względu na obelżywy sposób rysowania linii ukośnych, wynik ma 27 linii linii ze spacjami (na co pozwala OP)
wejście:
0 - niemożliwe
1 - możliwe
Wyjaśnienie:
źródło
1
dawać takich samych wyników, jak inne prawdziwe dane wejściowe, takie jak"test"
?test
w polu wprowadzania powoduje błąd. Jeśli to taki duży problem, mógłbym po prostu wprowadzić ciąg znaków, w którym „” byłoby fałszem, a wszystko inne prawdąGalaretka ,
187166 bajtówPełny program.
Wypróbuj online!
W jaki sposób?
103 bajty to 101 cyfrowa liczba podstawowa 250, która jest kompresją możliwej kostki o podstawie 8, z dodanymi końcowymi spacjami w celu wyrównania długości wierszy, bez nowych wierszy i bez 18 znaków ze środka każdego wiersza, tak jak to , ale bez nowych linii:
8 cyfr podstawowych 8 reprezentuje ciągi znaków:
Zatem kompresja jest jak poniżej, gdzie
1
s,6
s,7
s i0
s należy zastąpić ciągami pokazanymi powyżej:Program odwraca proces i zmienia znaki, które należy zmienić, jeśli sześcian powinien być niemożliwy:
źródło
JavaScript (ES6),
352344333 bajtyZaoszczędzono 2 bajty dzięki @YairRand
Próbny
Pokaż fragment kodu
źródło
a=
i zastąpienie jednego odwołania do niego0
(którym zawsze jest to odniesienie) powoduje zapisanie dwóch bajtów.Węgiel drzewny , 188 bajtów
Wypróbuj online! Link jest do wersji falsy; zmień dane wejściowe z
0
na1
dla wersji zgodnej z prawdą. Oto przybliżony pełny kod dla powyższego programu:Wydrukuj część pleców widoczną przez prawą „dziurę”.
Wydrukuj właściwą „dziurę”.
Wydrukuj zewnętrzną krawędź sześcianu.
Wydrukuj górny „otwór” sześcianu.
Wydrukuj przednią „dziurę” sześcianu.
Wydrukuj część tyłu widoczną przez przednią „dziurę”.
Uniemożliwić sześcian, jeśli to konieczne.
Wydrukuj część pleców widoczną przez górny „otwór”.
źródło