Bonjour à tous 
Voilà, étant sur un jeu en console en C, j'ai un petit problème 
Voici le code en question:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <windows.h>
#define MAX_NOM 50
#define MIN_CARAC 1
#define MAX_CARAC 100
struct perso //définition d'une structure personnage avec toutes les caractéristiques
{
char nom[50];
int classe; //0: guerrier, 1: sorcier, 2: eclaireur
int corps, intellect, esprit; //caractéristiques principales
int endurance, pouvoir, habilete, adresse; //caractéristiques dérivées
int degats;
};
typedef struct perso sPerso; //utilisation de typedef pour alléger le programme
struct potion //définition d'une structure personnage avec toutes les caractéristiques
{
char nom[50];
int attribut; // intellect, corps, esprit
char symbole[50];
};
typedef struct potion sPotion; //utilisation de typedef pour alléger le programme
/*
=================================
Declaration des sous-programmes
================================= */
void Color(int couleurDuTexte,int couleurDeFond);
void afficherPerso(sPerso unPersonnage); //Déclaration du-sous-programme servant à afficher totues les informations de mon personnage
void saisirPerso(sPerso * unPersonnage); //Déclaration du sous-programme servant à saisir toutes les informations de mon personnage
int fontion_objet(sPerso *p, sPotion *po );
/*
=====================
Main du code source
===================== */
int main()
{
sPerso monPersonnage;
saisirPerso(&monPersonnage);
afficherPerso(monPersonnage);
sPotion maPotion;
fonction_objet(&monPersonnage,&maPotion);
return 0;
}
/*
================================
Definition des sous-programmes
================================ */
void saisirPerso(sPerso *p) //Définition de mon premier sous-programme
{
int c; //on crée une variable qui va nous servir à stocker le choix 0,1 ou 2
printf(" Entrer le nom de votre personnage \n "); //On demande d'afficher le nom du personnage
scanf("%s",(*p).nom); //On demande à l'utilisateur d'écrire son nom et on l'enregistre dans p.nom
do
{
printf("Choisissez vos classes parmi: \n 0 : Guerrier \n 1 : Sorcier \n 2 : Eclaireur "); //on fait choisir l'une des classes aux joueurs
scanf("%d",&c); //on stocke le choix de la classe dans la variable c
}
while((c < 0)||(c > 2)); //Boucle qui ne marche que si c est égal à soit 0,1 ou 2
srand(time(NULL)); //On initialise rand
(*p).classe=c;
(*p).corps=rand()%(10)+ 25; //La valeur de "Corps" sera un nombre entre 50 et 25
(*p).intellect=rand()%(15)+ 20; //La valeur de "Intellect" sera un nombre en 50 et 20
(*p).esprit=rand()%(15)+ 20; //La valeur de "Esprit" sera un nombre en 75 et 20
(*p).endurance=2*((*p).corps)+(*p).esprit; //On fait les calculs pour les caractéristiques secondaires
(*p).pouvoir=(*p).intellect+(*p).esprit; //Idem
(*p).habilete=(((*p).corps)+(*p).corps+(*p).intellect+(*p).esprit)/4; //Idem
(*p).adresse=((*p).corps+(*p).intellect)/2; //Idem
}
void afficherPerso(sPerso p) //Définition du second sous-programme
{
printf(" \n Voici: %s ", p.nom); // On affiche le nom stocké dans p.nom que l'utilisateur aura saisi auparavant
switch(p.classe) //swtich qui permet de savoir quelle valeur la variable c aura pris
{
case 0 : printf(" Le Guerrier \n "); //Si l'utilisateur clique sur 0, la variable c prendra cette valeur et il choisira donc la classe Guerrier
break;
case 1 : printf(" Le Sorcier \n "); //Idem pour le sorcier
break;
case 2 : printf(" L'Eclaireur \n "); //Idem pour l'Eclaireur
break;
default : printf("ERREUR : Classe inconue ! \n "); //on affiche un message d'erreur si la réponse indiquée n'est pas la bonne
}
printf(" Ses caracteristiques principales sont: \n "); //On affiche un message d'informations récapitulant les différentes caractéristiques
printf(" Corps: %d \n ", p.corps);
printf(" Intellect: %d \n ", p.intellect);
printf(" Esprit: %d \n ", p.esprit);
printf(" Ses caracteristiques derivees sont: \n "); //Idem pour les caractéristiques secondaires
printf(" Endurance: %d \n ", p.endurance);
printf(" Pouvoir: %d \n ", p.pouvoir);
printf(" Habilete: %d \n ", p.habilete);
printf("Adresse: %d \n ", p.adresse);
}
int fonction_objet(sPerso *p, sPotion *po)
{
int d;
printf("\nVous venez de trouver une potion !\n");
printf("\n Quel symbole représente votre potion?\n");
switch(po.symbole)
{
case 0 : printf("%c \n",21);
break;
case 1 : printf("\n $\n");
break;
case 2 : printf("\n s\n");
break;
default : printf("Symbole inconnu !\n");
}
printf("Choisissez votre symbole: \n 0 \n 1 \n 2"); //on fait choisir l'une des classes aux joueurs
scanf("%d",&d); //on stocke le choix de la classe dans la variable c
p->habilete=(*p).habilete + 2;
p->endurance=(*p).endurance + 2;
p->adresse=(*p).adresse + 2;
if (d=0)
{
(*p).habilete=p->habilete;
printf("Vous venez de gagner de l'habilite ");
}
else if(d=1)
{
(*p).endurance=p->endurance;
printf("Vous venez de gagner de l'endurance ");
}
else(d=2)
{
(*p).adresse=p->adresse;
printf("Vous venez de gagner de l'adresse ");
}
}
void Color(int couleurDuTexte,int couleurDeFond) // fonction d'affichage de couleurs
{
HANDLE H=GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleTextAttribute(H,couleurDeFond*16+couleurDuTexte);
}
Et avec ça, j'ai deux erreurs et 4 warnings:
|52|warning: implicit declaration of function 'fonction_objet' [-Wimplicit-function-declaration]|
|123|error : request for member 'symbole' in something not a structure or union|
|142|warning : suggest parentheses around assignment used as truth value [-Wparentheses]|
|147|warning : suggest parentheses around assignment used as truth value [-Wparentheses]|
|153|error : expected ';' before '{' token|
|157|warning: control reaches end of non-void function [-Wreturn-type]|
Build finished: 2 errors, 4 warnings (0 minutes, 0 seconds)
Je galère depuis 2heures à résoudre le problème 
Merci d'avance !!