Verweis auf xkcd 1688 :
Ihre Aufgabe ist es, das Alter einer Karte zu ermitteln, indem Sie den Benutzern Fragen stellen. Diese Frage muss genau so lauten wie im xkcd-Handbuch, mit Ausnahme der Groß- und Kleinschreibung und der zusätzlichen Zeilenumbrüche. Zusätzlich sollten Sie dem Benutzer einige Optionen zur Auswahl geben, die nicht in der Reihenfolge wie im xkcd-Image vorliegen müssen. Wenn die Eingabe keiner der erwarteten Antworten entspricht, verhält sich Ihr Programm / Ihre Funktion möglicherweise undefiniert. Am Ende sollten Sie das Jahr / den Zeitraum ausgeben, in dem die Karte erstellt wurde.
Beispiele ( >
bezeichnet die Eingabe, aber Sie können etwas anderes wählen):
Beispiel 1:
ISTANBUL OR CONSTANTINOPLE?
(CONSTANTINOPLE, NEITHER, ISTANBUL)
>ISTANBUL
DOES THE SOVIET UNION EXISTS?
(YES, NO)
>NO
ZAIRE?
OR: 'HONG KONG (UK)'
(YES, NO)
>NO
SERBIA / MONTENEGRO ARE?
(ONE COUNTRY, TWO COUNTRIES)
>TWO COUNTRIES
HOW MANY SUDANS ARE THERE?
(ONE, TWO)
>ONE
2007-11
Beispiel 2:
ISTANBUL OR CONSTANTINOPLE?
(CONSTANTINOPLE, NEITHER, ISTANBUL)
>how are you
error
code-golf
kolmogorov-complexity
corvus_192
quelle
quelle
Antworten:
Game Maker Language (GM 8.0),
1026210228101521011587461 + 8699 = 8700 ByteWir definieren ein Skript mit dem Namen
X
(1 Byte). Jede Frage ist mit einer ganzen Zahl gekennzeichnet.X
Nimmt eine solche Ganzzahl, fordert den Benutzer mit der entsprechenden Frage auf und gibt entweder die entsprechende Nachricht zurück oder ruft die nächste Frage auf. Bei jeder Frage wird der Benutzer aufgefordert, eine Ganzzahl einzugeben, die den möglichen Optionen entspricht. Wenn der Benutzer mit keiner der Optionen übereinstimmt, wird die Eingabeaufforderung beendet.#
ist das Newline-Zeichen.Wie läuft man?
.gmk
DateiX
mit Inhalten wie obenO
mit Ereignis erstellen: Code ausführen:X(1)
R
und fügen Sie eine InstanzO
davon einGolfen
YES
jetzt immer vorNO
und wir definieren die ZeichenfolgeY="##YES (1), NO (2)"
für die Wiederverwendung."IS THERE A BIG LAKE IN THE MIDDLE OF "
und"HOW MANY "
sind lang genug und kommen so oft vor, dass sich die Abkürzung auszahlt. Sie werden zugewiesenI
undH
.X
selbst anstatt eines separaten Skripts, umget_integer
und abzukürzenshow_message
. Ausdrücklich,X
mit dem nullten Argument aufgerufen wirdH
, wirdshow_message
das erste Argument zurückgegeben.X
mit dem nullten Argument aufgerufen wirdI
, wirdget_integer
das erste Argument mit der Standardeingabe zurückgegeben1
.Ungolfed , mit Optionen in der ursprünglichen Reihenfolge und ohne Abkürzungen:
Nummerierungssystem
YES
,NO
Optionen zum Speichern von Bytesquelle
YES
zuerst setzen , um die Definition zu vermeidenN="##NO (1), YES (2)"
. Vielen Dank.