Opis wyzwania:
Napisz program, który prosi użytkownika o wprowadzenie danych. Użytkownik wprowadzi Good
lub Bad
. Nie musisz obsługiwać żadnych innych danych wejściowych. Jeśli użytkownik wejdzie Good
, wydrukuj Bad
i odwrotnie (na standardowe wyjście itp.).
Uwagi:
1) Nie możesz użyć żadnej innej pary dwóch słów.
2) Twój program musi zapytać i wydrukować tylko raz.
3) Nie musisz wyświetlać ciągu znaków zachęty.
4) Dane wyjściowe muszą wyglądać na oddzielone od danych wejściowych w jakikolwiek sposób.
5) Niedozwolona jest funkcja akceptująca wartość i zwracająca wynik; Użytkownik musi wchodzić w interakcje z programem.
Powodzenia!
code-golf
string
interactive
Ishaq Khan
źródło
źródło
Odpowiedzi:
Python 3 ,
3231 bajtówWypróbuj online!
W jaki sposób?
Sprawdza, czy dane wejściowe są
'Good'
porównywane'G'<input()
.Wykorzystuje fakt, że w Pythonie
False==0
iTrue==1
użyć wynik jakostart
wskaźnik plasterek'GBoaodd'
użyciu niezdefiniowanystop
istep
od2
z'GBoaodd'[start:stop:step]
.Drukuje do STDERR (zapisywanie bajtu
exit
zamiast zamiastprint
).źródło
'GoodBad'.strip(input())
co jest bajtem krótszym.APL (Dyalog Unicode) , 13 bajtów SBCS
Pełny program pytający o wejście ze standardowego wejścia i drukujący na standardowe wyjście.
Wypróbuj online!
⍞
monit o podanie danych ze standardowego wejścia;Good
lubBad
¯1↓
upuść ostatni znak (d
);Goo
lubBa
'GooBad'~
multiset odejmij od nich te znaki;Bad
lubGood
źródło
GooBad
lubGoodBad
?GooBad
, ponieważ dodanie znaku `` d '' spowoduje, że post ten będzie miał 14 bajtów.Maszyna Turinga, ale gorzej , 405 bajtów
Wypróbuj online!
Zajęło to trochę czasu.
NIEKOŃCZONE WYJAŚNIENIE :
źródło
favorite/disliked/"Turing-Machine-But-Way-Worse" is, without a doubt, my new favorite esolang.
bash, 20 bajtów
Wypróbuj online!
źródło
8088 Montaż, IBM PC DOS, 25 bajtów
Niezmontowane:
Wyjaśnienie:
Sprawdza długość ciągu wejściowego (plus spację wiodącą), którą DOS przechowuje pod adresem pamięci
80H
, i dodaje goAL
(początkowo0
przez DOS ). Jeśli1
w binarnej reprezentacji długości ciągu znajduje się nieparzysta liczba bitów, flaga parzystości procesora jest ustawiona na nieparzystą i odwrotnie. Więc' Bad'
długość łańcucha wejściowego4
(0000 0100
), to parzystość nieparzysta, a łańcuch wejściowy' Good'
to5
(0000 0101
) to parzystość parzysta.DX
jest początkowo ustawiony tak, aby wskazywał na łańcuch'Good$Bad$'
, a jeśli parzystość jest parzysta (co oznacza, że wprowadzono dane wejściowe' Good'
), przesuń wskaźnik łańcucha o tę długość (5
), aby teraz wskazywał'Bad$'
. Jeśli parzystość jest nieparzysta, nie rób nic, ponieważ już wskazuje na'Good$'
. Następnie użyj DOS API, aby wyświetlić$
zakończony ciąg do konsoli.Przykład:
Pobierz i przetestuj GOODBAD.COM lub skompiluj ze
xxd
zrzutu:źródło
Galaretka , 8 bajtów
Wypróbuj online!
Pełny program oczekujący jako argument argumentu sformatowanego w języku Python
W jaki sposób?
źródło
Python 3,
38373433 bajtyWypróbuj online!
exit()
: zwraca kod wyjścia jako wynik"C">input()
: Sprawdza, czy dane wejściowe są większe niż ciągC
w kolejności alfabetycznejand"Good"
: Jeśli wynikiem jestTrue
, to zwraca za pomocąGood
or"Bad"
: W przeciwnym razie zwraca za pomocąBad
źródło
print("C">input()and"Good"or"Bad")
exit(input()[3:]and"Bad"or"Good")
działa również dla tej samej liczby bajtów.C,
3938 bajtówWypróbuj online!
Zapisano jeden bajt dzięki @tsh.
źródło
main(){puts("Good\0Bad"+getchar()%6);}
38 bajtów#include<stdio.h>
?\0
?pieprzenie mózgu , 72 bajty
Wypróbuj online!
Objaśnienie:,> +++++>,>,>,>,
Odczytaj: „G”, 5, „o”, „o”, „d” lub „B”, 5, „a”, „d”, 0
[<<<< [- <->> --- <] <. >> +. >>. >>>] Jeśli ostatni znak nie jest zero:
Odejmij 5 z pierwszej komórki raz, a trzy razy z trzeciej komórki. Komórka przyrostowa 3
Komórki wyjściowe 1, 3, 5.
<[<<< [- <+ >> +++ <] <. >> - ..>. >>]
W przeciwnym razie dodaj raz 5 do pierwszej komórki i do trzeciej komórki trzy razy.
Komórka dekrementacyjna 3
Komórki wyjściowe 1, 3, 3, 4
źródło
Haskell,
3634 bajtówWypróbuj online!
Edycja: -2 bajty dzięki @cole
źródło
R ,
42373532 bajtów-10 dzięki Giuseppe i AkselA!
Wypróbuj online!
źródło
"C"
zamiast pierwszego,"Bad"
jak w tej odpowiedzi, pozwoli zaoszczędzić kolejne kilka bajtów.`if`(readline()>"C","Bad","Good")
być ważna odpowiedź? Jestem nowy w tej grze i jej zasadach.scan(,"")
zamiastreadline()
. Zachęcamy do odwiedzenia golfR , pokoju do gry w golfa R, jeśli masz jakieś pytania dotyczące R :-)sed ,
21 1613 bajtówDzięki @Cowsquack za wskazówki.
Wypróbuj online! Wypróbuj online!Wypróbuj online!TIL
c
spowoduje zwarcie analizy składni bieżącej linii.źródło
c
oferuje krótsze rozwiązaniec
JavaScript 31 bajtów
Podoba mi się odpowiedź Arnaulda, ale chciałbym, aby akceptowała dane wejściowe użytkownika i mogła być uruchamiana na StackExchange w ten sposób:
źródło
Befunge-93 ,
2018 bajtówWypróbuj online!
-2 bajty dzięki Jo King
źródło
Ruby , 22 bajty
Wypróbuj online!
źródło
p gets
a więc ma taką samą długość. (mój oryginalny komentarz powiedział, że możesz zapisać 2 bajty, ale nie wziąłem pod uwagę drukowania wyniku)-p
flagi dałoby najbardziej efektywną odpowiedź:$_=$_>?F?:Bad:"Good"
wynosi 20 bajtów. Wypróbuj online!05AB1E ,
109 bajtów-1 bajt dzięki @Emigna .
Wypróbuj online lub sprawdź oba przypadki testowe .
Wyjaśnienie:
Zobacz moją wskazówkę 05AB1E (sekcja Jak korzystać ze słownika? ) , Aby zrozumieć, dlaczego tak
”‚¿‰±”
jest"Good Bad"
.źródło
á
.á
nie mogę uwierzyć, że o tym nie myślałem, ale jednocześnie wiem, że nigdy bym o tym nie pomyślał. ;) Dzięki! (I tak, miałem też kilka 10-bajtowych alternatyw).”‚¿Bad”IK
jest także 9.Java (JDK) , 124 bajty
Wypróbuj online!
Najprawdopodobniej jest jeszcze miejsce na ulepszenia, ale jestem zupełnie nowy w golfie kodowym.
źródło
!="Bad"
Rubinowy,
3028 bajtówNie najbardziej golfowy, ale lubię nadużycie podziału, aby usunąć końcowy znak nowej linii i przekonwertować na tablicę w jednym wywołaniu.
EDYCJA -2 bajtów dzięki sugestii Value Ink!
źródło
"Good"
lub"Bad"
(z cytatami); Nie jestem pewien, czy to dozwolone.puts
drukuje każdy element tablicy w osobnej linii. Jest o 3 bajty droższy niżp
, ale wyrównuje się, ponieważ wyjmujesz,[0]
a następnie oszczędzasz 2 bajty, nie potrzebując już parenów. Wypróbuj online!Język programowania Szekspira , 582 bajty
(Dodano białe znaki dla czytelności)
Wypróbuj online!
Dostaję pierwszą literę wejścia za pomocą
Open mind
. Następnie muszę ustalić, co to jest. Ze wszystkich liczb pomiędzyB
= 66 aG
= 71, mój brutalny forcer mówi, że 66 jest najkrótszy do napisania (the sum ofa big cat the cube ofa big big cat
), więc porównuję pierwszą literę wejścia z 66. Scena I kontynuuje drukowanieGood
lub Scena V drukujeBad
.źródło
Retina 0.8.2 , 20 bajtów
Wypróbuj online! Link zawiera pakiet testowy. Wyjaśnienie:
Zamień się
Good
wGod
.Transpozycji litery
GoaB
z odwrocie tej liście, więc wymieniającG
zB
io
za
, czyli wymianęGod
zBad
.Zamień się
God
wGood
.źródło
Stax ,
98 bajtówUruchom i debuguj
Zasadniczoreplace("BadGood", input, "")
.Multiset xor z „GooBa”. Algorytm skopiował dosłownie z Luisa Mendo
źródło
Excel, 24 bajty
Korzystanie z
<C
sugestii @ MilkyWay90 .źródło
PHP ,
2623 bajtyTrójskładnik jest po prostu tańszy:
Wypróbuj online!
Oryginalna odpowiedź, 26 bajtów
Wypróbuj online!
Lub 21 bajtów (ale to w zasadzie odpowiedź Arnaulda )
Wypróbuj online!
źródło
readline()
jest bardziej odpowiednie niż$argn
.Galaretka , 9 bajtów
Wypróbuj online!
Wyjaśnienie
Wielosetowa symetryczna różnica między wejściem a łańcuchem
“GooBa”
.źródło
PowerShell ,
2220 bajtówWypróbuj online!
-2 bajty dzięki mazzy
źródło
Beczka , 22 bajty
źródło
pieprzenie mózgu , 52 bajty
Wypróbuj online!
Polega na tym, że Zła jest o jedną literę krótsza niż Dobra, więc ostatnie wejście jest puste.
Wyjaśnienie:
źródło
Boolfuck , 47 bajtów
Wypróbuj online!
Wykorzystuje fakt, że możesz po prostu wprowadzić dane wejściowe jako bity, a następnie odwrócić niektóre bity, aby przekształcić je w przeciwną literę.
Wyjaśnienie:
źródło
Keg ,
-rt
2017151387 bajtów (SBCS)Transpozycje do:
Jest to port odpowiedzi 05AB1E. Zasadniczo:
"GoodBad"
GoodBad
niczym.-rt
Flaga mówi Keg czytać znaki od prawej do lewej.Historia odpowiedzi
Transpozycje do następujących:
Wyjaśnienie
źródło
Węgiel drzewny , 13 bajtów
Wypróbuj online!
Wyjaśnienie:
źródło