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

Free Pascal Discussion :

Création d'un lecteur d'histoires à l'aide d'enregistrements


Sujet :

Free Pascal

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2020
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 23
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2020
    Messages : 13
    Par défaut Création d'un lecteur d'histoires à l'aide d'enregistrements
    Bonsoir,
    Je souhaiterais acquérir quelques aides au sujet d'un projet informatique en cours de réalisation. Mon projet étant de créer un lecteur d'histoires interactives. Le héros se déplace en effet sur un plateau, et tout du une histoire se déroule, permettant au joueur de réaliser des choix au cours de son aventure. Tout cela à partir de fichier.
    Le problème étant : j'aimerais pouvoir afficher des parties de l'histoire en fonction de l'activité du joueur. Et pour cela, je ne sais pas comment stocker les informations du fichier afin de ne récupérer que les parties correspondantes.
    Je pensais d'abord réaliser un fichier texte présenté de la façon suivante :
    1
    Il était une fois....#
    2
    blablbalablab#
    Le '#' étant le "signal" d'arrêt d'une boucle possible. J'ai tenté d'utiliser des tableaux et de stocker chaque partie de l'histoire dans une ligne du tableau. Permettant ainsi de réaliser une numérotation des parties (tab[i]). Néanmoins, mon code ne semble pas fonctionner à merveille et rien que l'aperçu n'est pas des meilleurs. C'est pourquoi je souhaitais explorer une autre piste conseiller par mon professeur, les enregistrements. Mais j'avoue être complètement perdue quant à l'assignation des informations aux différentes structures... Serait-ce sous forme d'Array? Ou de String..?

    Si je pouvais avoir un quelconque brin d'espoir par rapport à tout cela, ce serait vraiment gentil...
    En tout cas, merci de vos futures réponses !

  2. #2
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 130
    Billets dans le blog
    9
    Par défaut
    Bonjour !

    Intéressant comme projet. C'est difficile comme ça de vous aider. Qu'est-ce qui n'allait pas exactement, avec votre première idée ? Si c'est juste que ça ne marchait pas, ça peut toujours s'arranger.

    Autrement, je ne suis pas sûr de comprendre ce que vous voulez faire avec des enregistrements. Si c'est ce que je pense (stocker votre ensemble de textes dans un fichier d'enregistrements), vous pourrez peut-être lire avec profit cette discussion : opérations sur un fichier d'enregistrements

    Après, l'idée d'un seul fichier texte, convenablement formaté, ce n'est pas mal non plus. Ou alors plusieurs fichiers numérotés...

  3. #3
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2020
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 23
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2020
    Messages : 13
    Par défaut
    Citation Envoyé par Roland Chastain Voir le message
    Bonjour !

    Intéressant comme projet. C'est difficile comme ça de vous aider. Qu'est-ce qui n'allait pas exactement, avec votre première idée ? Si c'est juste que ça ne marchait pas, ça peut toujours s'arranger.

    Autrement, je ne suis pas sûr de comprendre ce que vous voulez faire avec des enregistrements. Si c'est ce que je pense (stocker votre ensemble de textes dans un fichier d'enregistrements), vous pourrez peut-être lire avec profit cette discussion : opérations sur un fichier d'enregistrements

    Après, l'idée d'un seul fichier texte, convenablement formaté, ce n'est pas mal non plus. Ou alors plusieurs fichiers numérotés...
    Bonjour à vous!
    Merci beaucoup de votre réponse.. Je vous mets le code que j'ai pour l'instant pour que vous puissiez y jeter un oeil. Je n'en suis pour l'instant qu'au début donc le plateau n'est pas encore relier à la lecture de l'histoire (ce sera sûrement compliquer mais j'aimerais relier position du personnage à une partie d'histoire du coup.

    Le problème pour l'instant, j'ai chargé l'histoire dans un tableau 1D composé seulement de ligne mais je n'arrive pas à ne faire afficher qu'une partie de celle-ci. Je pense que le problème vient de la procédure Lecture car j'utilise histoire [i] afin de lire les strings mais ça ne fonctionne pas ici, nénanmoins je ne vois pas comment faire..

    Voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
     
    program test;
     
    uses crt, sysutils;
    const MAX=10;
     
    Type THistoire = Array [1..MAX] of String;
     
     
    procedure chargementhistoire(FileName : String; var History : THistoire);
    var fic	: Text;
       str	: String;
       j : Integer;
    begin
    	if (FileExists(FileName)) then
    	begin
    		assign(fic,FileName);
    		reset(fic);
    		while (not eof(fic)) do
    			begin
    				readln(fic,str); 
    				j:=0;
    				History[j]:=str;
    				writeln(History[j]);
    				j:=j+1;
    			end;
    	end
    	else
    		begin
    			writeln('Erreur le fichier n''existe pas');
    			halt();
    		end;
    end;
     
    procedure lecture(var history : THistoire);
    var i: Integer;	
    	begin
    		i:=0;
    		if history[i] = 'Introduction (0)' then
    			begin
    				while history[i] <> '#' do
    					begin
    						writeln(history[i]);
    						i:=i+1;
    					end;
    			end;
    	end;
     
     
    var FileName : String;
    	History : THistoire;
    BEGIN
    	writeln('Quel est le nom du fichier?');
    	readln(FileName);
    	chargementhistoire(FileName, History);
    	lecture(History);
    END.
    J'ai aussi jeté un oeil à votre lien proposé, c'est assez complet mais je vous avoue avoir du mal à comprendre voire à imaginer, est-ce qu'assigner un fichier déjà existant est possible? Je comprends les structures lors de l'utilisation avec des données mais lors de l'utilisation de fichiers j'ai beaucoup de mal..

    Merci de votre aide o/ (et pardon je viens de me rendre compte que le site a cassé toute mon indentation--)

  4. #4
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 130
    Billets dans le blog
    9
    Par défaut
    Dans la procédure ChargementHistoire, il faut initialiser la variable j avant la boucle, autrement elle reste toujours à zéro. Et il faut l'initialiser à 1.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
      j:=1;
      while (not eof(fic)) do
      begin
        readln(fic,str); 
        //j:=0;
    Dans la procédure Lecture aussi, il faut initialiser la variable à 1.

  5. #5
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2020
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 23
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2020
    Messages : 13
    Par défaut
    Citation Envoyé par Roland Chastain Voir le message
    Dans la procédure ChargementHistoire, il faut initialiser la variable j avant la boucle, autrement elle reste toujours à zéro. Et il faut l'initialiser à 1.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
      j:=1;
      while (not eof(fic)) do
      begin
        readln(fic,str); 
        //j:=0;
    Dans la procédure Lecture aussi, il faut initialiser la variable à 1.
    C'était ce que j'avais fait pour j... Néanmoins, lors de l'exécution, le programme bug et me lance tout un charabia informatique très rapidement...

  6. #6
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 130
    Billets dans le blog
    9
    Par défaut
    Citation Envoyé par Fernus-Rth Voir le message
    C'était ce que j'avais fait pour j... Néanmoins, lors de l'exécution, le programme bug et me lance tout un charabia informatique très rapidement...
    Qu'est-ce qu'il y a dans votre fichier ? Dans le mien j'ai mis ceci :

    Code X : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Introduction (0)
    bla
    bla
    #
    coucou

    Si vous voulez mettre quelque chose avant ou après le #, il faut changer cette condition, qui est trop restrictive :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    while history[i] <> '#' do

Discussions similaires

  1. Création d'un lecteur audio simple
    Par thelpi dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 30/12/2007, 21h53
  2. Création d'un lecteur l'images
    Par ghost emperor dans le forum Windows Forms
    Réponses: 12
    Dernier message: 25/10/2007, 19h47
  3. [WD10] aide pour la création d'un lecteur multimédia
    Par marge62500 dans le forum WinDev
    Réponses: 7
    Dernier message: 12/03/2007, 17h13
  4. [JAVALayer] Création d'un lecteur MP3
    Par chesteric31 dans le forum Multimédia
    Réponses: 5
    Dernier message: 09/10/2005, 14h21

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