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

add fixed style for puzzle board

parent 5b77ffcc
Branches
No related tags found
No related merge requests found
......@@ -28,20 +28,20 @@ DEFINITIONS
MAX_OPERATIONS_SetBoard == 10;
/* PUZZLE CONSTRAINTS : */
PUZZLE == (
PUZZLE(BOARD) == (
Board(1)(1)=7 & Board(1)(2)=8 & Board(1)(3)=1 & Board(1)(4)=6 & Board(1)(6)=2
& Board(1)(7)=9 & Board(1)(9) = 5 &
Board(2)(1)=9 & Board(2)(3)=2 & Board(2)(4)=7 & Board(2)(5)=1 &
Board(3)(3)=6 & Board(3)(4)=8 & Board(3)(8)=1 & Board(3)(9)=2 &
BOARD(1)(1)=7 & BOARD(1)(2)=8 & BOARD(1)(3)=1 & BOARD(1)(4)=6 & BOARD(1)(6)=2
& BOARD(1)(7)=9 & BOARD(1)(9)=5 &
BOARD(2)(1)=9 & BOARD(2)(3)=2 & BOARD(2)(4)=7 & BOARD(2)(5)=1 &
BOARD(3)(3)=6 & BOARD(3)(4)=8 & BOARD(3)(8)=1 & BOARD(3)(9)=2 &
Board(4)(1)=2 & Board(4)(4)=3 & Board(4)(7)=8 & Board(4)(8)=5 & Board(4)(9)=1 &
Board(5)(2)=7 & Board(5)(3)=3 & Board(5)(4)=5 & Board(5)(9)=4 &
Board(6)(3)=8 & Board(6)(6)=9 & Board(6)(7)=3 & Board(6)(8)=6 &
BOARD(4)(1)=2 & BOARD(4)(4)=3 & BOARD(4)(7)=8 & BOARD(4)(8)=5 & BOARD(4)(9)=1 &
BOARD(5)(2)=7 & BOARD(5)(3)=3 & BOARD(5)(4)=5 & BOARD(5)(9)=4 &
BOARD(6)(3)=8 & BOARD(6)(6)=9 & BOARD(6)(7)=3 & BOARD(6)(8)=6 &
Board(7)(1)=1 & Board(7)(2)=9 & Board(7)(6)=7 & Board(7)(8)=8 &
Board(8)(1)=8 & Board(8)(2)=6 & Board(8)(3)=7 & Board(8)(6)=3 & Board(8)(7)=4 & Board(8)(9)=9 &
Board(9)(3)=5 & Board(9)(7)=1
BOARD(7)(1)=1 & BOARD(7)(2)=9 & BOARD(7)(6)=7 & BOARD(7)(8)=8 &
BOARD(8)(1)=8 & BOARD(8)(2)=6 & BOARD(8)(3)=7 & BOARD(8)(6)=3 & BOARD(8)(7)=4 & BOARD(8)(9)=9 &
BOARD(9)(3)=5 & BOARD(9)(7)=1
);
UnassignedPosition(x,y) == x:DOM & y:DOM & not(y:dom(Board(x)));
......@@ -49,8 +49,10 @@ PUZZLE == (
CONSTANTS
get_square /*@desc "Subsquare (1,2,3) for a coordinate 1..9" */,
conflict_pos /*@desc "set of positions that are in conflict with a given position" */,
conflict_pos_sym /*@desc "symmetry-reduced version of conflict_pos" */
conflict_pos_sym /*@desc "symmetry-reduced version of conflict_pos" */,
PuzzleBoard /*@desc "Stored Puzzle" */
PROPERTIES
PuzzleBoard : DOM --> (DOM +-> RAN) & PUZZLE(PuzzleBoard) &
get_square = %x.(x:DOM | 1 + (x-1)/3) /*@desc "Get square (1,2,3) for a coordinate 1..9" */
&
conflict_pos = %(x,y).(x:DOM & y:DOM | {x2,y2 | x2:DOM & y2:DOM & (x,y) /= (x2,y2) &
......@@ -72,11 +74,11 @@ INVARIANT
curx : DOM &
cury : DOM
INITIALISATION
Board : (Board : DOM --> (DOM +-> RAN) & PUZZLE) ||
Board := PuzzleBoard ||
curx, cury := 1,1
OPERATIONS
SetEmpty = BEGIN Board := %i.(i:DOM|{}) END;
SetPuzzle = BEGIN Board : (Board : DOM --> (DOM +-> RAN) & PUZZLE) END;
SetPuzzle = BEGIN Board := PuzzleBoard END;
SetCurPos(x,y) = PRE x:DOM & y:DOM THEN
......
......@@ -13,6 +13,11 @@
stroke-width : 0.1;
fill : white
}
.fixed {
stroke : lightgray;
stroke-width : 0.1;
fill : white
}
.selected {
stroke : gray;
stroke-width : 0.1;
......
......@@ -19,7 +19,6 @@
"repeat": [1,2,3,4,5,6,7,8,9],
"id": "board_%0_%1",
"attr": "class",
"value" : "IF curx=%0 & cury=%1 THEN \"selected\" ELSIF %0|->%1:conflict_pos(curx,cury) THEN IF %1:dom(Board(%0)) & BOARD(%0)(%1)=BOARD(curx)(cury) THEN \"wrong\" ELSE \"hover\" END ELSE \"normal\" END"
},
{
"for": {"from":1, "to":9},
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment