New puzzle: `Map'. Vaguely original, for a change.

(This puzzle is theoretically printable, but I haven't added it in
print.py since there's rather a lot of painful processing required
to get from the game ID to the puzzle's visual appearance. It
probably won't become printable unless I get round to implementing a
more integrated printing architecture.)

[originally from svn r6186]
This commit is contained in:
Simon Tatham
2005-08-13 10:43:26 +00:00
parent 12def7ede2
commit 6ada3841a1
4 changed files with 2129 additions and 2 deletions

8
Recipe
View File

@ -22,10 +22,11 @@ FLIP = flip tree234
PEGS = pegs tree234
UNTANGLE = untangle tree234
SLANT = slant dsf
MAP = map dsf
ALL = list NET NETSLIDE cube fifteen sixteen rect pattern solo twiddle
+ MINES samegame FLIP guess PEGS dominosa UNTANGLE blackbox SLANT
+ lightup
+ lightup MAP
net : [X] gtk COMMON NET
netslide : [X] gtk COMMON NETSLIDE
@ -46,6 +47,7 @@ untangle : [X] gtk COMMON UNTANGLE
blackbox : [X] gtk COMMON blackbox
slant : [X] gtk COMMON SLANT
lightup : [X] gtk COMMON lightup
map : [X] gtk COMMON MAP
# Auxiliary command-line programs.
solosolver : [U] solo[STANDALONE_SOLVER] malloc
@ -79,6 +81,7 @@ untangle : [G] WINDOWS COMMON UNTANGLE
blackbox : [G] WINDOWS COMMON blackbox
slant : [G] WINDOWS COMMON SLANT
lightup : [G] WINDOWS COMMON lightup
map : [G] WINDOWS COMMON MAP
# Mac OS X unified application containing all the puzzles.
Puzzles : [MX] osx osx.icns osx-info.plist COMMON ALL
@ -170,7 +173,8 @@ FORCE:
install:
for i in cube net netslide fifteen sixteen twiddle \
pattern rect solo mines samegame flip guess \
pegs dominosa untangle blackbox slant lightup; do \
pegs dominosa untangle blackbox slant lightup \
map; do \
$(INSTALL_PROGRAM) -m 755 $$i $(DESTDIR)$(gamesdir)/$$i; \
done
!end

2
list.c
View File

@ -24,6 +24,7 @@ extern const game fifteen;
extern const game flip;
extern const game guess;
extern const game lightup;
extern const game map;
extern const game mines;
extern const game net;
extern const game netslide;
@ -45,6 +46,7 @@ const game *gamelist[] = {
&flip,
&guess,
&lightup,
&map,
&mines,
&net,
&netslide,

2061
map.c Normal file

File diff suppressed because it is too large Load Diff

View File

@ -1582,6 +1582,66 @@ backtracking or guessing, \q{Hard} means that some guesses will
probably be necessary.
\C{map} \i{Map}
\cfg{winhelp-topic}{games.map}
You are given a map consisting of a number of regions. Your task is
to colour each region with one of four colours, in such a way that
no two regions sharing a boundary have the same colour. You are
provided with some regions already coloured, sufficient to make the
remainder of the solution unique.
Only regions which share a length of border are required to be
different colours. Two regions which meet at only one \e{point}
(i.e. are diagonally separated) may be the same colour.
I believe this puzzle is original; I've never seen an implementation
of it anywhere else. The concept of a four-colouring puzzle was
suggested by Owen Dunn; credit must also go to Nikoli and to Verity
Allan for inspiring the train of thought that led to me realising
Owen's suggestion was a viable puzzle. Thanks also to Gareth Taylor
for many detailed suggestions.
\H{map-controls} \i{Map controls}
\IM{Map controls} controls, for Map
\IM{Map controls} keys, for Map
\IM{Map controls} shortcuts (keyboard), for Map
To colour a region, click on an existing region of the desired
colour and drag that colour into the new region.
(The program will always ensure the starting puzzle has at least one
region of each colour, so that this is always possible!)
If you need to clear a region, you can drag from an empty region, or
from the puzzle boundary if there are no empty regions left.
\H{map-parameters} \I{parameters, for Map}Map 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{Regions}
\dd Number of regions in the generated map.
\dt \e{Difficulty}
\dd In \q{Easy} mode, there should always be at least one region
whose colour can be determined trivially. In \q{Normal} mode, you
will have to use more complex logic to deduce the colour of some
regions. However, it will always be possible without having to
guess or backtrack.
\A{licence} \I{MIT licence}\ii{Licence}
This software is \i{copyright} 2004-2005 Simon Tatham.