-
Notifications
You must be signed in to change notification settings - Fork 0
/
libPrep.h
119 lines (89 loc) · 2.46 KB
/
libPrep.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
//
// Liberia contenente le funzioni e le proceudre necessarie alla fase di preparazione del gioco
//
#ifndef RISIKA_LIBPREP_H
#define RISIKA_LIBPREP_H
// struttura giocatore
#define MIN_G 3
#define MAX_G 6
#define N_CARTE 28
#define N_CARTESJ 26
#define TREAINT 1 //3 armate nello stesso territorio
#define DUEAINTET 2//2 armate in un territorio e una in un altro
#define TREDIVERSO 3 //3 armate in 3 territori diversi
#define DUEINT 4//2 armate in un territorio
#define DUET 5//una armata in un territorio e una in un altro
#define AINT 6//una armata in un territorio
#include <stdio.h>
typedef enum {
Studi_Umanistici,
Scienze_Economiche_Giuridiche_Politiche,
Medicina_Chirurgia,
Biologia_Farmacia,
Ingegneria_Architettura,
Facolta_di_Scienze
} Facolta;
typedef enum {
Caffe, Birra, Vino, Jolly
} Arma;
typedef struct {
int id;
char nome[10];
_Bool inUse;
} Colore;
// struttura territorio
typedef struct {
int id;
char nome[24];
Facolta f;
} Territorio;
typedef struct {
Territorio t;
int idPropietario;
int nArmate;
} Tabellone;
//struttura nodo per la lista delle carte
typedef struct {
Arma a;
int idTerritorio;
int idCarta;
} Carta;
//Nodo per il mazzo di carte
typedef struct nodoc {
struct nodoc *prev;
struct nodoc *next;
Carta c;
} NodoC;
//strutura per il mazzo di carte
typedef struct {
NodoC *testa;
} Mazzo;
//lista territori giocatore
typedef struct {
NodoC *testa;
} TerritoriG;
typedef struct {
int id;
char nome[24];
Colore c;
int nArmate;
int nCarte;
int nArmateinG;
TerritoriG t;
Mazzo cg;
int vCarte[N_CARTE];
} Giocatore;
Giocatore *nuovaPartita(int *nGiocatori, Mazzo *m, Tabellone t[], FILE *log);
int leggiGiocatori(int min, int max);
Giocatore *caricaGiocatori(int nGiocatori, FILE *f);
void leggiNome(char c[]);
void preparazione(Giocatore *g, int nGiocatori, Mazzo *m, Tabellone t[], FILE *f);
void ordinaVettore(Giocatore *g, int nGiocatori, FILE *f);
void sceltaColore(Giocatore *g, int nGiocatori, FILE *f);
void assegnaArmate(Giocatore *g, int nGiocatori, FILE *f);
void distribuisciCarte(int nGioc, Mazzo *m, Giocatore *g, FILE *log);
void daiCarte(Giocatore g[], Mazzo *m, int nGioc, int nCarte, FILE *log);
void ass(Mazzo *m, int nCarte);
void assegnaArmateTerritori(int nGiocatori, Giocatore g[], Tabellone t[], FILE *log);
void posizionaArmate(Giocatore *g, Tabellone t[], int scelta, FILE *log);
#endif //RISIKA_LIBPREP_H