Problème programmation en C

Fermé
ListDigger Messages postés 2 Date d'inscription dimanche 27 juillet 2014 Statut Membre Dernière intervention 27 juillet 2014 - 27 juil. 2014 à 12:57
ListDigger Messages postés 2 Date d'inscription dimanche 27 juillet 2014 Statut Membre Dernière intervention 27 juillet 2014 - 27 juil. 2014 à 13:54
Bonjour, je crée un petit RPG sur l'univers de Mario mais j'ai un problème : quand un combat est fini, le programme s'arrête, et moi je voudrais que ça ramène au menu principal. J'ai cherché mais je n'ai pas trouvé, aidez-moi s'il vous plaît :(

Voici le code :

#include <stdio.h>
#include <stdlib.h>

int nombreDePieces = 0;
int niveau = 1;
int vieJoueur = 5;
int vieGoomba = 3;
int monde = 0;
int xp = 0;


int main()
{
printf("Bienvenue dans mario rpg !\n");
if (monde==0)
if(vieJoueur>0)

printf("Vous etes dans le monde Menu, \n0.Monde Menu\n1.Monde 1\n2.Monde Boutique\n");
scanf("%d", &monde);

if (monde==1)
{
int monde1 = 0;
printf("Vous vous trouvez dans le monde 1\n");
printf("0.Menu\n1.Les plaines\n");
scanf("%d", &monde1);
int Goomba = 0;

if (monde1==1)
printf("Vous etes dans les plaines.\n0.Menu\n1.Combattre Goomba");
scanf("%d", &Goomba);
int attaque = 0;
{
if (Goomba==1)
printf("Vous engagez le combat contre Goomba\n");
while (vieGoomba > 0)
{
printf("1.Coup de poing");
scanf("%d", &attaque);
if (attaque==1)
printf("Goomba perd 1Pv\n");
vieGoomba = vieGoomba - 1;
vieJoueur = vieJoueur - 1;
printf("Goomba utilise Coup de boule. Joueur perd 1 pv. Il vous reste %d pv\n", vieJoueur);
if (vieGoomba==0)
printf("Goomba est mort ! Vous ramassez 2 pieces et gagnez 1 XP.\n");
int nombreDePieces = nombreDePieces + 2;
int xp = xp + 1;



}

}



if (monde==2)
{
printf("Vous vous trouvez dans le monde Boutique\n");
}
}
return 0;
}
A voir également:

1 réponse

fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 841
27 juil. 2014 à 13:32
Bonjour,

Tu n'es pas très bien parti...
Dès que ton programme va se complexifier, il sera illisible...
Je te conseille de mieux le structurer.
Déjà, oublie les variables globales. N'utilise que des variables locales.
Ensuite, utilise des fonctions. Grosso modo, dans ton main(), tu appelles les différentes fonctions créées. Tu gagneras vraiment en lisibilité.
Ensuite, en C les classes n'existent pas, mais tu peux utiliser des structures. Tu crées une structure Personnage, etc. Ca sera plus efficace.
Attention aussi, à ne pas déclarer tes variables n'importe où. Ca se fait en début de bloc.

Sinon pour ne pas quitter le jeu, il te suffit de faire une boucle while.
int main(void) {
     /*déclaration des variables*/
     int fin=0;
     while (!fin) {
          /*ton jeu*/
          printf("Voulez-vous quitter ? 0 : Non, 1: Oui");
          scanf("%d", &fin);
     }
     
     return 0;
}


Pour la prochaine fois, merci d'utiliser la balise "code c".
Par exemple : <"code c">/*ici je mets mon code*/<"/code"> (sans les guillemets. Ca sera beaucoup plus lisible pour nous.

Cdlt,
2
ListDigger Messages postés 2 Date d'inscription dimanche 27 juillet 2014 Statut Membre Dernière intervention 27 juillet 2014
27 juil. 2014 à 13:54
Merci beaucoup je vais essayer comme ça.
0