aboutsummaryrefslogtreecommitdiff
path: root/c05/ex08/ft_queens.c
diff options
context:
space:
mode:
authorCharles <sircharlesaze@gmail.com>2019-08-07 20:33:02 +0200
committerCharles <sircharlesaze@gmail.com>2019-08-07 20:33:02 +0200
commitaa34d515b7debdd8edf63fbdb58f2fa936ab9572 (patch)
tree52f703515d381942d334c631ef98985f7269ace9 /c05/ex08/ft_queens.c
parent687a7211a8702a4ad0645491b9001d243c8c3099 (diff)
downloadpiscine-aa34d515b7debdd8edf63fbdb58f2fa936ab9572.tar.gz
piscine-aa34d515b7debdd8edf63fbdb58f2fa936ab9572.tar.bz2
piscine-aa34d515b7debdd8edf63fbdb58f2fa936ab9572.zip
ten queens updated for current subject
Diffstat (limited to 'c05/ex08/ft_queens.c')
-rw-r--r--c05/ex08/ft_queens.c62
1 files changed, 0 insertions, 62 deletions
diff --git a/c05/ex08/ft_queens.c b/c05/ex08/ft_queens.c
deleted file mode 100644
index ba2c742..0000000
--- a/c05/ex08/ft_queens.c
+++ /dev/null
@@ -1,62 +0,0 @@
-#include <unistd.h>
-#define TRUE 1
-#define FALSE 0
-#define BOARD_SIZE 10
-#define ABS(x) (x < 0 ? -(x) : x)
-
-void ft_putchar(char c)
-{
- write(1, &c, 1);
-}
-
-static void print_cols(int cols[BOARD_SIZE])
-{
- int i;
-
- i = 0;
- while (i < BOARD_SIZE)
- ft_putchar(cols[i++] + '0'); // maybe +1
- ft_putchar('\n');
-}
-
-static int valid_position(int cols[BOARD_SIZE], int x, int y)
-{
- int i;
-
- i = 0;
- while (i < x)
- {
- if (y == cols[i])
- return (FALSE);
- if (ABS(x - i) == ABS(y - cols[i]))
- return (FALSE);
- i++;
- }
- return (TRUE);
-}
-
-static void solve(int cols[BOARD_SIZE], int x)
-{
- int i;
-
- if (x == BOARD_SIZE)
- {
- print_cols(cols);
- return ;
- }
- i = -1;
- while (++i < BOARD_SIZE)
- {
- if (!valid_position(cols, x, i))
- continue ;
- cols[x] = i;
- solve(cols, x + 1);
- }
-}
-
-void ft_queens(void) // may have bad name
-{
- int cols[BOARD_SIZE];
-
- solve(cols, 0);
-}