Bonsoir,
J'aimerais vous proposez, avant les fêtes un petit challenge. Les vacances débutant ce soir (pour la plupart), cela vous donnera un peu de travail pour vos vacances si vous n'en aviez pas assez.
Objectif
Votre mission si vous l'acceptez sera de dessiner une image. Bon, certes ce ne sera pas une vraie image avec plein de couleurs, non, on va juste se restreindre à deux symboles : le point "." et le dièse "#". De surcroît, le modèle vous est donné.
Je sens venir un piège, quel est-il ?
Ok, le piège est le suivant : Pour dessiner l'image, vous avez le droit seulement à deux instructions :
- SQUARE x y n qui signifie dessiner un carré rempli de "#" de centre en x y et de taille
$2n+1$ . En particulier pour juste dessiner la case x y vous utiliserez SQUARE x y 0. - ERASE x y qui signifie de remplacer la case x y par le symbole "."
Puisque c'est un challenge, votre objectif va être de minimiser le nombre d'actions à utiliser pour reproduire le modèle.
Input
En entrée, votre programme prendra un fichier modèle. Ce fichier est constitué seulement des symboles "." et "#".
......
.####.
.#..#.
.####.
......
Output
Votre programme fournira un ensemble d'instructions de la forme ERASE x y ou SQUARE x y n qui permettent de reproduire le modèle.
SQUARE 2 2 1
SQUARE 2 3 1
ERASE 2 2
ERASE 2 3
Résultats
Puisque c'est un challenge, votre objectif est donc de minimiser le score (le nombre d'instructions en sortie) de votre programme sur un (peut-être plusieurs) jeux d'essais.
Le modèle de base que je vous fournis se trouve à l'adresse suivante : Modèle1
Afin de vous aidez dans la conception de votre algorithme, j'ai concocté un petit programme qui vérifie que la solution donnée par votre programme est correcte. Je le rendrais disponible dans la soirée je pense.
Pour chaque personne participant au challenge, je mettrais à jour un tableau correspondant avec les scores.
Il est temps pour moi de vous souhaitez bonne chance !
Amuesez-vous bien
-
Si vous avez un meilleur site d'upload je suis preneur ↩