IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Delphi Discussion :

etablir un labyrinthe en graphique a partir d'une matrice


Sujet :

Langage Delphi

  1. #1
    Futur Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    16
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 16
    Points : 9
    Points
    9
    Par défaut etablir un labyrinthe en graphique a partir d'une matrice
    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)
    Fichiers attachés Fichiers attachés

  2. #2
    Membre actif
    Profil pro
    ----
    Inscrit en
    Mai 2004
    Messages
    185
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : ----

    Informations forums :
    Inscription : Mai 2004
    Messages : 185
    Points : 245
    Points
    245
    Par défaut
    Pour l'affichage utilise un Paint box pour dessiner. §Si tu a des sprite different, utilise une paint box par Sprite avec une couleur de fond transparente.
    La conception graphique n'est pas trés compliquer. Par contre, il faudras que tu travaille pour t'y abituer.
    Dans un autre cas, tu devrait pouvoir utiliser un composant comme JediDirect X... l'affichage est bien mieux, puisqu'il utilise les composant DirectX et non le GDI de Windows. Par contre leur mise en oeuvre est un poils plus compliquer
    De toutes les choses que j'ai perdue,
    Celle qui me manque le plus...
    c'est mon esprit !

Discussions similaires

  1. Réponses: 2
    Dernier message: 23/05/2013, 13h57
  2. Graphique 3D à partir d'une matrice 3D
    Par emilie89 dans le forum MATLAB
    Réponses: 1
    Dernier message: 22/10/2012, 15h17
  3. graphique croisé à partir d'une requete
    Par narr255 dans le forum WinDev
    Réponses: 1
    Dernier message: 20/05/2011, 20h22
  4. Nommer un graphique a partir d'une cellule
    Par Potzo dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 02/07/2010, 09h06
  5. graphique a partir d une requete croisée dynamique
    Par tamerlan dans le forum Access
    Réponses: 2
    Dernier message: 30/03/2006, 09h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo