Do tego golfa będziesz musiał używać więcej niż jednego języka.
Zadanie
Maszyna Rube Goldberg to ustrojstwo, które zajmuje ogromną liczbę skomplikowanych kroków w celu realizacji bardzo proste zadanie. Celem tego golfa jest produkcja Rube Goldberg
... ale nie bezpośrednio.
Maszyna
Twoja „maszyna” to kod źródłowy, który po uruchomieniu da inny kod źródłowy w innym języku, który wyświetli się Rube Goldberg
po wykonaniu. Rozumiem?
Przeformułowuję: twój kod początkowy musi dać inny kod, który inny kod musi wypisać Rube Goldberg
. Oba kody muszą być napisane w różnych językach.
Bonus, który jest bardziej jak jedyny fajny sposób, aby to zrobić
Jest premia, jeśli Twój kod wyśle kod, który wyśle kod, który ... wyśle Rube Goldberg
.
UWAGA: można użyć dowolnego rodzaju danych wyjściowych (stdout, stderr, okno dialogowe, ...)
Punkty
Liczba punktów jest równa liczbie bajtów używanych w kodzie, podzielonej przez liczbę różnych , dodatkowych języków, których użyłeś.
UWAGA: różne języki używają różnych kodowań. Liczba bajtów jest liczona w języku początkowym z własnym kodowaniem.
Przykłady
Pyth -> J -> Javascript -> output
w 30 bajtach = 30/2 = 15 punktów (J i JavaScript to dodatkowe języki)Java -> C# -> C++ -> PHP -> output
w 36 bajtach = 36/3 = 12 punktów (więcej bajtów i więcej języków może pozyskać mniej bajtów i mniej języków (wiem, że nie ma możliwości, aby te języki zrobiły to w 36 bajtach))C -> output
w 10 bajtach = 10/0 = Punkty nieskończoności (bez dodatkowych języków)Python -> Perl -> Ruby -> Python -> Ruby
w 44 bajtach = 44/2 = 22 punkty (Perl i Ruby są dodatkowymi językami, drugi Python nie jest liczony, ponieważ nie jest to dodatkowy język, drugi Ruby nie jest liczony tak jak wcześniej)
UWAGA: Nie można używać języków, które wysyłają dane wejściowe. Byłby to dodatkowy język bez absolutnie dodatkowego bajtu.
Odpowiedź
Podaj odpowiedź, która jasno określa, jakich języków używałeś, i pokaż nam kod każdego kroku (tj .: w każdym języku).
Zwycięzca
Oczywiście, jak zwykle, wygrywa najniższy wynik.
UWAGA: Jak zwykle, standardowe luki i „kody” są niedozwolone.
źródło
Odpowiedzi:
33 języki, 40 bajtów, 1,25 punktu
Wykorzystuje fakt, że wiele różnych języków ma tę samą składnię drukowania, co powoduje wykładniczo dłuższy, ale wysoce ściśliwy kod źródłowy.
Permalinki (niekompletne, do aktualizacji)
źródło
BATCH
zupełnie za darmoecho
.Foo → gs2 → M → Galaretka → Siatkówka → Aeolbonn → Par → Właściwie → Szpatułki → sed → Universal Lambda → Linie → /// → m4 : 19/13 ≈ 1,4615 punktów
Wszystkie odpowiedzi podano na stronie kodowej Jelly . ¶ oznacza nowy wiersz.
Mechanizm
EDYCJA: Ups, wystąpił błąd w programie Pyth. Pyth i GolfScript zastąpiłem Par.
EDYCJA 2: Dodano GNU m4.
EDYCJA 3: Dodano Foo i M.
źródło
gs2 -> Jelly
usuwa tylko jeden bajt .../
na końcu, jeśli to nie zepsuje innych języków).Jolf -> Właściwie -> Galaretka -> Pyth -> Retina -> /// -> Golfscript: 15/6 = 2,5 punktu
5,4 punktów dzięki Martinowi Enderowi.
0,1 punktu dzięki Cᴏɴᴏʀ O'Bʀɪᴇɴ.
Uwaga: zarówno faktycznie, jak i galaretka mają własną stronę kodową, więc można je przesyłać bajt po bajcie, ale nie w wersjach online.
Jolf
Tak właściwie
Wypróbuj online!
Galareta
Wypróbuj online!
Pyt
Wypróbuj online!
Siatkówka oka
Wypróbuj online!
///
Wypróbuj online!
Golfscript
Wypróbuj online!
źródło
Python -> Batch -> JavaScript -> Java -> PHP -> C ++ -> Foo -> Brainfuck 31. (142857) punktów
Pyton
Partia
JavaScript
Jawa
PHP
C ++
bla
BrainFuck
źródło
-----------
nie mógłbyś zrobić"+"-"*11+"
?JS -> Cobol -> Python -> IBM 360 BAL
261 bajtów / 4 języki = 65,25 punktów
Miał na celu używanie trudnych języków, z większym zaciemnieniem. JavaScript konwertuje ciąg z base64 na Cobol, który produkuje Python, który dekoduje kod BAL z heksadecymalnego.
JavaScript
Kobol
Pyton
IBM 360 BAL
Wynik
źródło
Rude Goldberg
, nieRUBE GOLDBERG
.IndentationError
działać i nie będzie działać.Mátl -> CJam -> 05AB1E -> Golfscript
21/218/222/3Dzięki za Martina za 3 znaki!
wykonane w MATL daje
co w CJam daje
co w 05AB1E daje
co w Golfscript daje
źródło
g'
nag
. Twój wynik wyniesie 7 zamiast 22/3 .Java-> Thue-> JavaScript-> Batch-> Microscript II-> Brainf ***, 236/5 = 47,2
Wygenerowany program Thue:
Wygenerowany program JavaScript:
Wygenerowany program wsadowy:
Wygenerowany program Microscript II:
Wygenerowany program Brainf ***:
źródło
Reng ->> <> -> Vitsy, 32/2 = 16 punktów
Chciałem robić tylko języki 2D - w jednym wierszu!
Wyjaśnienie
źródło
push that string backwards
”.Perl -> JavaScript (ES6) -> Partia -> sh, 39/3 = 13 punktów
Perl
JavaScript (ES6)
Partia
sh
źródło
<?="print 'alert`@echo echo Rube Goldberg`'";
. Jeśli się nie mylę, będzie to 11,25 punktów.print 'alert`@echo echo Rube Goldberg`'
działa w PHP.print
.<?php
rolę, by działać jak quine./// -> PowerShell -> CJam -> Foo -> BASH, 24 bajty / 4 = 6
Po wykonaniu w /// daje
który, po uruchomieniu w PowerShell daje
który po wykonaniu w CJam daje
który po wykonaniu w Foo daje
który po wykonaniu w BASH daje
źródło
JavaScript -> PHP -> Foo 14 punktów
JavaScript:
PHP:
Bla:
źródło
APL → J → K, 21 bajtów / 2 → 10,5
'''"Rube Goldberg"'''
na Dyalog APL daje,
'"Rube Goldberg"'
co w J daje,
"Rube Goldberg"
co w K daje
Rube Goldberg
Jeśli pozwolimy na jeszcze bliższe powiązane języki, możemy uzyskać znacznie więcej.
źródło
/// -> K -> J -> SX -> Golfscript -> Pyke -> Lua -> Moonscript -> C -> Pyth -> Python -> BrainF *** -> Bash -> Ruby -> Zsh, 554b / 16 = 34,625
///
K.
jot
SX
Golfscript
Pyke
Perl
Lua
Moonscript
do
Pyt
Python 2
BrainF ***
Grzmotnąć
Rubin
Zsh
Oczywiście mogę dodać wiele ech, ale wydaje mi się, że skopiowałoby odpowiedź Dennisa.
źródło
Python → Ruby → Bash, wynik: 35/2 = 17,5
po uruchomieniu w Pythonie daje
z
\"
s uciekł. Następnie to wykonane Ruby dajei na koniec, wykonanie tego w Bash daje
który jest oczekiwanym ciągiem.
źródło
C → JS → Powłoka → > <> : 68/3 = 22,67
do
JavaScript
Muszla
> <>
Wynik:
jako wymagane.
źródło
console.log`echo '"Rube Goldberg"ar!;ooooooo|'`
?console.log([`echo '"Rube Goldberg"ar!;ooooooo|'`])
) zgodnie ze specyfikacją.Sprects → /// → itflabtijtslwi → Python 2 → Pyth, 24/4 = 6
Łopatki
///
itflabtijtslwi
Python 2
Pyt
Wynik
źródło
Python -> Ruby -> Bash -> JS -> /// -> m4, wynik: 54/5 = 10,8
Mam sztuczkę /// i m4 z odpowiedzi https://codegolf.stackexchange.com/a/83627/53416
źródło
dc -> Fortran -> Podstawowy -> Vim, 59/3 = 19. (6) punktów
Tą odpowiedzią chciałem przyczynić się do różnorodności języków używanych już w innych odpowiedziach.
dc:
Fortran:
Podstawowy:
Wigor:
Ostateczne wyjście:
źródło