#include <unistd.h>
#include <stdio.h>
int ft_strlen(char *str)
{
int i;
i = 0;
while (str[i])
{
i++;
}
return (i);
}
// on affiche une grille en 4 X 4
void print_grid(int *grid)
{
int i;
i = 0;
while (i < 16)
{
printf("%d ", grid[i]);
if (i % 4 == 3)
printf("\n");
i++;
}
}
// on cherche si le nombre n est pas déjà dans la ligne de la case pos
int row_ok(int *grid, int pos, int n)
{
int start;
int i;
start = (pos / 4 ) * 4;
i = 0;
while (i < 4)
{
if (grid[start + i] == n)
return (0);
i++;
}
return (1);
}
// on cherche si le nombre n est pas déjà dans la colonne de la case pos
int col_ok(int *grid, int pos, int n)
{
int start;
int i;
start = pos % 4;
i = 0;
while (i < 4)
{
if (grid[start + i * 4] == n)
return (0);
i++;
}
return (1);
}
int main(int argc, char **argv)
{
if (argc != 2)
{
argv[1] = "4 3 2 1 1 2 2 2 4 3 2 1 1 2 2 2";
/*write(1, "Error\n", 6);
return (0);*/
}
if (ft_strlen(argv[1]) != 31)
{
write(1, "Error\n", 6);
return (0);
}
if (argv[1][0] < '1' || argv[1][0] > '4')
{
write(1, "Error\n", 6);
return (0);
}
int tab[16];
int grid[16];
int i;
i = 0;
while (i <= 30)
{
if (i % 2 == 0)
{
if (argv[1][i] < '1' || argv[1][i] > '4')
{
write(1, "Error\n", 6);
return (0);
}
}
else
{
if (argv[1][i] != ' ')
{
write(1, "Error\n", 6);
return (0);
}
}
i++;
}
// on teste les positions des lignes et colonnes
printf("%d\n", row_ok(grid, 4, 1));
printf("%d\n", row_ok(grid, 4, 5));
printf("%d\n", col_ok(grid, 4, 1));
printf("%d\n", col_ok(grid, 4, 5));
/*i = 0;
while (i < 16)
{
tab[i] = argv[1][i * 2] - '0';
printf("%d ", tab[i]);
i++;
}*/
grid[0] = 1;
grid[1] = 2;
grid[2] = 3;
grid[3] = 4;
grid[4] = 2;
grid[5] = 3;
grid[6] = 4;
grid[7] = 1;
grid[8] = 3;
grid[9] = 4;
grid[10] = 1;
grid[11] = 2;
grid[12] = 4;
grid[13] = 1;
grid[14] = 2;
grid[15] = 3;
print_grid(grid);
// debug
/*write(1, argv[0], ft_strlen(argv[0]));
write(1, "\n", 1);
write(1, argv[1], ft_strlen(argv[1]));
write(1, "\n", 1);*/
return (0);
}
To embed this project on your website, copy the following code and paste it into your website's HTML: