Restroom Redoubt : Déplacer des robots jusqu'à qu'ils fassent un joli dessin, sans qu'on sache quel dessin.
p=38,76 v=-61,88
p=28,22 v=-43,-40
p=76,78 v=-98,87
⋮
code.py Affiche sur chaque ligne les meilleures et les moins bonnes images selon différents critères. Le nombre de voisins fonctionne (qui touchent, ou aussi en diagonales), ou encore l'écart moyen au centre. Dans les critères absents du code et de l'image générée, on compte aussi le nombre de positions X et Y différentes minimal (en faisant la somme ou le produit des deux, mais pas si on prend seulement l'un ou l'autre), ou encore le nombre de positions (x,y) MAXIMAL (car les points de l'image n'ont pas de raison d'être superposés, et du reste, c'est la seule image avec aucun point superposé), et aussi une mesure d'entropie, comme par exemple la longueur du résultat de zlib.compress(bytes(str(positions_now), 'utf-8'). Mais surtout, critère ultime, on peut utiliser le minimum du scoring de la partie 1 !
Avec code_spotIt.py, les images défilent et il faut se débrouiller pour trouver la bonne.
Dans ce fichier code_spotIt.py, on peut trouver l'utilisation de @property. Cela permet de pouvoir accéder à robot.x plutôt que robot.get_x(), mais de passer quand même par des getter et setter. Usage 1 : Ainsi, avec robot.x = 17, robot.position sera mis à jour. Usage 2 : De plus, on peut interdire de modifier robot.vx en ne créant pas de setter. Usage 3 : Autre utilisation de @property, pouvoir appeler robot.quadrant avec la valeur calculée uniquement quand demandée.
Dans le fichier code_makeFiles.py, on utilise le format pbm, qui est très facile à écrire. Pas besoin de librairie image ! Un des deux formats permet même d'écrire les 0 et 1 en mode texte (mais prend 150Mo de place au lieu de 40).