Add a new puzzle: Palisade.

This commit is contained in:
Jonas Kölker
2015-10-02 13:13:39 +02:00
committed by Simon Tatham
parent b33b83429f
commit 6860c65bb3
7 changed files with 1477 additions and 3 deletions

1
.gitignore vendored
View File

@ -32,6 +32,7 @@
/nullgame /nullgame
/numgame /numgame
/obfusc /obfusc
/palisade
/path /path
/pattern /pattern
/patternsolver /patternsolver

11
html/palisade.html Normal file
View File

@ -0,0 +1,11 @@
Palisade
<p>
Draw lines along the grid edges, in such a way that the grid is
divided into connected regions, all of the size shown in the status
line. Also, each square containing a number should have that many of
its edges drawn in.
<p>
Click on a grid edge to mark it as a division between regions (black),
and again to return to marking it as undecided (yellow). Right-click
on a grid edge to mark it as definitely not part of the loop (faint
grey), and again to mark it as undecided again.

View File

@ -2,9 +2,9 @@
PUZZLES = blackbox bridges cube dominosa fifteen filling flip flood \ PUZZLES = blackbox bridges cube dominosa fifteen filling flip flood \
galaxies guess inertia keen lightup loopy magnets map mines \ galaxies guess inertia keen lightup loopy magnets map mines \
net netslide pattern pearl pegs range rect samegame \ net netslide palisade pattern pearl pegs range rect \
signpost singles sixteen slant solo tents towers twiddle \ samegame signpost singles sixteen slant solo tents towers \
tracks undead unequal unruly untangle twiddle tracks undead unequal unruly untangle
BASE = $(patsubst %,%-base.png,$(PUZZLES)) BASE = $(patsubst %,%-base.png,$(PUZZLES))
WEB = $(patsubst %,%-web.png,$(PUZZLES)) WEB = $(patsubst %,%-web.png,$(PUZZLES))
@ -73,6 +73,7 @@ magnets-ibase.png : override CROP=264x232 96x96+36+100
mines-ibase.png : override CROP=240x240 110x110+130+130 mines-ibase.png : override CROP=240x240 110x110+130+130
net-ibase.png : override CROP=193x193 113x113+0+80 net-ibase.png : override CROP=193x193 113x113+0+80
netslide-ibase.png : override CROP=289x289 144x144+0+0 netslide-ibase.png : override CROP=289x289 144x144+0+0
palisade-ibase.png : override CROP=288x288 192x192+0+0
pattern-ibase.png : override CROP=384x384 223x223+0+0 pattern-ibase.png : override CROP=384x384 223x223+0+0
pearl-ibase.png : override CROP=216x216 94x94+108+15 pearl-ibase.png : override CROP=216x216 94x94+108+15
pegs-ibase.png : override CROP=263x263 147x147+116+0 pegs-ibase.png : override CROP=263x263 147x147+116+0

50
icons/palisade.sav Normal file
View File

