diff options
| author | Charles <sircharlesaze@gmail.com> | 2019-08-07 20:33:02 +0200 |
|---|---|---|
| committer | Charles <sircharlesaze@gmail.com> | 2019-08-07 20:33:02 +0200 |
| commit | aa34d515b7debdd8edf63fbdb58f2fa936ab9572 (patch) | |
| tree | 52f703515d381942d334c631ef98985f7269ace9 /c05/ex08/ft_queens.c | |
| parent | 687a7211a8702a4ad0645491b9001d243c8c3099 (diff) | |
| download | piscine-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.c | 62 |
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); -} |
