Skip to content

2022/2023-s2

L'épreuve dure 1h30.

Elle se déroule en mode examen, pour lequel l'accès à internet est bloqué, excepté les sites suivants :

Vous devez travailler directement sur le fichier simule.py fourni et présent dans le dossier exam se trouvant sur le bureau de votre session d'examen.

Vous devez envoyer votre travail sur un serveur, toutes les 15 minutes environ, en cliquant sur ENVOYER se trouvant également sur le bureau.

À la fin de l'examen il faut cliquer sur ENVOYER ET FINIR, toujours sur le bureau, et ne surtout pas éteindre la machine à la main en appuyant sur le bouton de mise/arrêt sous tension.

Préambule

On s'intéresse pour cet examen à la simulation d'un ensemble de commandes consistant à allumer et éteindre des leds disposées sur une grille bi-dimensionnelle de taille 1000x1000. Une led est identifié par son numéro de colonne et son numéro de ligne. Par exemple, la led (41, 17) représente la 41ème led de la 17ème ligne. La led dans le coin supérieur gauche de la grille est donc la led (0, 0) et la led dans le coin inférieur droit est la led (999, 999).

Nous disposons de trois commande :

  • turn_on qui allume la led indépendamment de son état précédent
  • turn_off qui éteint la led indépendamment de son état précédent
  • toggle qui inverse l'état de la led

Une commande s'applique sur un sous ensemble rectangulaire de leds défini par le coin en haut gauche du rectangle et le coin en bas à droite du rectangle. Par exemple turn_on (1,1) through (2,3) allume les leds en positions :

  • (1,1), (2,1)
  • (1,2), (2,2)
  • (1,3), (2,3)

Génération du fichier commandes.txt

Avant de commencer à coder vous devez générer le fichier commandes.txt contenant la liste de 15 commandes qui vous est propre. Pour ce faire vous devez analyser et utiliser le fichier genere_commandes.py. Il est INTERDIT de modifier le fichier genere_commandes.py pour générer le fichier commandes.txt.

Implémentation de simule.py

Complétez tous les TODO présents dans le fichier simule.py. Pour bien comprendre ce qui est attendu, il est très fortement recommandé de commencer par analyser le code de la fonction fournie teste. Il est également très fortement recommandé d'implémenter les TODO dans l'ordre du fichier.