char *obtain_case(t_server *serv, int v, int h, int actual) { t_case t; char *result; int indic; char *tmp; indic = 0; t = init_tcase(serv, v, h); if (serv->map.map[t.y][t.x].nbr <= 0) return (NULL); result = ft_trunc("%p", pattern(serv->map.map[t.y][t.x].res[NOURRITURE], "nourriture ")); set_ftcase(serv, t, &result); if (result) { tmp = ft_trunc("%s%p", result, pattern(count_player(serv, actual, t.x, t.y), "joueur ")); free(result); result = tmp; } else result = ft_trunc("%p", pattern(count_player(serv, actual, t.x, t.y), "joueur ")); if (result) result[ft_strlen(result) - 1] = 0; return (result); }
int graphic_incantation(t_server *serv, t_player *player) { t_player *tmp; char *pic; char *str; int save; int nb_player; tmp = g_players; nb_player = count_player(player); save = player->level; asprintf(&str, "pic %d %d %d", player->pos->x, player->pos->y, player->level + 1); while (tmp) { if (tmp->pos->x == player->pos->x && tmp->pos->y == player->pos->y && tmp->level == save) { ++tmp->level; asprintf(&pic, "%s %d", str, tmp->id); --nb_player; } tmp = tmp->next; } write_graphic_incant(serv, player, pic); return (1); }
void display(char *map) { int start; int nb_ply; int nb_team; char team_win; start = 0; while (42) { if ((nb_team = count_team(map)) == 1) team_win = get_last_team(map); nb_ply = count_player(map, 'a'); start = (nb_ply >= NB_PLAY ? 1 : start); if (nb_ply < NB_PLAY && start == 0) wrt_str("-{ You have to put more player for start the game. }-\n"); else wrt_str("-{ The Game is running ! }-\n"); display_stat(map, nb_ply, nb_team); display_map(map); if (nb_ply == 1 && start == 1) { printf("The team %d Win !!!!\n", team_win - '0'); break; } } }
void display_stat(char *map, int nb_ply, int nb_team) { int team_adv; int high; int chk; int i; high = 0; i = 0; while (i < NB_TEAM) { if ((chk = count_player(map, '1' + i)) == high) { team_adv = 0; break ; } team_adv = (chk > high ? i + 1 : team_adv); high = (chk > high ? chk : high); i++; } printf("[ Nb player : %d | Nb team : %d | ", nb_ply, nb_team); if (team_adv != 0) printf("The team %d has the advantage ]\n", team_adv); else printf("All team are equally ]\n"); }
int other_player(t_util *util) { util->addr = shmat(util->shm_id, NULL, SHM_R | SHM_W); util->id = count_player(util->addr, 'a'); if (new_player(util) == -1) return (-1); return (0); }
int other_player(t_util *util) { util->addr = shmat(util->shm_id, NULL, SHM_R | SHM_W); util->id = count_player(util->addr, 'a'); printf("Creation of player nb : %d\n", util->id + 1); if (new_player(util) == -1) return (-1); return (0); }
int get_loser(char *map) { int loser; int lower; int chk; int i; loser = 1; lower = NB_TEAM; chk = 0; i = 0; while (i < NB_TEAM) { if ((chk = count_player(map, '1' + i)) < lower) { lower = chk; loser = i + 1; } i++; } return (loser); }