API Ostereiersuche!
Es gibt eine API unter http://easter_egg_hunt.andrewfaraday.com, die speziell für Sie eine Ostereiersuche anbietet ...
Sie können die API-Dokumente unter der oben angegebenen Adresse anzeigen oder von hier aus versuchen.
Die API:
Alle Aufrufe dieser API sind GET-Anforderungen, die eine JSON-Zeichenfolge zurückgeben.
Diese Beispiele dienen nur zur Veranschaulichung in einem 5x5-Garten. Die API wird tatsächlich in einem 100x100-Garten ausgeführt (von Index 1 bis 100).
/new_game
Intern erzeugt die API einen Garten und versteckt darin ein Ei.
In diesem Beispiel ist das Ei bei 4, 4
+----------+
| |
| |
| |
| |
| E |
| |
| |
| |
| |
| |
+----------+
Anruf
/new_game
Kehrt zurück
{game_id: 'abcde'}
/guess/:game_id/:x/:y
Die API schaut in den Garten und sagt Ihnen, wie nah Sie sind.
Wenn Sie 2 runter und 8 runter raten, sieht der Garten so aus
+----------+
| |
| |
| |
| |
| E |
| |
| |
| g |
| |
| |
+----------+
Anruf
/guess/abcde/2/8
Kehrt zurück
{x: 'higher', y: 'lower'}
Dies bedeutet: * Dein x ist zu niedrig (die Ei-Position ist höher) * Dein y ist zu hoch (die Ei-Position ist niedriger)
Richtiger Anruf:
/guess/abcde/4/4
Kehrt zurück
{x: 'right', y: 'right', turns: 10}
Die Regeln
Schreiben Sie ein Programm, um das Osterei mit einer API zu finden.
- Verwenden Sie eine beliebige Sprache.
- Versuchen Sie, prägnanten, aber lesbaren Code zu schreiben.
- Ihr Programm MUSS jedes Mal '/ new_game' aufrufen und die game_id verwenden, die bei allen 'rate'-Aufrufen zurückgegeben wird. Kein Blick in den Garten!
- Versuchen Sie, das Spiel mit der geringstmöglichen Anzahl von Anrufen zu beenden.
- Dies ist kein Code Golf.
Kompetitive Antwort?
Um die Chance auf einen Gewinn zu haben, müssen wir Folgendes wissen:
- Welchen Code verwendest du? (In deiner Antwort oder einem Github-Link, wenn er größer ist, als du gerne eine Antwort eingibst.)
- Führen Sie Ihren Code zehnmal aus, notieren Sie sich die game_id und punkten Sie jedes Mal.
-game_id- : -score-
z.B
abbbbbbb : 10
Abbbbbdd : 5
(Hinweis: Die game_ids sind erforderlich, um ein Ergebnis zu überprüfen.)
Die Punktzahl wird folgendermaßen berechnet:
- Die beiden höchsten und niedrigsten Ergebnisse werden ignoriert.
- Die restlichen 6 Punkte werden addiert.
- Das ist deine Punktzahl.
- Die niedrigste Punktzahl gewinnt.
Nachtrag
Tl, dr: Die App ist ein bisschen mies.
Die API wurde in ungefähr 90 Minuten geschrieben und ist auf einem Raspberry Pi 2 implementiert. Bitte gehen Sie schonend mit meinem API-Server um. Wenn Sie dieses arme Ding DDOS, könnten Sie es für alle verderben.
Es ist auch mit NOIP implementiert, um eine statische IP-Adresse zu simulieren, aber manchmal fällt dies für eine Weile aus. Das ist es, was ich für das Null-Budget-Webhosting bekomme.
Nur zum Kichern, hier ist eine einfache statistische Analyse der gespielten Spiele ... http://easter_egg_hunt.andrewfaraday.com/stats