From 0cbb46560b12d3614102f0b6a4f295c9f6921f9f Mon Sep 17 00:00:00 2001 From: Jason Staten Date: Sat, 26 Oct 2019 20:43:20 -0600 Subject: [PATCH] sudoku and fizzbuzz --- prolog/fizzbuzz.pl | 10 ++++++++++ prolog/sudoku.pl | 21 +++++++++++++++++++++ 2 files changed, 31 insertions(+) create mode 100644 prolog/fizzbuzz.pl create mode 100644 prolog/sudoku.pl diff --git a/prolog/fizzbuzz.pl b/prolog/fizzbuzz.pl new file mode 100644 index 0000000..1a59e0b --- /dev/null +++ b/prolog/fizzbuzz.pl @@ -0,0 +1,10 @@ +isfizz(N) :- mod(3, N) =:= 0. +isbuzz(N) :- mod(5, N) =:= 0. +isfizzbuzz(N) :- mod(15, N) =:= 0. + +dofizzbuzz(N, F) :- isfizzbuzz(N), F = fizbuzz. +dofizzbuzz(N, F) :- isbuzz(N), F = buzz. +dofizzbuzz(N, F) :- isfizz(N), F = fizz. +dofizzbuzz(N, F) :- F = N. + + diff --git a/prolog/sudoku.pl b/prolog/sudoku.pl new file mode 100644 index 0000000..1157d93 --- /dev/null +++ b/prolog/sudoku.pl @@ -0,0 +1,21 @@ +sudoku(Puzzle, Solution) :- + Solution = Puzzle, + Puzzle = [A1, A2, A3, A4, + B1, B2, B3, B4, + C1, C2, C3, C4, + D1, D2, D3, D4], + fd_domain(Puzzle, 1, 4), + fd_all_different([A1, A2, A3, A4]), + fd_all_different([B1, B2, B3, B4]), + fd_all_different([C1, C2, C3, C4]), + fd_all_different([D1, D2, D3, D4]), + + fd_all_different([A1, B1, C1, D1]), + fd_all_different([A2, B2, C2, D2]), + fd_all_different([A3, B3, C3, D3]), + fd_all_different([A4, B4, C4, D4]), + + fd_all_different([A1, A2, B1, B2]), + fd_all_different([A3, A4, B3, B4]), + fd_all_different([C1, C2, D1, D2]), + fd_all_different([C3, C4, D3, D4]).