fix(print_board): space before pipe is based on biggest line instead of first line

This commit is contained in:
2026-03-28 17:01:43 +01:00
parent 7140a17dab
commit c5992df61b
3 changed files with 19 additions and 6 deletions
BIN
View File
Binary file not shown.
+2 -2
View File
@@ -36,8 +36,8 @@ int main(int argc, char *argv[]) {
ft_putstr_fd("ERROR", 2); ft_putstr_fd("ERROR", 2);
return (1); return (1);
} }
int test[] = {8, 5, 3, 2, 1}; int test[] = {8, 5, 3, 2, 1, 11};
print_board(test, 5); print_board(test, 6);
return (0); return (0);
close(fd); close(fd);
} }
+17 -4
View File
@@ -14,16 +14,29 @@
#include <stddef.h> #include <stddef.h>
#include <unistd.h> #include <unistd.h>
static int get_biggest_line(int *game_state, size_t nb_line) {
size_t i;
int biggest = 0;
i = 0;
while (i < nb_line) {
if (game_state[i] > biggest)
biggest = game_state[i];
i++;
}
return (biggest);
}
void print_board(int *game_state, size_t nb_line) { void print_board(int *game_state, size_t nb_line) {
int size_of_first; int biggest_line;
size_t i; size_t i;
int j; int j;
i = -1; i = -1;
size_of_first = game_state[0]; biggest_line = get_biggest_line(game_state, nb_line);
while (++i < nb_line) { while (++i < nb_line) {
j = -1; j = -1;
while (++j < size_of_first - game_state[i]) while (++j < biggest_line - game_state[i])
write(1, " ", 1); write(1, " ", 1);
j = -1; j = -1;
while (++j < game_state[i]) { while (++j < game_state[i]) {
@@ -32,7 +45,7 @@ void print_board(int *game_state, size_t nb_line) {
write(1, " ", 1); write(1, " ", 1);
} }
j = -1; j = -1;
while (++j < size_of_first - game_state[i]) while (++j < biggest_line - game_state[i])
write(1, " ", 1); write(1, " ", 1);
write(1, "\n", 1); write(1, "\n", 1);
} }