Zappy - Year end project 2
This is a project that Epitech asked us to create in order to allow us to reveiw the notions of the current year.
Loading...
Searching...
No Matches
show_game_data.c
Go to the documentation of this file.
1/*
2** EPITECH PROJECT, 2024
3** my_zappy
4** File description:
5** show_game_data
6*/
7
8#include <stdio.h>
9#include <string.h>
10
11#include "show.h"
12
13static void show_tile_content(server_handler_t *server, const int y,
14 const int x)
15{
16 printf("\tx = %d, y = %d: ", x, y);
17 printf("\t[player_nb: %d, "
18 "food: %d, "
19 "linemate: %d, "
20 "deraumere: %d, "
21 "sibur: %d, "
22 "mendiane: %d, "
23 "phiras: %d, "
24 "thystame: %d]\n",
25 server->game_data.map[y][x].player_nb,
26 server->game_data.map[y][x].ressources.food_nb,
27 server->game_data.map[y][x].ressources.linemate_nb,
29 server->game_data.map[y][x].ressources.sibur_nb,
30 server->game_data.map[y][x].ressources.mendiane_nb,
31 server->game_data.map[y][x].ressources.phiras_nb,
32 server->game_data.map[y][x].ressources.thystame_nb);
33}
34
35static void show_map_content(server_handler_t *server)
36{
37 printf("Map content:\n");
38 for (int y = 0; y < server->game_data.map_size[1]; y++) {
39 printf("[\n");
40 for (int x = 0; x < server->game_data.map_size[0]; x++) {
41 show_tile_content(server, y, x);
42 }
43 printf("]\n");
44 }
45}
46
47static void show_single_client_data(server_handler_t *server, const int i)
48{
49 printf("\tClient num %d:\n", server->game_data.clients[i].client_num);
50 printf("\t\t- Fd: %d\n"
51 "\t\t- Is_connected: %d\n"
52 "\t\t- Team name: %s\n"
53 "\t\t- Level: %d\n"
54 "\t\t- x: %d, y: %d\n"
55 "\t\t- Time life: %d\n"
56 "\t\t- Direction: %d\n",
57 server->game_data.clients[i].fd,
59 server->game_data.clients[i].team_name,
60 server->game_data.clients[i].level,
61 server->game_data.clients[i].pos[0],
62 server->game_data.clients[i].pos[1],
63 server->game_data.clients[i].time_life,
64 server->game_data.clients[i].direction);
65}
66
67static void show_clients_data(server_handler_t *server)
68{
69 printf("Clients data:\n");
70 for (int i = 0; i < MAX_CLIENT; i++) {
71 if (server->game_data.clients[i].client_num == UNKNOWN ||
72 server->game_data.clients[i].team_name == NULL ||
73 strcmp(server->game_data.clients[i].team_name, "GRAPHIC") == 0) {
74 continue;
75 }
76 show_single_client_data(server, i);
77 }
78 printf("\n");
79}
80
81static void show_teams_data(server_handler_t *server)
82{
83 printf("Teams data:\n");
84 for (int i = 0; server->game_data.teams[i].team_name != NULL; i++) {
85 printf("\t- Team %d:\n", (i + 1));
86 printf("\t\tTeam name: %s\n", server->game_data.teams[i].team_name);
87 printf("\t\tNumber of clients: %d\n",
88 server->game_data.teams[i].client_total);
89 printf("\t\tNumber of each client:\n");
90 for (int x = 0;
91 server->game_data.teams[i].client_num_list[x] != UNKNOWN; x++) {
92 printf("\t\t\t- %d\n",
93 server->game_data.teams[i].client_num_list[x]);
94 }
95 }
96 printf("\n");
97}
98
99static void show_ressources_in_map(server_handler_t *server)
100{
101 printf("Ressources in the map:\n"
102 "\t- Food: %d\n"
103 "\t- Linemate: %d\n"
104 "\t- Deraumere: %d\n"
105 "\t- Sibur: %d\n"
106 "\t- Mendiane: %d\n"
107 "\t- Phiras: %d\n"
108 "\t- Thystame: %d\n\n",
116}
117
118static void show_ressources_quantity(server_handler_t *server)
119{
120 printf("Ressources quantity:\n"
121 "\t- Food: %d\n"
122 "\t- Linemate: %d\n"
123 "\t- Deraumere: %d\n"
124 "\t- Sibur: %d\n"
125 "\t- Mendiane: %d\n"
126 "\t- Phiras: %d\n"
127 "\t- Thystame: %d\n\n",
135}
136
137int show_game_data(server_handler_t *server, bool need_to_show)
138{
139 if (need_to_show == false) {
140 return (0);
141 }
142 printf("Map x size: %d, map y size: %d\n\n", server->game_data.map_size[0],
143 server->game_data.map_size[1]);
144 printf("Frequence: %d\n\n", server->game_data.frequence);
145 show_ressources_quantity(server);
146 show_ressources_in_map(server);
147 show_teams_data(server);
148 show_clients_data(server);
149 show_map_content(server);
150 return (0);
151}
#define MAX_CLIENT
Definition constants.h:15
#define UNKNOWN
Definition constants.h:16
int show_game_data(server_handler_t *server, bool need_to_show)
A function to display every data of the game.
int client_num
int pos[2]
char * team_name
bool is_connected
direction_t direction
int time_life
ressources_t total_ressources
cli_t clients[MAX_CLIENT]
ressources_t ressources_quantity
int player_nb
ressources_t ressources
A structure to store server general data.
game_data_t game_data
int client_num_list[MAX_CLIENT]
char * team_name
int client_total