Votre équipe vient de mettre à jour une zone géographique très étendue dans laquelle sont répartis un grand nombre de Pokémons.
Les Pokémons en question sont particulièrement grégaires et se regroupent systématiquement par paquets de même type. Vue de dessus, la zone géographique en question pourrait ressembler à quelque chose comme ceci, chaque couleur représentant un type particulier (notez qu'en haut à gauche et en haut à droite, les Pokémons sont de même type mais forment deux groupes séparés).
Les Pokémons sont repérés par leurs coordonnées (un couple x, y). Étant donné un couple de coordonnées, vous allez devoir établir quel est le type du Pokémon.
Vous ne disposez toutefois d'aucune information sur leur répartition. Vous savez simplement qu'ils ont tendance à se regrouper par type.
Pour réussir ce défi, vous allez dialoguer avec un serveur :
Ces trois étapes peuvent être répétées des milliers de fois si vous le souhaitez. Le défi sera validé si vous donnez le type correct pour 25 Pokémons successifs, c'est à dire si vous arrivez à faire une série de 25 réponses justes.
En entrée du problème, deux URLs vous sont communiquées. Elles ressemblent à ceci :
http://.../MachineLearning/C0MfHAoFXBILF1INEgYfCVxEvbUw=/getpoint
http://.../MachineLearning/C0MfHAoFXBILF1INEgYfCVxEvbUw=/reponse
Si vous consultez la première URL, un couple de coordonnées vous est renvoyé, au format json. Par exemple :
[24.625, 74.875]
Vous avez alors 60 secondes pour consulter l'autre URL, en ajoutant au bout votre proposition pour le type du Pokémon. Les types étant simplement numérotés, vous avez juste à envoyer un nombre strictement positif (1 par exemple). Si vous pensez que le Pokémon aux coordonnées [24.625, 74.875] est de type 1, il suffit donc de consulter l'URL :
http://.../MachineLearning/C0MfHAoFXBILF1INEgYfCVxEvbUw=/reponse/1
En réponse à cette requête, le serveur, vous renverra, toujours au format json, la réponse correcte (qui est peut être celle que vous avez donnée, ou peut-être pas). Par exemple :
3
Voici ce que pourrait être un échange avec le serveur :
http://.../getpoint
=> [20, 22.5]
http://.../reponse/2
=> 1
http://.../getpoint
=> [20, -10.5]
http://.../reponse/2
=> 2
...
Attention à ne pas aller trop vite. Au moins 1 seconde doit s'écouler entre deux requêtes getpoint
.
Si vous ne respectez pas ce délai, cela comptera pour une faute, et remettra le compteur des succès consécutifs
à zéro !
Si vous donnez la bonne réponse 25 fois consécutives, c'est gagné ! À ce moment, le serveur, plutôt qu'envoyer la catégorie du Pokémon, vous enverra un nombre strictement négatif. Par exemple :
-9234
Si vous entrez ce nombre comme réponse dans la page, vous validez le défi.