Ici , vous aurez accès à tout mes projets de programmation.

Spy

Un espion de renommée mondiale (appelons-le James) doit s'échapper d'une tour de sécurité.
Celle-ci est composée de couloirs parallèles et de portes (toutes fermées) les reliant, et James n'a sa disposition qu'un panneau de contrôle contenant des interrupteurs, permettant d'actionner certaines portes.


Malheureusement, quand il en ouvre certaines, d'autres peuvent se refermer !

- Il y a donc un certain nombre de colonnes empêchant James de sortir.
- Chaque colonne est composée d'un certain nombre de portes, qui peut être variable.
- La bonne nouvelle, c'est que pour lui permettre de franchir une colonne, il " suffit " qu'une seule de ses portes soit ouverte.
- La mauvaise, c'est qu'en manipulant des interrupteurs, il lui faut qu'au moins une porte soit ouverte pour chaque colonne.

Plusieurs types de tour de sécurité peuvent exister. Celles-ci se différencient par le nombre de colonnes et de types de portes.

Le but est donc de trouver une combinaison de positions d'inverseurs du panneau de contrôle (plusieurs peuvent exister) permettant d'ouvrir au moins une porte par couloir, et ceci le plus vite possible, afin de permettre à James de ramener les documents secrets qu'il a dérobés dans les plus brefs délais.

Le programme prend en entrée une tour codée dans un fichier. Ce fichier sera structuré comme suit :


Types de portes : n
Nombres de couloirs : m
------------------------------------
colonne_1
------------------------------------
colonne_2
------------------------------------
...
------------------------------------
colonne_m
------------------------------------


Chacune des m colonnes est de ce type : s1 p1 - s2 p2 - ... - si pi où (pour tout j entre 1 et i) :

- sj = h si la porte est en position "haute" (flèche vers le haut)
- sj = b si la porte est en position "basse" (flèche vers le bas)
- pj est un entier entre 1 et n identifiant le type de porte


Dès qu'une solution a été découverte, le programme l'affiche sous la forme suivante :
Solution : s1 p1 - s2 p2 - ... - sipi



Travail réalisé en binôme avec Christophe Forycki

    0 Réponse(s)