aboutsummaryrefslogtreecommitdiff
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
parent687a7211a8702a4ad0645491b9001d243c8c3099 (diff)
downloadpiscine-aa34d515b7debdd8edf63fbdb58f2fa936ab9572.tar.gz
piscine-aa34d515b7debdd8edf63fbdb58f2fa936ab9572.tar.bz2
piscine-aa34d515b7debdd8edf63fbdb58f2fa936ab9572.zip
ten queens updated for current subject
-rw-r--r--c05/ex08/ft_ten_queens_puzzle.c (renamed from c05/ex08/ft_queens.c)15
-rw-r--r--c05/main.c4
2 files changed, 12 insertions, 7 deletions
diff --git a/c05/ex08/ft_queens.c b/c05/ex08/ft_ten_queens_puzzle.c
index ba2c742..36d5402 100644
--- a/c05/ex08/ft_queens.c
+++ b/c05/ex08/ft_ten_queens_puzzle.c
@@ -1,4 +1,5 @@
#include <unistd.h>
+
#define TRUE 1
#define FALSE 0
#define BOARD_SIZE 10
@@ -15,7 +16,7 @@ static void print_cols(int cols[BOARD_SIZE])
i = 0;
while (i < BOARD_SIZE)
- ft_putchar(cols[i++] + '0'); // maybe +1
+ ft_putchar(cols[i++] + '0');
ft_putchar('\n');
}
@@ -35,13 +36,14 @@ static int valid_position(int cols[BOARD_SIZE], int x, int y)
return (TRUE);
}
-static void solve(int cols[BOARD_SIZE], int x)
+static void solve(int cols[BOARD_SIZE], int x, int *solution_counter)
{
int i;
if (x == BOARD_SIZE)
{
print_cols(cols);
+ (*solution_counter)++;
return ;
}
i = -1;
@@ -50,13 +52,16 @@ static void solve(int cols[BOARD_SIZE], int x)
if (!valid_position(cols, x, i))
continue ;
cols[x] = i;
- solve(cols, x + 1);
+ solve(cols, x + 1, solution_counter);
}
}
-void ft_queens(void) // may have bad name
+int ft_ten_queens_puzzle(void)
{
+ int solution_counter;
int cols[BOARD_SIZE];
- solve(cols, 0);
+ solution_counter = 0;
+ solve(cols, 0, &solution_counter);
+ return (solution_counter);
}
diff --git a/c05/main.c b/c05/main.c
index f66caf9..628c5c3 100644
--- a/c05/main.c
+++ b/c05/main.c
@@ -9,7 +9,7 @@
#include "ex05/ft_sqrt.c"
#include "ex06/ft_is_prime.c"
#include "ex07/ft_find_next_prime.c"
-#include "ex08/ft_queens.c"
+#include "ex08/ft_ten_queens_puzzle.c"
int main()
{
@@ -96,5 +96,5 @@ int main()
/*printf("%d is %d\n", i, ft_find_next_prime(i));*/
printf("---------------------\n");
- // ft_queens();
+ printf("%d solutions\n", ft_ten_queens_puzzle());
}