prolog sudoku

Znaleziony temat: prolog sudoku

This response was truncated by the cut-off limit (max tokens). Open the sidebar, Increase the parameter in the settings and then regenerate.
————————-
Prolog Sudoku – namiekko.pl, na miekko, miękko

Sudoku to popularna gra logiczna, która polega na uzupełnianiu diagramu 9×9 w taki sposób, aby w każdym wierszu, kolumnie i bloku 3×3 znalazły się cyfry od 1 do 9, bez powtórzeń. Istnieje wiele sposobów rozwiązywania sudoku, a jednym z nich jest wykorzystanie języka programowania Prolog.

Prolog to język programowania logicznego, który opiera się na logice matematycznej. Dzięki swojej deklaratywnej naturze, Prolog jest idealnym narzędziem do rozwiązywania problemów logicznych, takich jak sudoku. W tym artykule przedstawimy krótki poradnik, jak rozwiązać sudoku za pomocą Prologa.

1. Definicja reguł
Pierwszym krokiem jest zdefiniowanie reguł, które będą opisywać zasady sudoku. Możemy zacząć od zdefiniowania, że diagram sudoku składa się z 9 wierszy i 9 kolumn. Możemy to zrobić za pomocą następujących reguł:

row(1..9).
column(1..9).

2. Definicja domen
Kolejnym krokiem jest zdefiniowanie domen, czyli możliwych wartości dla każdej komórki diagramu sudoku. W przypadku sudoku, domena to liczby od 1 do 9. Możemy to zrobić za pomocą reguły:

domain(1..9).

3. Definicja zasad
Następnie musimy zdefiniować zasady, które będą określać, że w każdym wierszu, kolumnie i bloku 3×3 nie mogą się powtarzać żadne liczby. Możemy to zrobić za pomocą następujących reguł:

all_different(Row) :- permutation(Row, [1,2,3,4,5,6,7,8,9]).
valid_row(Row) :- all_different(Row).
valid_column(Column) :- all_different(Column).
valid_block(Block) :- all_different(Block).

4. Definicja diagramu sudoku
Następnie musimy zdefiniować diagram sudoku, czyli wypełnić go liczbami. Możemy to zrobić za pomocą reguł, które będą określać, że każda komórka diagramu ma wartość z domeny:

sudoku(Board) :-
Board = [A1, A2, A3, A4, A5, A6, A7, A8, A9,
B1, B2, B3, B4, B5, B6, B7, B8, B9,
C1, C2, C3, C4, C5, C6, C7, C8, C9,
D1, D2, D3, D4, D5, D6, D7, D8, D9,
E1, E2, E3, E4, E5, E6, E7, E8, E9,
F1, F2, F3, F4, F5, F6, F7, F8, F9,
G1, G2, G3, G4, G5, G6, G7, G8, G9,
H1, H2, H3, H4, H5, H6, H7, H8, H9,
I1, I2, I3, I4, I5, I6, I7, I8, I9],
domain(Board),
valid_row([A1, A2, A3, A4, A5, A6, A7, A8, A9]),
valid_row([B1, B2, B3, B4, B5, B6, B7, B8, B9]),
valid_row([C1, C2, C3, C4, C5, C6, C7, C8, C9]),
valid_row([D1, D2, D3, D4, D5, D6, D7, D8, D9]),
valid_row([E1, E2, E3, E4, E5, E6, E7, E8, E9]),
valid_row([F1, F2, F3, F4, F5, F6, F7, F8, F9]),
valid_row([G1, G2, G3, G4, G5, G6, G7, G8, G9]),
valid_row([H1, H2, H3, H4, H5, H6, H7, H8, H9]),
valid_row([I1, I2, I3, I4, I5, I6, I7, I8, I9]),
valid_column([A1, B1, C1, D1, E1, F1, G1, H1, I1]),
valid_column([A2, B2, C2, D2, E2, F2, G2, H2, I2]),
valid_column([A3, B3, C3, D3, E3, F3, G3, H3, I3]),
valid_column([A4, B4, C4, D4, E4, F4, G4, H4, I4]),
valid_column([A5, B5, C5, D5, E5, F5, G5, H5, I5]),
valid_column([A6, B6, C6, D6, E6, F6, G6, H6, I6]),
valid_column([A7

Napisz komentarz do wpisu, powiedz nam czy Ci pomógł: prolog sudoku

0 0 votes
Article Rating
Subscribe
Powiadom o

0 komentarzy
Inline Feedbacks
View all comments

Podobne wpisy

0
Would love your thoughts, please comment.x

Headline

Never Miss A Story

Get our Weekly recap with the latest news, articles and resources.

Hot daily news right into your inbox.

Cookie policy
We use our own and third party cookies to allow us to understand how the site is used and to support our marketing campaigns.