#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);
}

Embed on website

To embed this project on your website, copy the following code and paste it into your website's HTML: