Bonjours a tous, j'ai déja réaliser une aplication en mode console d'un jeu du chat et de la souris (un chat doit attraper une souris dans un labyrinthe composé de pièce, la souris étant dans l'une des pièces)
Je n'est jamais réaliser d'application graphique, j'ai juste quellque notion de bases concernant les composants.
voici la déclaration de type de ma matrice contenant le labyrinthe
TYPE
LABY=record
chemin : boolean; //acces sans condition
chatiere:integer;//taille de la chatière si elle existe, 0 sinon
secret:boolean;//matrice d'adjacence de l'existence ou non de passage secret
end;
//type matrice dynamique: Graphe contenant le Labyrinthe
T_MAT_LAB=array of array of LABY;
voici la procedure de remplissage de la matrice a partir du fichier texte
procedure init_GRAPH(var MAT :T_MAT_LAB;dim:integer);
//procedure permettant d'initialiser la matrice d'adjacence du graph
//PE:dim : le nombre de salle du labyrinthe
//PS MAT :dimensionnée et initialisée
var
//compteurs, permettent de passer en revue tout les élément de la matrice
cpt_ligne, cpt_colonne:integer;
begin
Setlength(MAT,dim,dim);//dimensionnement de la matrice
For cpt_ligne:=0 to dim-1 do
For cpt_colonne:=0 to dim-1 do
begin//initialisation des champs de la matrice
MAT[cpt_ligne,cpt_colonne].chemin := (cpt_colonne=cpt_ligne);
MAT[cpt_ligne,cpt_colonne].chatiere:=0;
MAT[cpt_ligne,cpt_colonne].secret:=false;
end;
end;
////////////////////////////////////////////////////////////////////////////////
PROCEDURE INITIALISATON_GRAPH(var MAT:T_MAT_LAB;var dim:integer);
//procedure permettant de creer le Labyrinthe a partir d'un fichier texte
//PE:dim : le nombre de salle du labyrinthe
//PE: MAT :dimensionnée et initialisée
//PS: MAT :matrice d'adjacence des éléments du graph
var
nom_phys:string;//contient le nom physique du fichier texte
fdon:textfile; //contient le nom logique du fichier texte
cpt:integer; //compteur, permet de faire varier les collones
sommet:integer; //permet d'enregistrer le sommet lu dans le fichier texte
Begin
repeat
writeln('Entrer le nom du fichier contenant le labyrinthe (laby(n).txt)?');
readln(nom_phys);//enregistrement du nom physique du fichier saisie par l'utilisateur
until FileExists(nom_phys)=true;//vérification de l'existence du fichier
assignfile(fdon,nom_phys);//association :nom logique-nom physique
reset(fdon); //ouverture en lecture du fichier
readln(fdon,dim); //le premier élément du fichier est la dimension
init_GRAPH(MAT,dim); //procedure permettant d'initialiser la matrice d'adjacence du graph
While not EOF(fdon) do //tant qu'on a pas atteind la fin du fichier faire
begin
//chatieres
for cpt:=0 to dim-1 do//pour le numéro de collone variant de 0 à dim-1 faire
begin
While not EOLN(fdon) do//tant qu'on a pas atteind la fin de la ligne faire
begin
read(fdon,sommet);//lire le sommet du fichier
MAT[cpt,sommet].chemin:=true;//affectation de l'existence d'un chemin
MAT[cpt,sommet].chatiere:=5; //affectation de l'existence d'une chatière
end;
readln(fdon);//changer de ligne
end;
//passages secrets
for cpt:=0 to dim-1 do //pour le numéro de collone variant de 0 à dim-1 faire
begin
While not EOLN(fdon) do//tant qu'on a pas atteind la fin de la ligne faire
begin
read(fdon,sommet); //lire le sommet du fichier
MAT[cpt,sommet].chemin:=true;//affectation de l'existence d'un chemi
MAT[cpt,sommet].secret:=true;//affectation de l'existence d'un passage secret
end;
readln(fdon);//changer de ligne
end;
end;
closefile(fdon);//fermeture du fichier
end;
Es ce que quelqu'un aurait une idée pour représenter ce labyrinthe en mode graphique (quelle composant utilisé??) en 2D (un peu comme packman)?
merci d'avance et bonne journée a tous
(ci joint le programme en mode console: fichier du laby laby1.txt ou laby2.txt)
Partager