[Langage C] Jeu

Résolu/Fermé
UNIX/VI/SHELL Messages postés 87 Date d'inscription mercredi 12 juillet 2006 Statut Membre Dernière intervention 8 avril 2009 - 16 févr. 2007 à 12:22
 Sonix33 - 19 juin 2008 à 21:08
Bonjour,

Voila mon probléme: J'ai commencé un petite jeu d'aventure en mode texte, mais j'ai un probléme, lorsque le joueur arrive dans un lieu il peut faire des actions, puis il entre dans un autre lieux, puis il quitte ce dernier pour retourné dans le précedents, MAIS LA probléme, je doit tout réecrire, SECOND PROBLÉME, je doit supposer que mon personnage puisse retourner dans le second lieu, mais la aussi je doit tout réécrire et puis ainsi de suite.

Si quelqu'un peut m'expliquer le probléme, pourra-t-il m'expliquer comment régler le probléme en écrivant un code en C.

Merci de l'aide.
A voir également:

14 réponses

Stupeflip Messages postés 391 Date d'inscription jeudi 8 février 2007 Statut Membre Dernière intervention 4 décembre 2007 94
16 févr. 2007 à 12:27
Si tu fais des fonctions, ca marchera mieux :)
7
Stupeflip Messages postés 391 Date d'inscription jeudi 8 février 2007 Statut Membre Dernière intervention 4 décembre 2007 94
16 févr. 2007 à 13:40
Oui, en fait ca te fera genre une fonction minimum par salle, avec comme parametre d'entree et de sortie une structure contenant les caractéristiques du personnage et les differents flags par exemple.

Lorsqu il rentre salle 1, tu lances fonction 1, lorsque il passe en salle 2, fonction 2, et quand il revient salle 1, tu relances la fonction 1. Les actions faites dans cette salle auparavant ont été sauvegardées dans la structure, du coup il revoit la salle dans l état où il l a laissée.

Tu peux boucler par exemple dans le main, ou dans un service appelé par le main.
2
UNIX/VI/SHELL Messages postés 87 Date d'inscription mercredi 12 juillet 2006 Statut Membre Dernière intervention 8 avril 2009 7
16 févr. 2007 à 13:43
re,

donc j'écrit une fonction : ex funtion1 je donne toute les caractéristiques (description, personnages, objets...) puis je je créait une fonction de sortie de fonction1 pour aller dans function2 .... et ainsi de suite?
2
UNIX/VI/SHELL Messages postés 87 Date d'inscription mercredi 12 juillet 2006 Statut Membre Dernière intervention 8 avril 2009 7
16 févr. 2007 à 14:02
re,

ok. Trés grand merci, ca fasait des jours que je bloquais, je vais pouvoir continuer mon jeu. Encore merci. Je ferais le jeu en C, c'est le seule langage que je connais.

Encore merci.

Solution :
-----------
Lorsque vous réalisez des jeu d'aventures, il faut réaliser plusieurs fonctions pour chaque lieu ou piéce, cela facilite les choses, ensuite vous n'avez qu'a ajouté les déatails, les personnages... puis vous crez un systeme de sortie pour alle de lieu en lieu ou piece en piece.

Encore merci Stupeflip!
2

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
UNIX/VI/SHELL Messages postés 87 Date d'inscription mercredi 12 juillet 2006 Statut Membre Dernière intervention 8 avril 2009 7
16 févr. 2007 à 13:30
J'y ai pensé. Mais est-ce que écrire toutes les boucles dans des fonctions aidera ?
1
Stupeflip Messages postés 391 Date d'inscription jeudi 8 février 2007 Statut Membre Dernière intervention 4 décembre 2007 94
16 févr. 2007 à 13:52
Dans ta fonction, tu fais tout ce qui est possible de faire par le personnage dans cette piece. Par exemple tu peux faire un truc genre:

- Tu rentres dans la piece (description)
- Tu peux faire
- ca
- ou ca
- ou meme ca
- Attente du choix du personnage
- Action en conséquence
- Soit tu refais autre choses, soit il quitte la piece

Bien sur tu peux étoffer plus que ca, c est un cas simple ici ;)

Si jamais tu preferes faire des caractéristiques par salle, je te conseille de passer en C++ et de faire une classe Salle, c est un peu plus compliqué a prendre en main mais c est plus facile a relire et également plus rapide si jamais tu as plein de salles (en gros c est plus long a prendre en main, mais tu feras les salles plus rapidement ensuite).
1
Stupeflip Messages postés 391 Date d'inscription jeudi 8 février 2007 Statut Membre Dernière intervention 4 décembre 2007 94
16 févr. 2007 à 14:18
Content d'avoir pu t'aider :)
1
ekra Messages postés 1870 Date d'inscription vendredi 15 avril 2005 Statut Membre Dernière intervention 24 juillet 2014 342
16 févr. 2007 à 14:46
Bonjour,

Si tu fais une fonction par salle, tu peux utiliser des pointeurs de fonctions et en faire un tableau.
Du coup
(tab_fonc[i])()

appellera la bonne salle en fonction de i.

Après, bon courage ;)
0
UNIX/VI/SHELL Messages postés 87 Date d'inscription mercredi 12 juillet 2006 Statut Membre Dernière intervention 8 avril 2009 7
16 févr. 2007 à 15:31
dans un jeu, il y a beaucoup de salle, si je me met a utuliser des pointeurs en utulisant le langage C, je vais avoir des problémes de mémoires.
0
Stupeflip Messages postés 391 Date d'inscription jeudi 8 février 2007 Statut Membre Dernière intervention 4 décembre 2007 94
16 févr. 2007 à 15:46
C'est surtout que c'est bien plus simple de faire des fonctions tout ce qu'il y a de plus normal :) Si tu écris bien tes noms de fonctions, du genre:

salle_1
salle_2
salle_3

ou

Entrée_rdc_1
Couloir _rdc_1
Chambre_1er_1
Couloir_2e_1
Couloir _2e_2

Bref tes appels de fonctions seront très bien et compréhensibles, pas vraiment d'intérêt à passer par un tableau de fonctions :)
0
UNIX/VI/SHELL Messages postés 87 Date d'inscription mercredi 12 juillet 2006 Statut Membre Dernière intervention 8 avril 2009 7
16 févr. 2007 à 20:28
C'est sur.
0
wtf!!!!!
0
"dans un jeu, il y a beaucoup de salle, si je me met à utiliser des pointeurs en utilisant le langage C, je vais avoir des problèmes de mémoire."
Non ne t'inquiètes pas ton jeu aurra vraiment beaucoup de mal à avoir autant de salles qu'il y a de cases mémoires dans ton ordinateur (à moins d'avoir un des touts premiers ordis et encore ...).
La mémoire des ordinateurs est aujourd'hui très grande et bien organisée tu peux l'utiliser sans crainte (si tu savais comme certains programme la "gâchent" masivement ...).
0
Sinon tu peux aussi mettre un if suivi d'un goto qui renvoie à l'arrivée de la 1ere salle
0