New puzzle! Or rather, new-ish, because this one has been lying around

in the 'unfinished' directory for a while, and has now been finished
up thanks to James Harvey putting in some effort and galvanising me to
put in the rest. This is 'Pearl', an implementation of Nikoli's 'Masyu'.

The code in Loopy that generates a random loop along grid edges to use
as the puzzle solution has been abstracted out into loopgen.[ch] so
that Pearl can use it for its puzzle solutions too. I've also
introduced a new utility module called 'tdq' (for 'to-do queue').

[originally from svn r9379]
This commit is contained in:
Simon Tatham
2012-01-22 14:14:26 +00:00
parent b2d7429d53
commit b16eece9fc
12 changed files with 3364 additions and 1907 deletions

View File

@ -2,8 +2,8 @@
PUZZLES = blackbox bridges cube dominosa fifteen filling flip galaxies guess \
inertia keen lightup loopy magnets map mines net netslide pattern \
pegs range rect samegame signpost singles sixteen slant solo tents \
towers twiddle unequal untangle
pearl pegs range rect samegame signpost singles sixteen slant solo \
tents towers twiddle unequal untangle
BASE = $(patsubst %,%-base.png,$(PUZZLES))
WEB = $(patsubst %,%-web.png,$(PUZZLES))
@ -69,6 +69,7 @@ mines-ibase.png : override CROP=240x240 110x110+130+130
net-ibase.png : override CROP=193x193 113x113+0+80
netslide-ibase.png : override CROP=289x289 144x144+0+0
pattern-ibase.png : override CROP=384x384 223x223+0+0
pearl-ibase.png : override CROP=216x216 94x94+108+15
pegs-ibase.png : override CROP=263x263 147x147+116+0
range-ibase.png : override CROP=256x256 98x98+111+15
rect-ibase.png : override CROP=205x205 115x115+90+0

23
icons/pearl.sav Normal file
View File

@ -0,0 +1,23 @@
SAVEFILE:41:Simon Tatham's Portable Puzzle Collection
VERSION :1:1
GAME :5:Pearl
PARAMS :5:6x6dt
CPARAMS :5:6x6dt
SEED :15:901944054393278
DESC :17:BbBfWcWbWBaBeWgWa
AUXINFO :72:f8bbe71b9be753d5fa143df207d7797ba62a9b3996eb8b8889487e1a2bd659d91a5e73e1
NSTATES :2:14
STATEPOS:1:7
MOVE :55:F4,2,0;F1,1,0;F4,1,0;F1,0,0;F8,0,0;F2,0,1;F8,0,1;F2,0,2
MOVE :27:F1,0,3;F4,1,3;F1,1,3;F4,2,3
MOVE :27:F8,3,0;F2,3,1;F8,3,1;F2,3,2
MOVE :97:F2,4,2;F8,4,1;F2,4,1;F8,4,0;F1,4,0;F4,5,0;F8,5,0;F2,5,1;F8,5,1;F2,5,2;F8,5,2;F2,5,3;F4,5,3;F1,4,3
MOVE :13:F4,4,2;F1,3,2
MOVE :13:F4,3,0;F1,2,0
MOVE :69:F2,2,3;F8,2,2;F2,2,2;F8,2,1;F4,2,1;F1,1,1;F8,1,1;F2,1,2;F4,1,2;F1,0,2
MOVE :41:F8,0,3;F2,0,4;F8,0,4;F2,0,5;F1,0,5;F4,1,5
MOVE :27:F1,1,4;F4,2,4;F1,2,4;F4,3,4
MOVE :13:F8,1,4;F2,1,5
MOVE :55:F1,3,5;F4,4,5;F1,4,5;F4,5,5;F2,5,5;F8,5,4;F4,5,4;F1,4,4
MOVE :13:F2,3,5;F8,3,4
MOVE :13:F2,4,4;F8,4,3