New puzzle: Loopy', an implementation of Nikoli's Slither Link' or

`Loop the Loop' puzzle. Contributed by Mike Pinna.

[originally from svn r6211]
This commit is contained in:
Simon Tatham
2005-08-24 21:32:54 +00:00
parent c6fa81bfc0
commit c9b47daf1b
6 changed files with 2764 additions and 4 deletions

View File

@ -12,6 +12,10 @@ Add it to Recipe in _four_ places:
- as a Windows build target - as a Windows build target
- in the Unix `make install' section at the bottom. - in the Unix `make install' section at the bottom.
If the puzzle is by a new author, modify the copyright notice in
LICENCE and in puzzles.but. (Also in index.html, but that's listed
below under website changes.)
Add it to list.c so that the OS X binary will be able to select it Add it to list.c so that the OS X binary will be able to select it
from the menus. (Also, double-check that the game structure name in from the menus. (Also, double-check that the game structure name in
the source file has been renamed from `nullgame'. Actually compiling the source file has been renamed from `nullgame'. Actually compiling
@ -30,6 +34,8 @@ Don't forget to `svn add' the new source file before checkin!
Put the puzzle on the web: Put the puzzle on the web:
- make a screenshot - make a screenshot
- add an entry in the puzzles list in index.html - add an entry in the puzzles list in index.html
- adjust the copyright in index.html if the puzzle is by a new
author
- add a link to the Windows binary - add a link to the Windows binary
- make sure the Windows binary link points at the right binary, not - make sure the Windows binary link points at the right binary, not
the wrong one! the wrong one!

View File

@ -1,6 +1,6 @@
This software is copyright (c) 2004-2005 Simon Tatham. This software is copyright (c) 2004-2005 Simon Tatham.
Portions copyright Richard Boulton and James Harvey. Portions copyright Richard Boulton, James Harvey and Mike Pinna.
Permission is hereby granted, free of charge, to any person Permission is hereby granted, free of charge, to any person
obtaining a copy of this software and associated documentation files obtaining a copy of this software and associated documentation files

7
Recipe
View File

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

2
list.c
View File

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

2689
loopy.c Normal file

File diff suppressed because it is too large Load Diff

View File

@ -1642,11 +1642,71 @@ regions. However, it will always be possible without having to
guess or backtrack. guess or backtrack.
\C{loopy} \i{Loopy}
\cfg{winhelp-topic}{games.loopy}
You are given a grid of dots. Your aim is to draw a single unbroken
loop from dot to dot within the grid.
Some of the square spaces between the dots contain numbers. These
numbers indicate how many of the four edges of that square are part
of the loop. The loop you draw must correctly satisfy all of these
clues to be considered a correct solution.
Credit for this puzzle goes to \i{Nikoli} \k{nikoli-loopy}.
Loopy was contributed to this collection by Mike Pinna.
\B{nikoli-loopy}
\W{http://www.nikoli.co.jp/puzzles/3/index-e.htm}\cw{http://www.nikoli.co.jp/puzzles/3/index-e.htm}
(beware of Flash)
\H{loopy-controls} \i{Loopy controls}
\IM{Loopy controls} controls, for Loopy
\IM{Loopy controls} keys, for Loopy
\IM{Loopy controls} shortcuts (keyboard), for Loopy
Click the left mouse button between two dots to add a line segment
connecting them. Click again to remove that line segment.
If you are sure that a particular line segment is \e{not} part of
the loop, you can click the right mouse button to add a small cross
indicating this. Click again to remove the cross.
\H{loopy-parameters} \I{parameters, for Loopy}Loopy 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{Recursion depth}
\dd Determines how much guesswork and backtracking you will need to
do to solve the puzzle. When this is set to zero (as it is for all
of the \q{Easy} options in the menu), you should always be able to
deduce the state of an edge without having to guess. If you increase
it, you will have to guess more and more.
\lcont{
Setting a high value for this option is liable to consume a lot of
CPU time and memory. Be warned!
}
\A{licence} \I{MIT licence}\ii{Licence} \A{licence} \I{MIT licence}\ii{Licence}
This software is \i{copyright} 2004-2005 Simon Tatham. This software is \i{copyright} 2004-2005 Simon Tatham.
Portions copyright Richard Boulton and James Harvey. Portions copyright Richard Boulton, James Harvey and Mike Pinna.
Permission is hereby granted, free of charge, to any person Permission is hereby granted, free of charge, to any person
obtaining a copy of this software and associated documentation files obtaining a copy of this software and associated documentation files