@ -0,0 +1,50 @@
SAVEFILE:41:Simon Tatham's Portable Puzzle Collection
VERSION :1:1
GAME :8:Palisade
PARAMS :5:5x5n5
CPARAMS :5:5x5n5
SEED :15:930059588777257
DESC :13:2d23c33e2c1b2
AUXINFO :52:14a191be1282597737537139d11d87fb4f21ad4a8f31e67b4441
NSTATES :2:41
STATEPOS:2:27
MOVE :14:F0,1,16F0,0,64
MOVE :15:F0,0,32F1,0,128
MOVE :12:F1,1,8F0,1,2
MOVE :12:F1,0,4F1,1,1
MOVE :14:F0,2,16F0,1,64
MOVE :12:F1,2,8F0,2,2
MOVE :12:F0,3,1F0,2,4
MOVE :15:F2,0,128F1,0,32
MOVE :12:F2,0,4F2,1,1
MOVE :12:F3,0,8F2,0,2
MOVE :15:F1,4,128F0,4,32
MOVE :14:F1,4,16F1,3,64
MOVE :15:F2,4,128F1,4,32
MOVE :14:F0,3,64F0,4,16
MOVE :15:F1,3,128F0,3,32
MOVE :12:F1,3,1F1,2,4
MOVE :15:F4,4,128F3,4,32
MOVE :14:F4,4,16F4,3,64
MOVE :12:F3,4,8F2,4,2
MOVE :12:F2,4,1F2,3,4
MOVE :12:F2,3,8F1,3,2
MOVE :14:F2,2,64F2,3,16
MOVE :15:F2,3,32F3,3,128
MOVE :12:F3,3,4F3,4,1
MOVE :12:F4,3,8F3,3,2
MOVE :14:F4,3,16F4,2,64
MOVE :12:F1,2,1F1,1,4
MOVE :15:F2,1,128F1,1,32
MOVE :15:F2,2,128F1,2,32
MOVE :12:F2,2,1F2,1,4
MOVE :15:F3,2,128F2,2,32
MOVE :14:F3,2,64F3,3,16
MOVE :12:F4,2,8F3,2,2
MOVE :12:F3,2,1F3,1,4
MOVE :15:F2,1,32F3,1,128
MOVE :14:F4,2,16F4,1,64
MOVE :12:F4,1,8F3,1,2
MOVE :14:F3,0,64F3,1,16
MOVE :15:F4,0,128F3,0,32
MOVE :12:F4,1,1F4,0,4

21
palisade.R Normal file
View File

@ -0,0 +1,21 @@
# -*- makefile -*-
PALISADE_EXTRA = divvy dsf
palisade : [X] GTK COMMON palisade PALISADE_EXTRA palisade-icon|no-icon
palisade : [G] WINDOWS COMMON palisade PALISADE_EXTRA palisade.res|noicon.res
ALL += palisade[COMBINED] PALISADE_EXTRA
!begin am gtk
GAMES += palisade
!end
!begin >list.c
A(palisade) \
!end
!begin >gamedesc.txt
palisade:palisade.exe:Palisade:Grid-division puzzle:Divide the grid into equal-sized areas in accordance with the clues.
!end

1349
palisade.c Normal file

File diff suppressed because it is too large Load Diff

View File

@ -3296,6 +3296,47 @@ more twiddly and interesting. If you want to restore the possibility,
turn this option off. turn this option off.
\C{palisade} \i{Palisade}
\cfg{winhelp-topic}{games.palisade}
You're given a grid of squares, some of which contain numbers. Your
goal is to subdivide the grid into contiguous regions, all of the same
(given) size, such that each square containing a number is adjacent to
exactly that many edges (including those between the inside and the
outside of the grid).
Credit for this puzzle goes to \i{Nikoli}, who call it \q{Five Cells}.
\k{nikoli-palisade}.
Palisade was contributed to this collection by Jonas K\u00F6{oe}lker.
\B{nikoli-palisade}
\W{http://nikoli.co.jp/en/puzzles/five_cells.html}\cw{http://nikoli.co.jp/en/puzzles/five_cells.html}
\H{palisade-controls} \I{controls, for Palisade}Palisade controls
Left-click to place an edge. Right-click to indicate \q{no edge}.
Alternatively, the arrow keys will move a keyboard cursor. Holding
Control while pressing an arrow key will place an edge. Press
Shift-arrowkey to switch off an edge. Repeat an action to perform
its inverse.
(All the actions described in \k{common-actions} are also available.)
\H{Palisade-parameters} \I{parameters, for Palisade}Palisade parameters
These parameters are available from the \q{Custom...} option on the
\q{Type} menu.
\dt \e{Width}, \e{Height}
\dd Size of grid in squares.
\dt \e{Region size}
\dd The size of the regions into which the grid must be subdivided.
\A{licence} \I{MIT licence}\ii{Licence} \A{licence} \I{MIT licence}\ii{Licence}
This software is \i{copyright} 2004-2014 Simon Tatham. This software is \i{copyright} 2004-2014 Simon Tatham.