1
0
This repository has been archived on 2024-10-25. You can view files and clone it, but cannot push or open issues or pull requests.
2023-08-03 23:16:27 +02:00

116 lines
2.3 KiB
C

/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* place_sure.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: adjoly <marvin@42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2023/07/22 11:37:10 by adjoly #+# #+# */
/* Updated: 2023/07/23 11:11:18 by psalame ### ########.fr */
/* */
/* ************************************************************************** */
int get_area_size(void);
void con_col(int **result, int i, int j, int **col)
{
int k;
k = 0;
if (col[i][j] == 1)
{
if (j == 1)
result[get_area_size() - 1][i] = get_area_size();
else
result[0][i] = get_area_size();
}
else if (col[i][j] == get_area_size())
{
if (j == 1)
{
k = get_area_size() + 1;
while (--k > 0)
result[k - 1][i] = (get_area_size() - k + 1);
}
else
{
while (++k <= get_area_size())
result[k - 1][i] = k;
}
}
}
void con_row(int **result, int i, int j, int **row)
{
int k;
k = 0;
if (row[i][j] == 1)
{
if (j == 1)
result[i][get_area_size() - 1] = get_area_size();
else
result[i][0] = get_area_size();
}
else if (row[i][j] == get_area_size())
{
if (j == 1)
{
k = get_area_size();
while (--k > 0)
result[i][k - 1] = (get_area_size() - k + 1);
}
else
{
while (++k <= get_area_size())
result[i][k - 1] = k;
}
}
}
void place_col(int size, int **col, int **result)
{
int i;
int j;
i = 0;
while (i < size)
{
j = 0;
while (j < 2)
{
con_col(result, i, j, col);
j++;
}
i++;
}
}
void place_row(int size, int **row, int **result)
{
int i;
int j;
i = 0;
while (i < size)
{
j = 0;
while (j < 2)
{
con_row(result, i, j, row);
j++;
}
i++;
}
}
int **ft_place_sure(int **row, int **col, int **result)
{
int size;
size = get_area_size();
place_row(size, row, result);
place_col(size, col, result);
return (result);
}