94 |
} |
} |
95 |
|
|
96 |
void |
void |
97 |
|
send_ask_bids (int sock_id, player_t * p, int is_resume) |
98 |
|
{ |
99 |
|
game_t *g = p->game; |
100 |
|
char **msg; |
101 |
|
int i; |
102 |
|
msg = g_malloc (sizeof (char *) * (g->nb_players_max + 2)); |
103 |
|
msg[0] = g_strdup_printf ("%d", g->nb_players_max); |
104 |
|
for (i = 0; i < g->nb_players_max; i++) |
105 |
|
{ |
106 |
|
switch (g->rules->bids[i]) |
107 |
|
{ |
108 |
|
case LIBMT_BID_UNDEF: |
109 |
|
msg[i + 1] = g_strdup ("?"); |
110 |
|
break; |
111 |
|
case LIBMT_BID_PASSE: |
112 |
|
msg[i + 1] = g_strdup ("-"); |
113 |
|
break; |
114 |
|
case LIBMT_BID_PRISE: |
115 |
|
msg[i + 1] = g_strdup ("P"); |
116 |
|
break; |
117 |
|
case LIBMT_BID_GARDE: |
118 |
|
msg[i + 1] = g_strdup ("G"); |
119 |
|
break; |
120 |
|
case LIBMT_BID_SANS: |
121 |
|
msg[i + 1] = g_strdup ("S"); |
122 |
|
break; |
123 |
|
case LIBMT_BID_CONTRE: |
124 |
|
msg[i + 1] = g_strdup ("C"); |
125 |
|
break; |
126 |
|
} |
127 |
|
} |
128 |
|
msg[g->nb_players_max + 1] = NULL; |
129 |
|
protocol_send_array (sock_id, |
130 |
|
is_resume ? PROTOCOL_SAY_BIDS_RESUME : |
131 |
|
PROTOCOL_ASK_BIDS, msg); |
132 |
|
} |
133 |
|
|
134 |
|
void |
135 |
shuffle (rules_t * r) |
shuffle (rules_t * r) |
136 |
{ |
{ |
137 |
gint shuffle; |
gint shuffle; |
195 |
tarot_game_start (game_t * game) |
tarot_game_start (game_t * game) |
196 |
{ |
{ |
197 |
game->rules = g_malloc (sizeof (rules_t)); |
game->rules = g_malloc (sizeof (rules_t)); |
198 |
|
game->rules->bid = LIBMT_BID_UNDEF; |
199 |
|
|
200 |
/* Shuffle the cards */ |
/* Shuffle the cards */ |
201 |
shuffle (game->rules); |
shuffle (game->rules); |