MarioLANG, 965 834 bajtów
Wypróbuj online
to było absurdalnie skomplikowane.
Technicznie dane wyjściowe są poprawne, ale w praktyce Tio dla MarioLANG wyświetla „n” zamiast „n”, gdy wypisujemy liczbę za pomocą „:”
jeśli znajdę czas, zgadnę, że spróbuję zrobić (prawdopodobnie znacznie dłuższą) wersję programu, która poprawnie wyprowadza na Tio
++<>) +++@++++> [!) >)>((((::(.)::((.))+:+:--(.)::)).).).)+++++++++
++""+ +"=====""====#) "+"============================================
+++)+ +>>+++++- <+<)->+++ ![-).).).))(::)).(:(:)))..(((::)).(:+(:((((<
+>+++ ++"====<( ")")-"!+++#=========================================="
+(+++>++!++)<+( ++++-+++++>
-))+)=(#==="+( ++++)+++++"==========================================!
[!!+-[!(+++!!! !+!<+!++!>(((((+:(.))::(((.
==##===#====###=#=#"=##=#"=================<
++++)))+++++++++++++++(((![-).).).)::)).(:)) >
>========================#================== "
+>+ >
+"+ "=======================================[ =====================#===============[
+!> ! -).).).))(::)).)):+(..(((::)).(:+(((((<++!-).).).))(::)).)):+(.(((::)).(:+(((((<
=#==#======================================="==#======================================
Objaśnienie:
naszym głównym problemem jest to, że mamy 6 znaków NaN (newLine, Space,:, a, p, m)
w marioLANG, aby wydrukować postać, potrzebujemy jej wartości ascii:
- newLine ma 10
- Miejsce to 32
- : wynosi 58
- a wynosi 97
- p wynosi 112
- m wynosi 109
Pierwszą rzeczą do zrobienia jest ustawienie pamięci:
++<>) +++@++++> [!) >)> !
++""+ +"=====""====#) "+"==
+++)+ +>>+++++- <+<)->+++
+>+++ ++"====<( ")")-"!+++
+(+++>++!++)<+( ++++-+++++
-))+)=(#==="+( ++++)+++++
[!!+-[!(+++!!! !+!<+!++!>
==##===#====###=#=#"=##=#"
dzięki temu pamięć wygląda następująco:
v
32 58 0 0 97 109 10 0
_ : a m \n
zamienimy a na p podczas reszty programu
następnie robimy rzeczywiste wyjście:
++<>) +++@++++> [!) >)>((((::(.)::((.))+:+:--(.)::)).).).)+++++++++
++""+ +"=====""====#) "+"============================================
+++)+ +>>+++++- <+<)->+++ ![-).).).))(::)).(:(:)))..(((::)).(:+(:((((<
+>+++ ++"====<( ")")-"!+++#=========================================="
+(+++>++!++)<+( ++++-+++++>
-))+)=(#==="+( ++++)+++++"==========================================!
[!!+-[!(+++!!! !+!<+!++!>(((((+:(.))::(((.
==##===#====###=#=#"=##=#"=================<
++++)))+++++++++++++++(((![-).).).)::)).(:)) >
>========================#================== "
+>+ >
+"+ "=======================================[ =====================#===============[
+!> ! -).).).))(::)).)):+(..(((::)).(:+(((((<++!-).).).))(::)).)):+(.(((::)).(:+(((((<
=#==#======================================="==#======================================