No sé si será por esto pero el código de la estructura partides es un poco raro.En las líneas:
typedef info tPartides[MAX_PARTIDES];
typedef maquina tMaquina[MAX_INTENTS];
estás definiendo un nuevo tipo que dudo que esté bien (de hecho no lo utilizas en el resto del código que has puesto).Creo que lo que quieres hacer es declarar 2 nuevos tipos con las estructuras info y maquina y en partides tener tablas con esos nuevos tipos.Si es eso creo que sería mejor hacer algo así:
typedef struct {
string usuari,guanyador;
int intents,numero;
int h_inici,durada;
} info;
typedef struct {
int num, morts, ferits;
} maquina;
O sin cambiar el código que tienes:
typedef struct maquina <nombre_tipo_maquina>;
typedef struct info <nombre_tipo_info>;
De esa forma en las variables de partide tendrías algo como:
tInfo tPartides[MAX_PARTIDES]; //Una tabla llamada tPartides de tamaño fijado por MAX_PARTIDES (constante supongo) de elementos de tipo tInfo (que es un typedef de la estructura info,el nombre es un ejemplo,me lo he inventado).
#5
Ciertamente en C++ suele ser recomendable usar clases por el tema de encapsulación de datos.De todas maneras las struct en C++ son clases cuyos atributos y métodos son public por defecto.Son útiles cuando quieres tener "empaquetamiento" de varias variables en un mismo sitio.Si no ha visto aun clases es la única forma decente de hacerlo (en C el problema que pide #1 se haría con structs).