New puzzle: Dominosa.

[originally from svn r6091]
This commit is contained in:
Simon Tatham
2005-07-14 17:42:01 +00:00
parent bb63d0d399
commit 69410c7961
4 changed files with 1679 additions and 2 deletions

6
Recipe
View File

@ -22,7 +22,7 @@ FLIP = flip tree234
PEGS = pegs tree234
ALL = list NET NETSLIDE cube fifteen sixteen rect pattern solo twiddle
+ MINES samegame FLIP guess PEGS
+ MINES samegame FLIP guess PEGS dominosa
net : [X] gtk COMMON NET
netslide : [X] gtk COMMON NETSLIDE
@ -38,6 +38,7 @@ samegame : [X] gtk COMMON samegame
flip : [X] gtk COMMON FLIP
guess : [X] gtk COMMON guess
pegs : [X] gtk COMMON PEGS
dominosa : [X] gtk COMMON dominosa
# Auxiliary command-line programs.
solosolver : [U] solo[STANDALONE_SOLVER] malloc
@ -64,6 +65,7 @@ samegame : [G] WINDOWS COMMON samegame
flip : [G] WINDOWS COMMON FLIP
guess : [G] WINDOWS COMMON guess
pegs : [G] WINDOWS COMMON PEGS
dominosa : [G] WINDOWS COMMON dominosa
# Mac OS X unified application containing all the puzzles.
Puzzles : [MX] osx osx.icns osx-info.plist COMMON ALL
@ -155,7 +157,7 @@ FORCE:
install:
for i in cube net netslide fifteen sixteen twiddle \
pattern rect solo mines samegame flip guess \
pegs; do \
pegs dominosa; do \
$(INSTALL_PROGRAM) -m 755 $$i $(DESTDIR)$(gamesdir)/$$i; \
done
!end

1623
dominosa.c Normal file

File diff suppressed because it is too large Load Diff

2
list.c
View File

@ -18,6 +18,7 @@ echo -e '};\n\nconst int gamecount = lenof(gamelist);'
*/
extern const game cube;
extern const game dominosa;
extern const game fifteen;
extern const game flip;
extern const game guess;
@ -34,6 +35,7 @@ extern const game twiddle;
const game *gamelist[] = {
&cube,
&dominosa,
&fifteen,
&flip,
&guess,

View File

@ -1193,6 +1193,56 @@ Selecting \q{Random} will give you a different board shape every
time (but always one that is known to have a solution).
\C{dominosa} \i{Dominosa}
\cfg{winhelp-topic}{games.dominosa}
A normal set of dominoes has been arranged irregularly into a
rectangle; then the number in each square has been written down and
the dominoes themselves removed. Your task is to reconstruct the
pattern by arranging the set of dominoes to match the provided array
of numbers.
This puzzle is widely credited to O. S. Adler, and takes part of its
name from those initials.
\H{dominosa-controls} \i{Dominosa controls}
\IM{Dominosa controls} controls, for Dominosa
Left-clicking between any two adjacent numbers places a domino
covering them, or removes one if it is already present. Trying to
place a domino which overlaps existing dominoes will remove the ones
it overlaps.
Right-clicking between two adjacent numbers draws a line between
them, which you can use to remind yourself that you know those two
numbers are \e{not} covered by a single domino. Right-clicking again
removes the line.
\H{dominosa-parameters} \I{parameters, for Dominosa}Dominosa parameters
These parameters are available from the \q{Custom...} option on the
\q{Type} menu.
\dt \e{Maximum number on dominoes}
\dd Controls the size of the puzzle, by controlling the size of the
set of dominoes used to make it. Dominoes with numbers going up to N
will give rise to an (N+2) \by (N+1) rectangle; so, in particular,
the default value of 6 gives an 8\by\.7 grid.
\dt \e{Ensure unique solution}
\dd Normally, Dominosa will make sure that the puzzles it presents
have only one solution. Puzzles with ambiguous sections can be more
difficult and sometimes more subtle, so if you like you can turn off
this feature. Also, finding \e{all} the possible solutions can be an
additional challenge for an advanced player. Turning off this option
can also speed up puzzle generation.
\A{licence} \I{MIT licence}\ii{Licence}
This software is \i{copyright} 2004-2005 Simon Tatham.