Salve ....ho 3 file linkati ......main.c , gamelib.c e gamelib.h ....vi lascio il gamelib.h ...
#ifndef GAMELIB_H
#define GAMELIB_H
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
#include <string.h>
#include <unistd.h>
#include <math.h>
void gioca();
void crea_mappa();
void termina_gioco();
enum Tipo_pericolo{
nessun_pericolo,
trappola,
alieno
};
enum Stato_giocatore{
vulnerabile,
scudo_vita,
solo_vita,
solo_scudo
};
enum Tipo_oggetto{
nessun_oggetto,
medikit,
pozione,
materiale,
colpi_lanciarazzi
};
struct Giocatore {
enum Stato_giocatore stato;
int x;
int y;
unsigned short int zaino[3];
unsigned short int uccisioni_alieni;//uccisioni_alieni;
};
struct Cella{
enum Tipo_pericolo pericolo;
enum Tipo_oggetto oggetto ;
};
#endif
ora il problema di fondo è molto semplice ....quando nel gamelib.c faccio ++Ninja.uccisioni_alieni ....oppure ...++Ciccio.uccisioni_alieni oltre che andare ad aumentare il numero di alieni uccisi per Ciccio o per Ninja va ad aumentare inspiegabilmente il materiale presente nello zaino dei giocatori....
quindi se faccio ++Ninja.alieni_uccisi oltre ad interpretrarlo come dovrebbe ,il compilatore lo legge anche come ++Ninja.zaino[materiale]...
non riesco proprio a capire dov'è il problema....