Ein bestimmtes Kinderspiel, oft "Huckle Buckle Beanstalk" genannt, wird mit zwei Spielern gespielt. Hier ist eine kurze Beschreibung, wie das Spiel gespielt wird:
- Ein Spieler wird als "Hider" und der andere als "Sucher" bezeichnet.
- Der Suchende verlässt den Raum, während der Versteckte ein kleines, vorgewähltes Objekt versteckt, den "Schatz".
- Der Hider versucht dann, nach dem Objekt zu suchen, während der Suchende ihm hilfreiche Hinweise gibt:
- Wenn sich der Suchende dem Schatz nähert, ruft der Hider "wärmer!"
- Wenn sich der Suchende vom Schatz entfernt, ruft der Hider "cooler"!
- Sobald der Suchende den Schatz gefunden hat, gibt er bekannt, dass er ihn gefunden hat.
Ihre Kinder möchten, dass Sie dieses Spiel mit ihnen spielen. Sie sind jedoch sehr damit beschäftigt, Fragen zu codegolf.SE zu beantworten. Sie beschließen also, ein Programm zu schreiben, um das Spiel mit ihnen zu spielen. Sie möchten jedoch so wenig Zeit wie möglich für die Eingabe verwenden, um das Programm so wenig Zeichen wie möglich zu machen.
Wir können den Raum, in dem das Spiel gespielt wird, als zweidimensionales toroidales quadratisches Feld definieren. Die Koordinate 0,0
ist die untere linke Ecke und die Koordinate 99,99
ist die obere rechte Ecke. Der Schatz ist an einer bestimmten Position platziert , n,m
wo n
und m
beide positive ganze Zahlen zwischen 0 und 99 inklusive.
Ihr Programm wird ein Beitrag von dem Spieler erhält ihre eingebaute Benutzereingabe - Funktion (zB prompt()
, raw_input()
usw.) Wenn Ihre gewählte Sprache nicht ist eine Benutzereingabe - Funktion hat, nehmen Sie eine Eingabe von STDIN statt. Das Spiel funktioniert wie folgt:
- Das Programm "versteckt" den Schatz an einer Position
n,m
. - Das Programm fordert den Suchenden auf, eine anfängliche Suchposition einzugeben. Die Eingabe wird in Form kommen ,
x y
wox
undy
positive ganze Zahlen sind . - Das Programm gibt "korrekt" aus, wenn die anfängliche Suchposition
x,y
gleich der Position des Schatzes istn,m
und endet. Andernfalls: - Das Programm fordert den Suchenden auf, sich zu bewegen. Die Eingabe erfolgt in Form
a b
woa
undb
sind ganze Zahlen , die negativ sein können . Dies stellt den Richtungsvektor dar , in den sich der Sucher bewegt (a
ist die x-Richtung undb
ist die y-Richtung). - Befindet sich die resultierende Position des Suchers am Schatz, gibt das Programm "korrekt" aus und wird beendet. Andernfalls:
- Das Programm gibt "kühler" aus, wenn sich der Suchende vom Schatz entfernt, oder "heißer", wenn er sich dem Schatz nähert.
- Fahren Sie mit Schritt 4 fort.
Die Wörter "wegbewegen" und "wegbewegen" können mehrdeutig sein. Wenn für diese Herausforderung die resultierende Position des Suchenden nach dem Bewegen näher am Schatz liegt als seine Position vor dem Bewegen, bewegen sie sich auf den Schatz zu. Ansonsten ziehen sie weg. (Ja, dies bedeutet, dass das Programm "kühler" ausgeben sollte, wenn die resultierende und die vorherige Position gleich weit entfernt sind.)
Dies ist Code Golf, also gewinnt der kürzeste Code. Stellen Sie Fragen, wenn die Spezifikation nicht klar ist.