Skip to content
Snippets Groups Projects
Commit d11cb81e authored by Michael Leuschel's avatar Michael Leuschel
Browse files

add version of N-Queens with visualization

parent 4c968736
No related branches found
No related tags found
No related merge requests found
%% Cell type:markdown id: tags:
## N-Queens Puzzle
The N-Queens is a famous constraint solving benchmark puzzle.
It is a generalisation of the original eight queens puzzle, where the goal is to place eight queens on a 8*8 chessboard so that no two queens attach each other.
We now write a B machine with constants
* n: the size of the chess board
* queens: a partial function from 1..n to 1..n, stating in which row the queen on any given column is placed
%% Cell type:code id: tags:
``` prob
::load
MACHINE Queens
CONSTANTS n, queens
PROPERTIES
n>0 & n<120 &
queens : (1..n) +-> (1..n)
DEFINITIONS
ANIMATION_FUNCTION_DEFAULT == ( {r,c,i|r:1..n & c:1..n & i=(r+c) mod 2 } );
ANIMATION_FUNCTION == ( {r,c,i|c:1..n & c|->r:queens & i=2+((r+c) mod 2) } );
ANIMATION_IMG0 == "images/ChessPieces/Chess_emptyl45.gif";
ANIMATION_IMG1 == "images/ChessPieces/Chess_emptyd45.gif";
ANIMATION_IMG2 == "images/ChessPieces/Chess_qll45.gif";
ANIMATION_IMG3 == "images/ChessPieces/Chess_qld45.gif";
no_attack(q1,q2,board) == no_attack_pos(q1,board(q1),q2,board(q2));
no_attack_pos(q1,q1row,q2,q2row) == (q1row+q2-q1 /= q2row & q1row-q2+q1 /= q2row);
Solution(board) == (
board : perm(1..n) /* for each column the row in which the queen is in */
&
!(q1,q2).(q1:1..n & q2:2..n & q2>q1 => no_attack(q1,q2,board) )
)
END
```
%% Output
Loaded machine: Queens
%% Cell type:code id: tags:
``` prob
:constants
```
%% Output
Machine constants set up using operation 0: $setup_constants()
%% Cell type:code id: tags:
``` prob
:init
```
%% Output
Machine initialised using operation 1: $initialise_machine()
%% Cell type:markdown id: tags:
In the PROPERTIES we have not stated any constraint of our puzzle. Hence the default solution is n=1 and an empty board:
%% Cell type:code id: tags:
``` prob
(queens,n)
```
%% Output
$\renewcommand{\emptyset}{\mathord\varnothing}(\emptyset\mapsto 1)$
(∅↦1)
%% Cell type:markdown id: tags:
Let us now slowly tighten the constraints. We can use the ```:find``` command to find
states which satisfy the PROPERTIES and some additional predicate.
Let us first require that every queen is really placed.
We also impose an 8 by 8 board.
%% Cell type:code id: tags:
``` prob
:find queens : 1..8 --> 1..8
```
%% Output
Found a matching state and made it current state
%% Cell type:code id: tags:
``` prob
queens
```
%% Output
$\{(1\mapsto 1),(2\mapsto 1),(3\mapsto 1),(4\mapsto 1),(5\mapsto 1),(6\mapsto 1),(7\mapsto 1),(8\mapsto 1)\}$
{(1↦1),(2↦1),(3↦1),(4↦1),(5↦1),(6↦1),(7↦1),(8↦1)}
%% Cell type:markdown id: tags:
We can use the graphical visualization ANIMATION_FUNCTION to display the solution:
%% Cell type:code id: tags:
``` prob
:show
```
%% Output
<table style="font-family:monospace"><tbody>
<tr>
<td style="padding:0px"><img alt="2" src="images/ChessPieces/Chess_qll45.gif"/></td>
<td style="padding:0px"><img alt="3" src="images/ChessPieces/Chess_qld45.gif"/></td>
<td style="padding:0px"><img alt="2" src="images/ChessPieces/Chess_qll45.gif"/></td>
<td style="padding:0px"><img alt="3" src="images/ChessPieces/Chess_qld45.gif"/></td>
<td style="padding:0px"><img alt="2" src="images/ChessPieces/Chess_qll45.gif"/></td>
<td style="padding:0px"><img alt="3" src="images/ChessPieces/Chess_qld45.gif"/></td>
<td style="padding:0px"><img alt="2" src="images/ChessPieces/Chess_qll45.gif"/></td>
<td style="padding:0px"><img alt="3" src="images/ChessPieces/Chess_qld45.gif"/></td>
</tr>
<tr>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
</tr>
<tr>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
</tr>
<tr>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
</tr>
<tr>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
</tr>
<tr>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
</tr>
<tr>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
</tr>
<tr>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
</tr>
</tbody></table>
<Animation function visualisation>
%% Cell type:markdown id: tags:
We now also require that queens is a bijection, i.e., that no two queens are placed on the same row:
%% Cell type:code id: tags:
``` prob
:find queens : 1..8 >-> 1..8
```
%% Output
Found a matching state and made it current state
%% Cell type:code id: tags:
``` prob
:show
```
%% Output
<table style="font-family:monospace"><tbody>
<tr>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="2" src="images/ChessPieces/Chess_qll45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
</tr>
<tr>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="2" src="images/ChessPieces/Chess_qll45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
</tr>
<tr>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="2" src="images/ChessPieces/Chess_qll45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
</tr>
<tr>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="2" src="images/ChessPieces/Chess_qll45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
</tr>
<tr>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="2" src="images/ChessPieces/Chess_qll45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
</tr>
<tr>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="2" src="images/ChessPieces/Chess_qll45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
</tr>
<tr>
<td style="padding:0px"><img alt="2" src="images/ChessPieces/Chess_qll45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
</tr>
<tr>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="2" src="images/ChessPieces/Chess_qll45.gif"/></td>
</tr>
</tbody></table>
<Animation function visualisation>
%% Cell type:markdown id: tags:
Finally, let us solve the puzzle by also respecting the diagonals.
We use the predefined Solutions DEFINITION in the model above.
%% Cell type:code id: tags:
``` prob
:find n=8 & Solution(queens)
```
%% Output
Found a matching state and made it current state
%% Cell type:code id: tags:
``` prob
:show
```
%% Output
<table style="font-family:monospace"><tbody>
<tr>
<td style="padding:0px"><img alt="2" src="images/ChessPieces/Chess_qll45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
</tr>
<tr>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="3" src="images/ChessPieces/Chess_qld45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
</tr>
<tr>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="2" src="images/ChessPieces/Chess_qll45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
</tr>
<tr>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="2" src="images/ChessPieces/Chess_qll45.gif"/></td>
</tr>
<tr>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="3" src="images/ChessPieces/Chess_qld45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
</tr>
<tr>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="2" src="images/ChessPieces/Chess_qll45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
</tr>
<tr>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="3" src="images/ChessPieces/Chess_qld45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
</tr>
<tr>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="3" src="images/ChessPieces/Chess_qld45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
</tr>
</tbody></table>
<Animation function visualisation>
%% Cell type:code id: tags:
``` prob
queens
```
%% Output
$\{(1\mapsto 1),(2\mapsto 5),(3\mapsto 8),(4\mapsto 6),(5\mapsto 3),(6\mapsto 7),(7\mapsto 2),(8\mapsto 4)\}$
{(1↦1),(2↦5),(3↦8),(4↦6),(5↦3),(6↦7),(7↦2),(8↦4)}
%% Cell type:markdown id: tags:
Obviously we can solve the puzzle for other values of n:
%% Cell type:code id: tags:
``` prob
:find n=20 & Solution(queens)
```
%% Output
Found a matching state and made it current state
%% Cell type:code id: tags:
``` prob
:show
```
%% Output
<table style="font-family:monospace"><tbody>
<tr>
<td style="padding:0px"><img alt="2" src="images/ChessPieces/Chess_qll45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
</tr>
<tr>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="2" src="images/ChessPieces/Chess_qll45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
</tr>
<tr>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="3" src="images/ChessPieces/Chess_qld45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
</tr>
<tr>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="2" src="images/ChessPieces/Chess_qll45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
</tr>
<tr>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="2" src="images/ChessPieces/Chess_qll45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
</tr>
<tr>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="3" src="images/ChessPieces/Chess_qld45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
</tr>
<tr>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="3" src="images/ChessPieces/Chess_qld45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
</tr>
<tr>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="3" src="images/ChessPieces/Chess_qld45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
</tr>
<tr>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="3" src="images/ChessPieces/Chess_qld45.gif"/></td>
</tr>
<tr>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="2" src="images/ChessPieces/Chess_qll45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
</tr>
<tr>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="3" src="images/ChessPieces/Chess_qld45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
</tr>
<tr>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="3" src="images/ChessPieces/Chess_qld45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
</tr>
<tr>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="2" src="images/ChessPieces/Chess_qll45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
</tr>
<tr>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="2" src="images/ChessPieces/Chess_qll45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
</tr>
<tr>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="2" src="images/ChessPieces/Chess_qll45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
</tr>
<tr>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="3" src="images/ChessPieces/Chess_qld45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
</tr>
<tr>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="2" src="images/ChessPieces/Chess_qll45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
</tr>
<tr>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="2" src="images/ChessPieces/Chess_qll45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
</tr>
<tr>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="3" src="images/ChessPieces/Chess_qld45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
</tr>
<tr>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="3" src="images/ChessPieces/Chess_qld45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
<td style="padding:0px"><img alt="1" src="images/ChessPieces/Chess_emptyd45.gif"/></td>
<td style="padding:0px"><img alt="0" src="images/ChessPieces/Chess_emptyl45.gif"/></td>
</tr>
</tbody></table>
<Animation function visualisation>
%% Cell type:code id: tags:
``` prob
```
notebooks/models/images/ChessPieces/Chess_emptyd45.gif

878 B

notebooks/models/images/ChessPieces/Chess_emptyl45.gif

878 B

notebooks/models/images/ChessPieces/Chess_qld45.gif

1.47 KiB

notebooks/models/images/ChessPieces/Chess_qll45.gif

1.46 KiB

0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment