summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/logicpuzzle/lpenv.sty
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2014-06-30 22:40:57 +0000
committerKarl Berry <karl@freefriends.org>2014-06-30 22:40:57 +0000
commit3aa44db1e4dea11619c4a7260854303656fbe2c4 (patch)
treea82af70f8cd615b8ed4bf06a285f156f063f0306 /Master/texmf-dist/tex/latex/logicpuzzle/lpenv.sty
parent96269d837dc550d7b3276e44afcfc7a4b42b5259 (diff)
logicpuzzle (29jun14)
git-svn-id: svn://tug.org/texlive/trunk@34491 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/logicpuzzle/lpenv.sty')
-rw-r--r--Master/texmf-dist/tex/latex/logicpuzzle/lpenv.sty1232
1 files changed, 973 insertions, 259 deletions
diff --git a/Master/texmf-dist/tex/latex/logicpuzzle/lpenv.sty b/Master/texmf-dist/tex/latex/logicpuzzle/lpenv.sty
index dc31c538505..5bcd6cbafd7 100644
--- a/Master/texmf-dist/tex/latex/logicpuzzle/lpenv.sty
+++ b/Master/texmf-dist/tex/latex/logicpuzzle/lpenv.sty
@@ -1,32 +1,35 @@
%%
-%% Copyright (C) 2013 by:
+%% This is file `lpenv.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% logicpuzzle.dtx (with options: `lpenv')
+%%
+%% Copyright (C) 2013-2014 by:
%% Josef Kleber
%% <josef.kleber@gmx.de>
-%%
+%%
%% This file may be distributed and/or modified under the conditions of
%% the LaTeX Project Public License, either version 1.3 of this license
%% or (at your option) any later version. The latest version of this
%% license is in:
-%%
+%%
%% http://www.latex-project.org/lppl.txt
-%%
+%%
%% and version 1.3 or later is part of all distributions of LaTeX version
%% 2003/12/01 or later.
-%%
+%%
%% This work has the LPPL maintenance status "author-maintained".
-%%
+%%
%% The Current Maintainer of this work is Josef Kleber.
-%%
+%%
%% This work consists of all files listed in manifest.txt.
-%%
-%
-\ProvidesPackage{lpenv}[2013/06/06 lpenv.sty v2.4 - Josef Kleber (C) 2013]%
-%
-% battleship environment and options
-%
+%%
+\NeedsTeXFormat{LaTeX2e}%
+\ProvidesPackage{lpenv}[2015/06/15 v2.5 lpenv.sty - Josef Kleber (C) 2013-2014]%
\newcommand*\LP@BS@init@prefix{LP@BS}%
\newcommand*\LP@BS@init@package{battleship}%
-%
\LP@define@key{\LP@BS@init@prefix}{\LP@BS@init@package}{rows}{5}%
\LP@define@key{\LP@BS@init@prefix}{\LP@BS@init@package}{columns}{5}%
\LP@define@key{\LP@BS@init@prefix}{\LP@BS@init@package}{shipcolor}{green}%
@@ -42,10 +45,8 @@
\LP@define@key{\LP@BS@init@prefix}{\LP@BS@init@package}{sbwidth}{5.15cm}%
\LP@define@key{\LP@BS@init@prefix}{\LP@BS@init@package}{sbshipscale}{1}%
\LP@define@choicekey@fontsize{\LP@BS@init@prefix}{\LP@BS@init@package}{{Large}}%
-%
\gdef\LP@BS@shipbox{}%
\tikzstyle{island} = [fill=yellow!30,draw, decorate, decoration={random steps,segment length=2.7pt,amplitude=1.7pt}]%
-%
\newcommand*\Ship{\tikz[scale=\LP@BS@scale]\draw[scale=.36,fill=\LP@BS@shipcolor] (0,0) circle (1);}%
\newcommand*\ShipC{\tikz[scale=\LP@BS@scale]\draw[scale=.36,fill=\LP@BS@shipcolor] (0,0)--(0,2)--(2,2)--(2,0)--cycle;}%
\newcommand*\ShipT{\tikz[scale=\LP@BS@scale]\draw[scale=.36,fill=\LP@BS@shipcolor](2,1)--(2,0)--(0,0)--(0,1) arc (180:0:1);}%
@@ -54,14 +55,12 @@
\newcommand*\ShipR{\tikz[scale=\LP@BS@scale]\draw[scale=.36,fill=\LP@BS@shipcolor](1,2)--(0,2)--(0,0)--(1,0) arc (270:450:1);}%
\newcommand*\Island{\tikz[scale=\LP@BS@scale]\draw[scale=.36,island] (0,0) rectangle (2,2);}%
\newcommand*\Water{\tikz[scale=\LP@BS@scale]\draw[scale=.36,fill,blue!40] (1,1) circle (0.2);}%
-% versions for \shipbox without second scale
\newcommand*\@Ship{\tikz\draw[scale=.144,fill=\LP@BS@shipcolor] (0,0) circle (1);}%
\newcommand*\@ShipC{\tikz\draw[scale=.144,fill=\LP@BS@shipcolor] (0,0)--(0,2)--(2,2)--(2,0)--cycle;}%
\newcommand*\@ShipT{\tikz\draw[scale=.144,fill=\LP@BS@shipcolor](2,1)--(2,0)--(0,0)--(0,1) arc (180:0:1);}%
\newcommand*\@ShipB{\tikz\draw[scale=.144,fill=\LP@BS@shipcolor](2,1)--(2,2)--(0,2)--(0,1) arc (180:360:1);}%
\newcommand*\@ShipL{\tikz\draw[scale=.144,fill=\LP@BS@shipcolor](1,2)--(2,2)--(2,0)--(1,0) arc (270:90:1);}%
\newcommand*\@ShipR{\tikz\draw[scale=.144,fill=\LP@BS@shipcolor](1,2)--(0,2)--(0,0)--(1,0) arc (270:450:1);}%
-%
\newcommand*\LP@BS@printship[1]%
{%
\ifthenelse{\equal{#1}{1}}{\scalebox{\LP@BS@sbshipscale}{\@Ship}\space\allowbreak}{}%
@@ -75,48 +74,42 @@
\ifthenelse{\equal{#1}{9}}{\scalebox{\LP@BS@sbshipscale}{\@ShipL\,\@ShipC\,\@ShipC\,\@ShipC\,\@ShipC\,\@ShipC\,\@ShipC\,\@ShipC\,\@ShipR}\space\allowbreak}{}%
\ifthenelse{\equal{#1}{10}}{\scalebox{\LP@BS@sbshipscale}{\@ShipL\,\@ShipC\,\@ShipC\,\@ShipC\,\@ShipC\,\@ShipC\,\@ShipC\,\@ShipC\,\@ShipC\,\@ShipR}\space\allowbreak}{}%
}%
-%
\newcommand*\LP@BS@printshipbox[1]%
-{% \expandafters needed because csv list is stored in macro
- \expandafter\forcsvlist\expandafter\LP@BS@printship\expandafter{#1}%
+{%
+ \foreach \LP@element in #1%
+ {%
+ \LP@BS@printship{\LP@element}%
+ }%
}%
-%
\newcommand*\shipH[1]%
{%
\LP@setrowcontents{#1}{1}{\value{LP@rows}}%
}%
-%
\newcommand*\shipV[1]%
{%
\LP@setcolumncontents{#1}{0}{1}%
}%
-%
\newcommand*\placesegment[3]%
{%
\LP@ingrid{#1}{#2}{\LP@BS@columns}{\LP@BS@rows}{battleship}%
- \LP@setcellcontent{#1}{#2}{#3}%
+ \LP@G@setcellcontent[hcenter,vcenter]{#1}{#2}{#3}%
}%
-%
\let\ship\placesegment%
-%
\newcommand*\placeisland[2]%
{%
\LP@ingrid{#1}{#2}{\LP@BS@columns}{\LP@BS@rows}{battleship}%
- \LP@setcellcontent{#1}{#2}{\Island}%
+ \LP@G@setcellcontent[hcenter,vcenter]{#1}{#2}{\Island}%
}%
-%
\newcommand*\placewater[2]%
{%
\LP@ingrid{#1}{#2}{\LP@BS@columns}{\LP@BS@rows}{battleship}%
- \LP@setcellcontent{#1}{#2}{\Water}%
+ \LP@G@setcellcontent[hcenter,vcenter]{#1}{#2}{\Water}%
}%
-%
\newcommand*\shipbox[2][]%
{%
\setkeys{shipbox}{#1}%
\gdef\LP@BS@shipbox{#2}%
}%
-%
\newcommand*\placeship[4]%
{%
\setcounter{LP@counti}{#4}% length
@@ -170,12 +163,10 @@
}%
\fi%
}%
-%
\newcommand*\battleshipsetup[1]%
{%
\setkeys{battleship.sty}{#1}%
}%
-%
\newcommand{\classicgame}[1]%
{%
\begin{center}%
@@ -204,7 +195,6 @@
\end{battleship}%
\end{center}%
}%
-%
\newenvironment{battleship}[1][]%
{%
\setkeys{battleship}{#1}%
@@ -219,7 +209,7 @@
\ifthenelse{\equal{\LP@BS@title}{}}%
{\par\enspace\par}% empty
{\enspace\par\noindent\hspace{\LP@BS@titleindent}\parbox{\LP@BS@titlewidth}{\strut\LP@titleformat\LP@BS@title}\vspace{3mm}\par}%
- \begin{tikzpicture}[scale=\LP@BS@scale]%
+ \begin{tikzpicture}[LPpreset,scale=\LP@BS@scale]%
\LP@drawbackground{1}{1}{\LP@BS@columns}{\LP@BS@rows}{\LP@BS@bgcolor}%
\LP@drawgrid{1}{1}{\LP@BS@columns}{\LP@BS@rows}{1cm}%
}%
@@ -230,12 +220,8 @@
\stepcounter{LP@puzzlecounter}%
\end{minipage}%
}%
-%
-% bokkusu environment and options
-%
\newcommand*\LP@BK@init@prefix{LP@BK}%
\newcommand*\LP@BK@init@package{bokkusu}%
-%
\LP@define@key{\LP@BK@init@prefix}{\LP@BK@init@package}{rows}{5}%
\LP@define@key{\LP@BK@init@prefix}{\LP@BK@init@package}{columns}{5}%
\LP@define@key{\LP@BK@init@prefix}{\LP@BK@init@package}{scale}{1}%
@@ -248,17 +234,14 @@
\LP@define@key{\LP@BK@init@prefix}{\LP@BK@init@package}{titleindent}{0.75cm}%
\LP@define@key{\LP@BK@init@prefix}{\LP@BK@init@package}{titlewidth}{5.85cm}%
\LP@define@choicekey@fontsize{\LP@BK@init@prefix}{\LP@BK@init@package}{Large}%
-%
\let\valueH\LP@bottomrow%
\let\valueV\LP@leftcolumn%
\let\sumH\LP@toprow%
\let\sumV\LP@rightcolumn%
-%
\newcommand*\bokkususetup[1]%
{%
\setkeys{bokkusu.sty}{#1}%
}%
-%
\newenvironment{bokkusu}[1][]%
{%
\setkeys{bokkusu}{#1}%
@@ -272,7 +255,7 @@
\ifthenelse{\equal{\LP@BK@title}{}}%
{\par\enspace\par}% empty
{\enspace\par\noindent\hspace{\LP@BK@titleindent}\parbox{\LP@BK@titlewidth}{\strut\LP@titleformat\LP@BK@title}\vspace{3mm}\par}%
- \begin{tikzpicture}[scale=\LP@BK@scale]%
+ \begin{tikzpicture}[LPpreset,scale=\LP@BK@scale]%
\LP@drawbackground{1}{1}{\LP@BK@columns}{\LP@BK@rows}{\LP@BK@bgcolor}%
\LP@drawgrid{1}{1}{\LP@BK@columns}{\LP@BK@rows}{1cm}%
}%
@@ -282,12 +265,8 @@
\stepcounter{LP@puzzlecounter}%
\end{minipage}%
}%
-%
-% bridges environment and options
-%
\newcommand*\LP@BG@init@prefix{LP@BG}%
\newcommand*\LP@BG@init@package{bridges}%
-%
\LP@define@key{\LP@BG@init@prefix}{\LP@BG@init@package}{rows}{5}%
\LP@define@key{\LP@BG@init@prefix}{\LP@BG@init@package}{columns}{5}%
\LP@define@key{\LP@BG@init@prefix}{\LP@BG@init@package}{scale}{1}%
@@ -301,14 +280,54 @@
\LP@define@key{\LP@BG@init@prefix}{\LP@BG@init@package}{titleindent}{0cm}%
\LP@define@key{\LP@BG@init@prefix}{\LP@BG@init@package}{titlewidth}{6.1cm}%
\LP@define@choicekey@fontsize{\LP@BG@init@prefix}{\LP@BG@init@package}{Large}%
-%
\let\bridgescell\setcell%
-%
\newcommand*\bridgessetup[1]%
{%
\setkeys{bridges.sty}{#1}%
}%
-%
+\newcommand*\bridgesrow[2]%
+{%
+ \setcounter{LP@counti}{1}%
+ \setcounter{LP@countii}{#1}%
+ \LP@set@LP@fontsize{\LP@env@prefix}%
+ \LP@set@LP@color{\LP@env@prefix}%
+ \foreach \LP@element in {#2}%
+ {%
+ \ifthenelse{\equal{\LP@element}{}}%
+ {}%
+ {%
+ \draw[fill=\LP@color] (\arabic{LP@counti},\arabic{LP@countii})%
+ circle (0.5cm);%
+ \node[scale=\LP@scale,font=\LP@fontsize] at%
+ (\arabic{LP@counti},\arabic{LP@countii}){\LP@element};%
+ }%
+ \stepcounter{LP@counti}%
+ };%
+}%
+\newcommand*\bridgescolumn[2]%
+{%
+ \setcounter{LP@counti}{#1}%
+ \setcounter{LP@countii}{1}%
+ \LP@set@LP@fontsize{\LP@env@prefix}%
+ \LP@set@LP@color{\LP@env@prefix}%
+ \foreach \LP@element in {#2}%
+ {%
+ \ifthenelse{\equal{\LP@element}{}}%
+ {}%
+ {%
+ \draw[fill=\LP@color] (\arabic{LP@counti},\arabic{LP@countii})%
+ circle (0.5cm);%
+ \node[scale=\LP@scale,font=\LP@fontsize]%
+ at (\arabic{LP@counti},\arabic{LP@countii})%
+ {\LP@element};%
+ }%
+ \stepcounter{LP@countii}%
+ };%
+}%
+\newcommand*\bridge[2][]%
+{%
+ \LP@Line[#1]{#2}%
+}%
\newenvironment{bridges}[1][]%
{%
\setkeys{bridges}{#1}%
@@ -322,7 +341,7 @@
\ifthenelse{\equal{\LP@BG@title}{}}%
{\par\enspace\par}% empty
{\enspace\par\noindent\hspace{\LP@BG@titleindent}\parbox{\LP@BG@titlewidth}{\strut\LP@titleformat\LP@BG@title}\vspace{3mm}\par}%
- \begin{tikzpicture}[scale=\LP@BG@scale]%
+ \begin{tikzpicture}[LPpreset,scale=\LP@BG@scale]%
\LP@drawbackground{1}{1}{\LP@BG@columns}{\LP@BG@rows}{\LP@BG@bgcolor}%
\ifthenelse{\equal{\LP@BG@grid}{none}}%
{}%
@@ -343,12 +362,8 @@
\stepcounter{LP@puzzlecounter}%
\end{minipage}%
}%
-%
-% chaossudoku environment and options
-%
\newcommand*\LP@CS@init@prefix{LP@CS}%
\newcommand*\LP@CS@init@package{chaossudoku}%
-%
\LP@define@key{\LP@CS@init@prefix}{\LP@CS@init@package}{rows}{5}%
\LP@define@key{\LP@CS@init@prefix}{\LP@CS@init@package}{columns}{5}%
\LP@define@key{\LP@CS@init@prefix}{\LP@CS@init@package}{scale}{1}%
@@ -360,14 +375,11 @@
\LP@define@key{\LP@CS@init@prefix}{\LP@CS@init@package}{titleindent}{0cm}%
\LP@define@key{\LP@CS@init@prefix}{\LP@CS@init@package}{titlewidth}{5.1cm}%
\LP@define@choicekey@fontsize{\LP@CS@init@prefix}{\LP@CS@init@package}{Large}%
-%
\let\chaossudokucell\setcell%
-%
\newcommand*\chaossudokusetup[1]%
{%
\setkeys{chaossudoku.sty}{#1}%
}%
-%
\newenvironment{chaossudoku}[1][]%
{%
\setkeys{chaossudoku}{#1}%
@@ -381,7 +393,7 @@
\ifthenelse{\equal{\LP@CS@title}{}}%
{\par\enspace\par}% empty
{\enspace\par\noindent\hspace{\LP@CS@titleindent}\parbox{\LP@CS@titlewidth}{\strut\LP@titleformat\LP@CS@title}\vspace{3mm}\par}%
- \begin{tikzpicture}[scale=\LP@CS@scale]%
+ \begin{tikzpicture}[LPpreset,scale=\LP@CS@scale]%
\LP@drawbackground{1}{1}{\LP@CS@columns}{\LP@CS@rows}{\LP@CS@bgcolor}%
\LP@drawgrid{1}{1}{\LP@CS@columns}{\LP@CS@rows}{1cm}%
}%
@@ -391,12 +403,8 @@
\stepcounter{LP@puzzlecounter}%
\end{minipage}%
}%
-%
-% ddsudoku environment and options
-%
\newcommand*\LP@DDS@init@prefix{LP@DDS}%
\newcommand*\LP@DDS@init@package{ddsudoku}%
-%
\LP@define@key{\LP@DDS@init@prefix}{\LP@DDS@init@package}{rows}{5}%
\LP@define@key{\LP@DDS@init@prefix}{\LP@DDS@init@package}{columns}{5}%
\LP@define@key{\LP@DDS@init@prefix}{\LP@DDS@init@package}{scale}{1}%
@@ -408,14 +416,11 @@
\LP@define@key{\LP@DDS@init@prefix}{\LP@DDS@init@package}{titleindent}{0cm}%
\LP@define@key{\LP@DDS@init@prefix}{\LP@DDS@init@package}{titlewidth}{5.1cm}%
\LP@define@choicekey@fontsize{\LP@DDS@init@prefix}{\LP@DDS@init@package}{Large}%
-%
\let\ddsudokucell\setcell%
-%
\newcommand*\ddsudokusetup[1]%
{%
\setkeys{ddsudoku.sty}{#1}%
}%
-%
\newenvironment{ddsudoku}[1][]%
{%
\setkeys{ddsudoku}{#1}%
@@ -429,7 +434,7 @@
\ifthenelse{\equal{\LP@DDS@title}{}}%
{\par\enspace\par}% empty
{\enspace\par\noindent\hspace{\LP@DDS@titleindent}\parbox{\LP@DDS@titlewidth}{\strut\LP@titleformat\LP@DDS@title}\vspace{3mm}\par}%
- \begin{tikzpicture}[scale=\LP@DDS@scale]%
+ \begin{tikzpicture}[LPpreset,scale=\LP@DDS@scale]%
\LP@drawbackground{1}{1}{\LP@DDS@columns}{\LP@DDS@rows}{\LP@DDS@bgcolor}%
\LP@drawgrid{1}{1}{\LP@DDS@columns}{\LP@DDS@rows}{1cm}%
}%
@@ -439,12 +444,8 @@
\stepcounter{LP@puzzlecounter}%
\end{minipage}%
}%
-%
-% fourwinds environment and options
-%
\newcommand*\LP@FW@init@prefix{LP@FW}%
\newcommand*\LP@FW@init@package{fourwinds}%
-%
\LP@define@key{\LP@FW@init@prefix}{\LP@FW@init@package}{rows}{5}%
\LP@define@key{\LP@FW@init@prefix}{\LP@FW@init@package}{columns}{5}%
\LP@define@key{\LP@FW@init@prefix}{\LP@FW@init@package}{scale}{1}%
@@ -457,7 +458,6 @@
\LP@define@key{\LP@FW@init@prefix}{\LP@FW@init@package}{titleindent}{0cm}%
\LP@define@key{\LP@FW@init@prefix}{\LP@FW@init@package}{titlewidth}{5.1cm}%
\LP@define@choicekey@fontsize{\LP@FW@init@prefix}{\LP@FW@init@package}{Large}%
-%
\newcommand*\fourwindscell[4]%
{%
\LP@set@LP@fontsize{\LP@env@prefix}%
@@ -479,12 +479,10 @@
\node[fill=\LP@c@bg@fw,font=\LP@fontsize] at (#1.5,#2.5) {#3};%
\end{puzzlebackground}%
}%
-%
\newcommand*\fourwindssetup[1]%
{%
\setkeys{fourwinds.sty}{#1}%
}%
-%
\newenvironment{fourwinds}[1][]%
{%
\setkeys{fourwinds}{#1}%
@@ -498,7 +496,7 @@
\ifthenelse{\equal{\LP@FW@title}{}}%
{\par\enspace\par}% empty
{\enspace\par\noindent\hspace{\LP@FW@titleindent}\parbox{\LP@FW@titlewidth}{\strut\LP@titleformat\LP@FW@title}\vspace{3mm}\par}%
- \begin{tikzpicture}[scale=\LP@FW@scale]%
+ \begin{tikzpicture}[LPpreset,scale=\LP@FW@scale]%
\LP@drawbackground{1}{1}{\LP@FW@columns}{\LP@FW@rows}{\LP@FW@bgcolor}%
\LP@drawgrid{1}{1}{\LP@FW@columns}{\LP@FW@rows}{1cm}%
}%
@@ -508,12 +506,8 @@
\stepcounter{LP@puzzlecounter}%
\end{minipage}%
}%
-%
-% hakyuu environment and options
-%
\newcommand*\LP@HY@init@prefix{LP@HY}%
\newcommand*\LP@HY@init@package{hakyuu}%
-%
\LP@define@key{\LP@HY@init@prefix}{\LP@HY@init@package}{rows}{5}%
\LP@define@key{\LP@HY@init@prefix}{\LP@HY@init@package}{columns}{5}%
\LP@define@key{\LP@HY@init@prefix}{\LP@HY@init@package}{scale}{1}%
@@ -525,14 +519,11 @@
\LP@define@key{\LP@HY@init@prefix}{\LP@HY@init@package}{titleindent}{0cm}%
\LP@define@key{\LP@HY@init@prefix}{\LP@HY@init@package}{titlewidth}{5.1cm}%
\LP@define@choicekey@fontsize{\LP@HY@init@prefix}{\LP@HY@init@package}{Large}%
-%
\let\hakyuucell\setcell%
-%
\newcommand*\hakyuusetup[1]%
{%
\setkeys{hakyuu.sty}{#1}%
}%
-%
\newenvironment{hakyuu}[1][]%
{%
\setkeys{hakyuu}{#1}%
@@ -546,7 +537,7 @@
\ifthenelse{\equal{\LP@HY@title}{}}%
{\par\enspace\par}% empty
{\enspace\par\noindent\hspace{\LP@HY@titleindent}\parbox{\LP@HY@titlewidth}{\strut\LP@titleformat\LP@HY@title}\vspace{3mm}\par}%
- \begin{tikzpicture}[scale=\LP@HY@scale]%
+ \begin{tikzpicture}[LPpreset,scale=\LP@HY@scale]%
\LP@drawbackground{1}{1}{\LP@HY@columns}{\LP@HY@rows}{\LP@HY@bgcolor}%
\LP@drawgrid{1}{1}{\LP@HY@columns}{\LP@HY@rows}{1cm}%
}%
@@ -556,12 +547,8 @@
\stepcounter{LP@puzzlecounter}%
\end{minipage}%
}%
-%
-% hitori environment and options
-%
\newcommand*\LP@HT@init@prefix{LP@HT}%
\newcommand*\LP@HT@init@package{hitori}%
-%
\LP@define@key{\LP@HT@init@prefix}{\LP@HT@init@package}{rows}{5}%
\LP@define@key{\LP@HT@init@prefix}{\LP@HT@init@package}{columns}{5}%
\LP@define@key{\LP@HT@init@prefix}{\LP@HT@init@package}{scale}{1}%
@@ -573,14 +560,11 @@
\LP@define@key{\LP@HT@init@prefix}{\LP@HT@init@package}{titleindent}{0cm}%
\LP@define@key{\LP@HT@init@prefix}{\LP@HT@init@package}{titlewidth}{5.1cm}%
\LP@define@choicekey@fontsize{\LP@HT@init@prefix}{\LP@HT@init@package}{Large}%
-%
\let\hitoricell\setcell%
-%
\newcommand*\hitorisetup[1]%
{%
\setkeys{hitori.sty}{#1}%
}%
-%
\newenvironment{hitori}[1][]%
{%
\setkeys{hitori}{#1}%
@@ -594,7 +578,7 @@
\ifthenelse{\equal{\LP@HT@title}{}}%
{\par\enspace\par}% empty
{\enspace\par\noindent\hspace{\LP@HT@titleindent}\parbox{\LP@HT@titlewidth}{\strut\LP@titleformat\LP@HT@title}\vspace{3mm}\par}%
- \begin{tikzpicture}[scale=\LP@HT@scale]%
+ \begin{tikzpicture}[LPpreset,scale=\LP@HT@scale]%
\LP@drawbackground{1}{1}{\LP@HT@columns}{\LP@HT@rows}{\LP@HT@bgcolor}%
\LP@drawgrid{1}{1}{\LP@HT@columns}{\LP@HT@rows}{1cm}%
}%
@@ -604,12 +588,8 @@
\stepcounter{LP@puzzlecounter}%
\end{minipage}%
}%
-%
-% kakuro environment and options
-%
\newcommand*\LP@KKR@init@prefix{LP@KKR}%
\newcommand*\LP@KKR@init@package{kakuro}%
-%
\LP@define@key{\LP@KKR@init@prefix}{\LP@KKR@init@package}{rows}{5}%
\LP@define@key{\LP@KKR@init@prefix}{\LP@KKR@init@package}{columns}{5}%
\LP@define@key{\LP@KKR@init@prefix}{\LP@KKR@init@package}{scale}{1}%
@@ -622,9 +602,7 @@
\LP@define@key{\LP@KKR@init@prefix}{\LP@KKR@init@package}{titleindent}{0cm}%
\LP@define@key{\LP@KKR@init@prefix}{\LP@KKR@init@package}{titlewidth}{5.1cm}%
\LP@define@choicekey@fontsize{\LP@KKR@init@prefix}{\LP@KKR@init@package}{Large}%
-%
\newif\ifLP@KKR@solution\LP@KKR@solutionfalse%
-%
\define@choicekey*{kakuro.sty}{solution}[\LP@KKR@solution\nr]{true,false}[true]%
{%
\ifcase\nr\relax%
@@ -635,7 +613,6 @@
\LP@KKR@solutionfalse%
\fi%
}%
-%
\define@choicekey*{kakuro}{solution}[\LP@KKR@solution\nr]{true,false}[true]%
{%
\ifcase\nr\relax%
@@ -646,14 +623,78 @@
\LP@KKR@solutionfalse%
\fi%
}%
-%
\let\kakurocell\setcell%
-%
\newcommand*\kakurosetup[1]%
{%
\setkeys{kakuro.sty}{#1}%
}%
-%
+\def\LP@KKR@print@element#1%
+{%
+ \if!\ifnum9<1#1!\else_\fi%
+ \ifLP@KKR@solution%
+ \setcell{\arabic{LP@counti}}{\arabic{LP@countii}}{#1}%
+ \else%
+ \fi%
+ \else%
+ #1%
+ \fi%
+}%
+\newcommand*\kakurorow[2]%
+{%
+ \setcounter{LP@counti}{1}%
+ \setcounter{LP@countii}{#1}%
+ \foreach \LP@element in {#2}%
+ {%
+ \LP@KKR@print@element{\LP@element}%
+ \stepcounter{LP@counti}%
+ };%
+}%
+\newcommand*\kakurocolumn[2]%
+{%
+ \setcounter{LP@counti}{#1}%
+ \setcounter{LP@countii}{1}%
+ \foreach \LP@element in {#2}%
+ {%
+ \LP@KKR@print@element{\LP@element}%
+ \stepcounter{LP@countii}%
+ };%
+}%
+\newcommand*\KKR[2]%
+{%
+ \LP@set@LP@scale{\LP@env@prefix}%
+ \LP@set@LP@bgcolor{\LP@env@prefix}%
+ \LP@set@LP@color{\LP@env@prefix}%
+ \ifthenelse{\equal{\LP@bgcolor}{}}%
+ {\gdef\LP@sr@bgcolor{white}}%
+ {\gdef\LP@sr@bgcolor{\LP@bgcolor}}%
+ \stepcounter{LP@counter@unique}%
+ \begin{pgfonlayer}{LPdump}%
+ \node [shape=rectangle,inner sep=0pt] (A_\theLP@counter@unique)%
+ at (\arabic{LP@counti}\LP@Pfive,\arabic{LP@countii}\LP@Pfive)%
+ {\tikz\draw[scale=\LP@scale,color=\LP@sr@bgcolor]%
+ (0.08,0.1) rectangle (0.92,0.9);};%
+ \end{pgfonlayer}%
+ \begin{puzzlebackground}%
+ \fill[color=\LP@color]%
+ (\arabic{LP@counti},\arabic{LP@countii}) rectangle ++(1,1);%
+ \draw[line width=\LP@normallines]%
+ (\arabic{LP@counti},\arabic{LP@countii}) -- ++(0,1) -- ++(1,-1);%
+ \end{puzzlebackground}%
+ \node [shape=rectangle,inner sep=0pt,anchor=south west,%
+ scale=\LP@scale,font=\small]%
+ at (A_\theLP@counter@unique.south west) {#1};%
+ \node [shape=rectangle,inner sep=0pt,anchor=north east,%
+ scale=\LP@scale,font=\small]%
+ at (A_\theLP@counter@unique.north east) {#2};%
+}%
+\newcommand*\Black%
+{%
+ \LP@set@LP@scale{\LP@env@prefix}%
+ \begin{puzzlebackground}%
+ \fill[color=black]%
+ (\arabic{LP@counti},\arabic{LP@countii}) rectangle ++(1,1);%
+ \end{puzzlebackground}%
+}%
\newenvironment{kakuro}[1][]%
{%
\setkeys{kakuro}{#1}%
@@ -667,7 +708,7 @@
\ifthenelse{\equal{\LP@KKR@title}{}}%
{\par\enspace\par}% empty
{\enspace\par\noindent\hspace{\LP@KKR@titleindent}\parbox{\LP@KKR@titlewidth}{\strut\LP@titleformat\LP@KKR@title}\vspace{3mm}\par}%
- \begin{tikzpicture}[scale=\LP@KKR@scale]%
+ \begin{tikzpicture}[LPpreset,scale=\LP@KKR@scale]%
\LP@drawbackground{1}{1}{\LP@KKR@columns}{\LP@KKR@rows}{\LP@KKR@bgcolor}%
\LP@drawgrid{1}{1}{\LP@KKR@columns}{\LP@KKR@rows}{1cm}%
}%
@@ -677,12 +718,8 @@
\stepcounter{LP@puzzlecounter}%
\end{minipage}%
}%
-%
-% kendoku environment and options
-%
\newcommand*\LP@KD@init@prefix{LP@KD}%
\newcommand*\LP@KD@init@package{kendoku}%
-%
\LP@define@key{\LP@KD@init@prefix}{\LP@KD@init@package}{rows}{5}%
\LP@define@key{\LP@KD@init@prefix}{\LP@KD@init@package}{columns}{5}%
\LP@define@key{\LP@KD@init@prefix}{\LP@KD@init@package}{scale}{1}%
@@ -694,14 +731,11 @@
\LP@define@key{\LP@KD@init@prefix}{\LP@KD@init@package}{titleindent}{0cm}%
\LP@define@key{\LP@KD@init@prefix}{\LP@KD@init@package}{titlewidth}{5.1cm}%
\LP@define@choicekey@fontsize{\LP@KD@init@prefix}{\LP@KD@init@package}{Large}%
-%
\let\kendokucell\setcell%
-%
\newcommand*\kendokusetup[1]%
{%
\setkeys{kendoku.sty}{#1}%
}%
-%
\newenvironment{kendoku}[1][]%
{%
\setkeys{kendoku}{#1}%
@@ -715,7 +749,7 @@
\ifthenelse{\equal{\LP@KD@title}{}}%
{\par\enspace\par}% empty
{\enspace\par\noindent\hspace{\LP@KD@titleindent}\parbox{\LP@KD@titlewidth}{\strut\LP@titleformat\LP@KD@title}\vspace{3mm}\par}%
- \begin{tikzpicture}[scale=\LP@KD@scale]%
+ \begin{tikzpicture}[LPpreset,scale=\LP@KD@scale]%
\LP@drawbackground{1}{1}{\LP@KD@columns}{\LP@KD@rows}{\LP@KD@bgcolor}%
\LP@drawgrid{1}{1}{\LP@KD@columns}{\LP@KD@rows}{1cm}%
}%
@@ -725,12 +759,8 @@
\stepcounter{LP@puzzlecounter}%
\end{minipage}%
}%
-%
-% killersudoku environment and options
-%
\newcommand*\LP@KSDK@init@prefix{LP@KSDK}%
\newcommand*\LP@KSDK@init@package{killersudoku}%
-%
\LP@define@key{\LP@KSDK@init@prefix}{\LP@KSDK@init@package}{rows}{5}%
\LP@define@key{\LP@KSDK@init@prefix}{\LP@KSDK@init@package}{columns}{5}%
\LP@define@key{\LP@KSDK@init@prefix}{\LP@KSDK@init@package}{scale}{1}%
@@ -742,14 +772,11 @@
\LP@define@key{\LP@KSDK@init@prefix}{\LP@KSDK@init@package}{titleindent}{0cm}%
\LP@define@key{\LP@KSDK@init@prefix}{\LP@KSDK@init@package}{titlewidth}{5.1cm}%
\LP@define@choicekey@fontsize{\LP@KSDK@init@prefix}{\LP@KSDK@init@package}{Large}%
-%
\let\killersudokucell\setcell%
-%
\newcommand*\killersudokusetup[1]%
{%
\setkeys{killersudoku.sty}{#1}%
}%
-%
\newenvironment{killersudoku}[1][]%
{%
\setkeys{killersudoku}{#1}%
@@ -763,7 +790,7 @@
\ifthenelse{\equal{\LP@KSDK@title}{}}%
{\par\enspace\par}% empty
{\enspace\par\noindent\hspace{\LP@KSDK@titleindent}\parbox{\LP@KSDK@titlewidth}{\strut\LP@titleformat\LP@KSDK@title}\vspace{3mm}\par}%
- \begin{tikzpicture}[scale=\LP@KSDK@scale]%
+ \begin{tikzpicture}[LPpreset,scale=\LP@KSDK@scale]%
\LP@drawbackground{1}{1}{\LP@KSDK@columns}{\LP@KSDK@rows}{\LP@KSDK@bgcolor}%
\LP@drawgrid{1}{1}{\LP@KSDK@columns}{\LP@KSDK@rows}{1cm}%
}%
@@ -773,12 +800,8 @@
\stepcounter{LP@puzzlecounter}%
\end{minipage}%
}%
-%
-% laserbeam environment and options
-%
\newcommand*\LP@LB@init@prefix{LP@LB}%
\newcommand*\LP@LB@init@package{laserbeam}%
-%
\LP@define@key{\LP@LB@init@prefix}{\LP@LB@init@package}{rows}{5}%
\LP@define@key{\LP@LB@init@prefix}{\LP@LB@init@package}{columns}{5}%
\LP@define@key{\LP@LB@init@prefix}{\LP@LB@init@package}{scale}{1}%
@@ -790,24 +813,68 @@
\LP@define@key{\LP@LB@init@prefix}{\LP@LB@init@package}{titleindent}{0cm}%
\LP@define@key{\LP@LB@init@prefix}{\LP@LB@init@package}{titlewidth}{6.5cm}%
\LP@define@choicekey@fontsize{\LP@LB@init@prefix}{\LP@LB@init@package}{Large}%
-%
\let\laserH\LP@toprow%
\let\laserV\LP@leftcolumn%
\let\mirrorH\LP@bottomrow@edge%
\let\mirrorV\LP@rightcolumn@edge%
-%
\newcommand*\laser[2][red]%
{%
- % avoid little laser peaks outside grid
\clip (1,1) rectangle (\arabic{LP@columns},\arabic{LP@rows});%
\framearea{#1}{#2}%
}%
-%
\newcommand*\laserbeamsetup[1]%
{%
\setkeys{laserbeam.sty}{#1}%
}%
-%
+\newcommand*\placecross[2]%
+{%
+ \LP@G@setcellcontent{#1}{#2}{\LP@Cross}%
+}%
+\newcommand*\placemirror[3]%
+{%
+ \LP@G@setcellcontent{#1}{#2}{\LP@Mirror{#3}}%
+}%
+\newcommand*\placearrow[3]%
+{%
+ \LP@G@setcellcontent{#1}{#2}{\LP@Arrow{#3}}%
+}%
+\newcommand*\LP@Arrow[1]%
+{%
+ \LP@set@LP@scale{\LP@env@prefix}%
+ \def\LP@rotate{45}%
+ \ifthenelse{\equal{#1}{LeftUp}}{\def\LP@rotate{135}}{}%
+ \ifthenelse{\equal{#1}{LeftDown}}{\def\LP@rotate{225}}{}%
+ \ifthenelse{\equal{#1}{RightDown}}{\def\LP@rotate{315}}{}%
+ \pgfmathsetmacro{\LPlinewidth}{3pt*\LP@scale}%
+ \tikz\draw[->,line width=\LPlinewidth,%
+ rotate=\LP@rotate,scale=\LP@scale]%
+ (0.1,.5) -- (0.9,.5);%
+}%
+\newcommand*\LP@Cross%
+{%
+ \LP@set@LP@scale{\LP@env@prefix}%
+ \begin{tikzpicture}%
+ \begin{pgfonlayer}{LPforeground}%
+ \pgfmathsetmacro{\LPlinewidth}{3pt*\LP@scale}%
+ \draw[line width=\LPlinewidth,scale=\LP@scale,color=LP@c@cross]%
+ (.35,.35) -- (0.65,.65) -- (.5,.5) -- (.65,.35)-- (.35,.65);%
+ \end{pgfonlayer}%
+ \end{tikzpicture}%
+}%
+\newcommand*\LP@Mirror[1]%
+{%
+ \def\LP@rotate{0}%
+ \ifthenelse{\equal{#1}{V}}{\def\LP@rotate{90}}{}%
+ \LP@set@LP@scale{\LP@env@prefix}%
+ \begin{tikzpicture}%
+ \begin{pgfonlayer}{LPforegroundtwo}%
+ \pgfmathsetmacro{\LPlinewidth}{3pt*\LP@scale}%
+ \draw[line width=\LPlinewidth,scale=\LP@scale,%
+ color=LP@c@mirror,rotate=\LP@rotate]%
+ (.35,.5) -- (0.65,.5);%
+ \end{pgfonlayer}%
+ \end{tikzpicture}%
+}%
\newenvironment{laserbeam}[1][]%
{%
\setkeys{laserbeam}{#1}%
@@ -821,7 +888,7 @@
\ifthenelse{\equal{\LP@LB@title}{}}%
{\par\enspace\par}% empty
{\enspace\par\noindent\hspace{\LP@LB@titleindent}\parbox{\LP@LB@titlewidth}{\strut\LP@titleformat\LP@LB@title}\vspace{3mm}\par}%
- \begin{tikzpicture}[scale=\LP@LB@scale]%
+ \begin{tikzpicture}[LPpreset,scale=\LP@LB@scale]%
\LP@drawbackground{1}{1}{\LP@LB@columns}{\LP@LB@rows}{\LP@LB@bgcolor}%
\LP@drawgrid{1}{1}{\LP@LB@columns}{\LP@LB@rows}{1cm}%
}%
@@ -831,12 +898,8 @@
\stepcounter{LP@puzzlecounter}%
\end{minipage}%
}%
-%
-% lpsudoku environment and options
-%
\newcommand*\LP@SDK@init@prefix{LP@SDK}%
\newcommand*\LP@SDK@init@package{lpsudoku}%
-%
\LP@define@key{\LP@SDK@init@prefix}{\LP@SDK@init@package}{rows}{9}%
\LP@define@key{\LP@SDK@init@prefix}{\LP@SDK@init@package}{columns}{9}%
\LP@define@key{\LP@SDK@init@prefix}{\LP@SDK@init@package}{scale}{1}%
@@ -848,14 +911,57 @@
\LP@define@key{\LP@SDK@init@prefix}{\LP@SDK@init@package}{titleindent}{0cm}%
\LP@define@key{\LP@SDK@init@prefix}{\LP@SDK@init@package}{titlewidth}{9.1cm}%
\LP@define@choicekey@fontsize{\LP@SDK@init@prefix}{\LP@SDK@init@package}{Large}%
-%
\let\lpsudokucell\setcell%
-%
\newcommand*\lpsudokusetup[1]%
{%
\setkeys{lpsudoku.sty}{#1}%
}%
-%
+\newcommand*\LP@drawsudokugrid%
+{%
+ \draw[line width=\LP@thicklines,draw opacity=\LP@draw@opacity]%
+ (1,1) -- (1,10);%
+ \draw[line width=\LP@thicklines,draw opacity=\LP@draw@opacity]%
+ (4,1) -- (4,10);%
+ \draw[line width=\LP@thicklines,draw opacity=\LP@draw@opacity]%
+ (7,1) -- (7,10);%
+ \draw[line width=\LP@thicklines,draw opacity=\LP@draw@opacity]%
+ (10,1) -- (10,10);%
+ \draw[line width=\LP@thicklines,draw opacity=\LP@draw@opacity]%
+ (1,1) -- (10,1);%
+ \draw[line width=\LP@thicklines,draw opacity=\LP@draw@opacity]%
+ (1,4) -- (10,4);%
+ \draw[line width=\LP@thicklines,draw opacity=\LP@draw@opacity]%
+ (1,7) -- (10,7);%
+ \draw[line width=\LP@thicklines,draw opacity=\LP@draw@opacity]%
+ (1,10) -- (10,10);%
+}%
+\newcommand*\LP@magnetsgrid%
+{%
+ \LP@set@LP@fontsize{\LP@env@prefix}%
+ \LP@set@LP@columns{\LP@env@prefix}%
+ \LP@set@LP@rows{\LP@env@prefix}%
+ \setcounter{LP@counti}{\LP@columns}% max column
+ \setcounter{LP@countii}{\LP@rows}% max row
+ \stepcounter{LP@counti}%
+ \stepcounter{LP@countii}%
+ \draw[step=1cm,line width=\LP@normallines]%
+ (-1,1) grid (1,\arabic{LP@countii});%
+ \draw[step=1cm,line width=\LP@normallines]%
+ (1,\arabic{LP@countii}) grid ++(\LP@columns,2);%
+ \draw[line width=\LP@normallines]%
+ (0,\arabic{LP@countii}) -- ++(0,1) -- ++(1,0);%
+ \draw[line width=\LP@thicklines]%
+ (-1,1) rectangle (1,\arabic{LP@countii});%
+ \draw[line width=\LP@thicklines]%
+ (1,\arabic{LP@countii}) rectangle ++(\LP@columns,2);%
+ \draw[line width=\LP@thicklines]%
+ (1,\arabic{LP@countii}) rectangle ++(-2,2);%
+ \node[font=\LP@fontsize\bfseries] at (0.5,\arabic{LP@counti}.5)%
+ {$-$};%
+ \stepcounter{LP@counti}%
+ \node[font=\LP@fontsize\bfseries] at (-0.5,\arabic{LP@counti}.5)%
+ {$+$};%
+}%
\newenvironment{lpsudoku}[1][]%
{%
\setkeys{lpsudoku}{#1}%
@@ -869,23 +975,19 @@
\ifthenelse{\equal{\LP@SDK@title}{}}%
{\par\enspace\par}% empty
{\enspace\par\noindent\hspace{\LP@SDK@titleindent}\parbox{\LP@SDK@titlewidth}{\strut\LP@titleformat\LP@SDK@title}\vspace{3mm}\par}%
- \begin{tikzpicture}[scale=\LP@SDK@scale]%
+ \begin{tikzpicture}[LPpreset,scale=\LP@SDK@scale]%
\LP@drawbackground{1}{1}{\LP@SDK@columns}{\LP@SDK@rows}{\LP@SDK@bgcolor}%
\LP@drawgrid{1}{1}{\LP@SDK@columns}{\LP@SDK@rows}{1cm}%
\LP@drawsudokugrid%
}%
{%
\end{tikzpicture}%
- \LP@drawcounter{\LP@counterstyle}%
+ \LP@drawcounter{\LP@SDK@counterstyle}%
\stepcounter{LP@puzzlecounter}%
\end{minipage}%
}%
-%
-% magiclabyrinth environment and options
-%
\newcommand*\LP@ML@init@prefix{LP@ML}%
\newcommand*\LP@ML@init@package{magiclabyrinth}%
-%
\LP@define@key{\LP@ML@init@prefix}{\LP@ML@init@package}{rows}{5}%
\LP@define@key{\LP@ML@init@prefix}{\LP@ML@init@package}{columns}{5}%
\LP@define@key{\LP@ML@init@prefix}{\LP@ML@init@package}{scale}{1}%
@@ -897,14 +999,21 @@
\LP@define@key{\LP@ML@init@prefix}{\LP@ML@init@package}{titleindent}{0cm}%
\LP@define@key{\LP@ML@init@prefix}{\LP@ML@init@package}{titlewidth}{5.1cm}%
\LP@define@choicekey@fontsize{\LP@ML@init@prefix}{\LP@ML@init@package}{Large}%
-%
\let\magiclabyrinthcell\setcell%
-%
\newcommand*\magiclabyrinthsetup[1]%
{%
\setkeys{magiclabyrinth.sty}{#1}%
}%
-%
+\newcommand*\mlline[1]%
+{%
+ \draw[color=black, line width=\LP@thicklines] #1;%
+}%
+\newcommand*\MasyuW%
+{%
+ \begin{tikzpicture}[scale=0.7*\LP@scale]%
+ \draw[color=black,fill=white] (0.5,0.5) circle (0.5cm);%
+ \end{tikzpicture}%
+}%
\newenvironment{magiclabyrinth}[1][]%
{%
\setkeys{magiclabyrinth}{#1}%
@@ -918,7 +1027,7 @@
\ifthenelse{\equal{\LP@ML@title}{}}%
{\par\enspace\par}% empty
{\enspace\par\noindent\hspace{\LP@ML@titleindent}\parbox{\LP@ML@titlewidth}{\strut\LP@titleformat\LP@ML@title}\vspace{3mm}\par}%
- \begin{tikzpicture}[scale=\LP@ML@scale]%
+ \begin{tikzpicture}[LPpreset,scale=\LP@ML@scale]%
\LP@drawbackground{1}{1}{\LP@ML@columns}{\LP@ML@rows}{\LP@ML@bgcolor}%
\LP@drawgrid{1}{1}{\LP@ML@columns}{\LP@ML@rows}{1cm}%
}%
@@ -928,12 +1037,8 @@
\stepcounter{LP@puzzlecounter}%
\end{minipage}%
}%
-%
-% magnets environment and options
-%
\newcommand*\LP@MN@init@prefix{LP@MN}%
\newcommand*\LP@MN@init@package{magnets}%
-%
\LP@define@key{\LP@MN@init@prefix}{\LP@MN@init@package}{rows}{6}%
\LP@define@key{\LP@MN@init@prefix}{\LP@MN@init@package}{columns}{6}%
\LP@define@key{\LP@MN@init@prefix}{\LP@MN@init@package}{scale}{1}%
@@ -945,12 +1050,9 @@
\LP@define@key{\LP@MN@init@prefix}{\LP@MN@init@package}{titleindent}{0cm}%
\LP@define@key{\LP@MN@init@prefix}{\LP@MN@init@package}{titlewidth}{8.1cm}%
\LP@define@choicekey@fontsize{\LP@MN@init@prefix}{\LP@MN@init@package}{Large}%
-%
\let\magnetscell\setcell%
-%
\let\minusH\LP@toprow%
\let\minusV\LP@leftcolumn%
-%
\newcommand*\plusV[1]%
{%
\LP@set@LP@fontsize{\LP@env@prefix}%
@@ -961,7 +1063,6 @@
\stepcounter{LP@counti}%
};%
}%
-%
\newcommand*\plusH[1]%
{%
\LP@set@LP@fontsize{\LP@env@prefix}%
@@ -975,12 +1076,90 @@
\stepcounter{LP@counti}%
};%
}%
-%
\newcommand*\magnetssetup[1]%
{%
\setkeys{magnets.sty}{#1}%
}%
-%
+\newcommand*\PMH[1]%
+{%
+ \LP@set@LP@fontsize{\LP@env@prefix}%
+ \foreach \LP@fe@column/\LP@fe@row in {#1}%
+ {%
+ \setcounter{LP@counti}{\LP@fe@column}%
+ \setcounter{LP@countii}{\LP@fe@row}%
+ \draw[line width=\LP@thicklines,fill=white]%
+ (\arabic{LP@counti},\arabic{LP@countii}) rectangle ++(2,1);%
+ \node[font=\LP@fontsize\bfseries]%
+ at (\arabic{LP@counti}.5,\arabic{LP@countii}.5) {$+$};%
+ \stepcounter{LP@counti}%
+ \node[font=\LP@fontsize\bfseries]%
+ at (\arabic{LP@counti}.5,\arabic{LP@countii}.5) {$-$};%
+ };%
+}%
+\newcommand*\MPH[1]%
+{%
+ \LP@set@LP@fontsize{\LP@env@prefix}%
+ \foreach \LP@fe@column/\LP@fe@row in {#1}%
+ {%
+ \setcounter{LP@counti}{\LP@fe@column}%
+ \setcounter{LP@countii}{\LP@fe@row}%
+ \draw[line width=\LP@thicklines,fill=white]%
+ (\arabic{LP@counti},\arabic{LP@countii}) rectangle ++(2,1);%
+ \node[font=\LP@fontsize\bfseries]%
+ at (\arabic{LP@counti}.5,\arabic{LP@countii}.5) {$-$};%
+ \stepcounter{LP@counti}%
+ \node[font=\LP@fontsize\bfseries]%
+ at (\arabic{LP@counti}.5,\arabic{LP@countii}.5) {$+$};%
+ };%
+}%
+\newcommand*\PMV[1]%
+{%
+ \LP@set@LP@fontsize{\LP@env@prefix}%
+ \foreach \LP@fe@column/\LP@fe@row in {#1}%
+ {%
+ \setcounter{LP@counti}{\LP@fe@column}%
+ \setcounter{LP@countii}{\LP@fe@row}%
+ \draw[line width=\LP@thicklines,fill=white]%
+ (\arabic{LP@counti},\arabic{LP@countii}) rectangle ++(1,2);%
+ \node[font=\LP@fontsize\bfseries]%
+ at (\arabic{LP@counti}.5,\arabic{LP@countii}.5) {$+$};%
+ \stepcounter{LP@countii}%
+ \node[font=\LP@fontsize\bfseries]%
+ at (\arabic{LP@counti}.5,\arabic{LP@countii}.5) {$-$};%
+ };%
+}%
+\newcommand*\MPV[1]%
+{%
+ \LP@set@LP@fontsize{\LP@env@prefix}%
+ \foreach \LP@fe@column/\LP@fe@row in {#1}%
+ {%
+ \setcounter{LP@counti}{\LP@fe@column}%
+ \setcounter{LP@countii}{\LP@fe@row}%
+ \draw[line width=\LP@thicklines,fill=white]%
+ (\arabic{LP@counti},\arabic{LP@countii}) rectangle ++(1,2);%
+ \node[font=\LP@fontsize\bfseries]%
+ at (\arabic{LP@counti}.5,\arabic{LP@countii}.5) {$-$};%
+ \stepcounter{LP@countii}%
+ \node[font=\LP@fontsize\bfseries]%
+ at (\arabic{LP@counti}.5,\arabic{LP@countii}.5) {$+$};%
+ };%
+}%
+\newcommand*\magnetsH[1]%
+{%
+ \foreach \LP@fe@column/\LP@fe@row in {#1}%
+ {%
+ \draw[line width=\LP@thicklines,fill=white]%
+ (\LP@fe@column,\LP@fe@row) rectangle ++(2,1);%
+ };%
+}%
+\newcommand*\magnetsV[1]%
+{%
+ \foreach \LP@fe@column/\LP@fe@row in {#1}%
+ {%
+ \draw[line width=\LP@thicklines,fill=white]%
+ (\LP@fe@column,\LP@fe@row) rectangle ++(1,2);%
+ };%
+}%
\newenvironment{magnets}[1][]%
{%
\setkeys{magnets}{#1}%
@@ -994,7 +1173,7 @@
\ifthenelse{\equal{\LP@MN@title}{}}%
{\par\enspace\par}% empty
{\enspace\par\noindent\hspace{\LP@MN@titleindent}\parbox{\LP@MN@titlewidth}{\strut\LP@titleformat\LP@MN@title}\vspace{3mm}\par}%
- \begin{tikzpicture}[scale=\LP@MN@scale]%
+ \begin{tikzpicture}[LPpreset,scale=\LP@MN@scale]%
\LP@drawbackground{1}{1}{\LP@MN@columns}{\LP@MN@rows}{\LP@MN@bgcolor}%
\LP@drawgrid{1}{1}{\LP@MN@columns}{\LP@MN@rows}{1cm}%
\LP@magnetsgrid%
@@ -1006,12 +1185,8 @@
\stepcounter{LP@puzzlecounter}%
\end{minipage}%
}%
-%
-% masyu environment and options
-%
\newcommand*\LP@MY@init@prefix{LP@MY}%
\newcommand*\LP@MY@init@package{masyu}%
-%
\LP@define@key{\LP@MY@init@prefix}{\LP@MY@init@package}{rows}{5}%
\LP@define@key{\LP@MY@init@prefix}{\LP@MY@init@package}{columns}{5}%
\LP@define@key{\LP@MY@init@prefix}{\LP@MY@init@package}{scale}{1}%
@@ -1024,14 +1199,27 @@
\LP@define@key{\LP@MY@init@prefix}{\LP@MY@init@package}{titleindent}{0cm}%
\LP@define@key{\LP@MY@init@prefix}{\LP@MY@init@package}{titlewidth}{5.1cm}%
\LP@define@choicekey@fontsize{\LP@MY@init@prefix}{\LP@MY@init@package}{Large}%
-%
\let\masyucell\setcell%
-%
\newcommand*\masyusetup[1]%
{%
\setkeys{masyu.sty}{#1}%
}%
-%
+\newcommand*\MasyuB%
+{%
+ \begin{tikzpicture}[scale=0.7*\LP@scale]%
+ \fill[color=black] (0.5,0.5) circle (0.5cm);%
+ \end{tikzpicture}%
+}%
+\newcommand*\masyuline[1]%
+{%
+ \LP@set@LP@color{\LP@env@prefix}%
+ \begin{puzzleforeground}%
+ \bgroup%
+ \def\LP@rel@tikzpath{.5}%
+ \draw[color=\LP@color, line width=\LP@thicklines] #1;%
+ \egroup%
+ \end{puzzleforeground}%
+}%
\newenvironment{masyu}[1][]%
{%
\setkeys{masyu}{#1}%
@@ -1045,7 +1233,7 @@
\ifthenelse{\equal{\LP@MY@title}{}}%
{\par\enspace\par}% empty
{\enspace\par\noindent\hspace{\LP@MY@titleindent}\parbox{\LP@MY@titlewidth}{\strut\LP@titleformat\LP@MY@title}\vspace{3mm}\par}%
- \begin{tikzpicture}[scale=\LP@MY@scale]%
+ \begin{tikzpicture}[LPpreset,scale=\LP@MY@scale]%
\LP@drawbackground{1}{1}{\LP@MY@columns}{\LP@MY@rows}{\LP@MY@bgcolor}%
\LP@drawgrid{1}{1}{\LP@MY@columns}{\LP@MY@rows}{1cm}%
}%
@@ -1055,12 +1243,8 @@
\stepcounter{LP@puzzlecounter}%
\end{minipage}%
}%
-%
-% minesweeper environment and options
-%
\newcommand*\LP@MS@init@prefix{LP@MS}%
\newcommand*\LP@MS@init@package{minesweeper}%
-%
\LP@define@key{\LP@MS@init@prefix}{\LP@MS@init@package}{rows}{5}%
\LP@define@key{\LP@MS@init@prefix}{\LP@MS@init@package}{columns}{5}%
\LP@define@key{\LP@MS@init@prefix}{\LP@MS@init@package}{scale}{1}%
@@ -1072,14 +1256,22 @@
\LP@define@key{\LP@MS@init@prefix}{\LP@MS@init@package}{titleindent}{0cm}%
\LP@define@key{\LP@MS@init@prefix}{\LP@MS@init@package}{titlewidth}{5.1cm}%
\LP@define@choicekey@fontsize{\LP@MS@init@prefix}{\LP@MS@init@package}{Large}%
-%
\let\minesweepercell\setcell%
-%
\newcommand*\minesweepersetup[1]%
{%
\setkeys{minesweeper.sty}{#1}%
}%
-%
+\newcommand*\LP@Mine%
+{%
+ \begin{tikzpicture}[scale=\LP@scale]%
+ \fill[color=black] (.2,.5) -- (.5,.6) -- (.5,.4) -- cycle;%
+ \fill[color=black] (.8,.5) -- (.5,.6) -- (.5,.4) -- cycle;%
+ \fill[color=black] (.5,.8) -- (.4,.5) -- (.6,.5) -- cycle;%
+ \fill[color=black] (.5,.2) -- (.4,.5) -- (.6,.5) -- cycle;%
+ \shade[ball color=black] (.5,.5) circle (.225cm);%
+ \end{tikzpicture}%
+}%
+\let\Mine\LP@Mine%
\newenvironment{minesweeper}[1][]%
{%
\setkeys{minesweeper}{#1}%
@@ -1093,7 +1285,7 @@
\ifthenelse{\equal{\LP@MS@title}{}}%
{\par\enspace\par}% empty
{\enspace\par\noindent\hspace{\LP@MS@titleindent}\parbox{\LP@MS@titlewidth}{\strut\LP@titleformat\LP@MS@title}\vspace{3mm}\par}%
- \begin{tikzpicture}[scale=\LP@MS@scale]%
+ \begin{tikzpicture}[LPpreset,scale=\LP@MS@scale]%
\LP@drawbackground{1}{1}{\LP@MS@columns}{\LP@MS@rows}{\LP@MS@bgcolor}%
\LP@drawgrid{1}{1}{\LP@MS@columns}{\LP@MS@rows}{1cm}%
}%
@@ -1103,12 +1295,207 @@
\stepcounter{LP@puzzlecounter}%
\end{minipage}%
}%
-%
-% numberlink environment and options
-%
+\newcommand*\LP@NG@init@prefix{LP@NG}%
+\newcommand*\LP@NG@init@package{nonogram}%
+\LP@define@key{\LP@NG@init@prefix}{\LP@NG@init@package}{rows}{5}%
+\LP@define@key{\LP@NG@init@prefix}{\LP@NG@init@package}{columns}{5}%
+\LP@define@key{\LP@NG@init@prefix}{\LP@NG@init@package}{extracells}{5}%
+\LP@define@key{\LP@NG@init@prefix}{\LP@NG@init@package}{helplines}{5}%
+\LP@define@key{\LP@NG@init@prefix}{\LP@NG@init@package}{solution}{false}%
+\LP@define@key{\LP@NG@init@prefix}{\LP@NG@init@package}{scale}{1}%
+\LP@define@key{\LP@NG@init@prefix}{\LP@NG@init@package}{counterstyle}{none}%
+\LP@define@key{\LP@NG@init@prefix}{\LP@NG@init@package}{bgcolor}{}%
+\LP@define@key{\LP@NG@init@prefix}{\LP@NG@init@package}{color}{black}%
+\LP@define@key{\LP@NG@init@prefix}{\LP@NG@init@package}{width}{5.1cm}%
+\LP@define@key{\LP@NG@init@prefix}{\LP@NG@init@package}{cvoffset}{-23pt}%
+\LP@define@key{\LP@NG@init@prefix}{\LP@NG@init@package}{title}{}%
+\LP@define@key{\LP@NG@init@prefix}{\LP@NG@init@package}{titleindent}{0cm}%
+\LP@define@key{\LP@NG@init@prefix}{\LP@NG@init@package}{titlewidth}{5.1cm}%
+\LP@define@choicekey@fontsize{\LP@NG@init@prefix}{\LP@NG@init@package}{Large}%
+\newcommand*\nonogramrow[2]%
+{%
+ \foreach \LP@fe@column/\LP@fe@length in {#2}%
+ {%
+ \setcounter{LP@whiledo@i}{\LP@fe@length}%
+ \setcounter{LP@countiii}{\LP@fe@column}%
+ \whiledo{\value{LP@whiledo@i}>0}%
+ {%
+ \fillcell{\arabic{LP@countiii}}{#1}%
+ \addtocounter{LP@countiii}{1}%
+ \addtocounter{LP@whiledo@i}{-1}%
+ }%
+ };%
+}%
+\newcommand*\nonogramcolumn[2]%
+{%
+ \foreach \LP@fe@row/\LP@fe@length in {#2}%
+ {%
+ \setcounter{LP@whiledo@i}{\LP@fe@length}%
+ \setcounter{LP@countiii}{\LP@fe@row}%
+ \whiledo{\value{LP@whiledo@i}>0}%
+ {%
+ \fillcell{#1}{\arabic{LP@countiii}}%
+ \addtocounter{LP@countiii}{1}%
+ \addtocounter{LP@whiledo@i}{-1}%
+ }%
+ };%
+}%
+\newcommand*\nonogramV[1]%
+{%
+ \LP@set@LP@fontsize{\LP@env@prefix}%
+ \setcounter{LP@whiledo@i}{0}%
+ \foreach \LP@line in {#1}%
+ {%
+ \setcounter{LP@countiii}{0}%
+ \addtocounter{LP@whiledo@i}{1}%
+ \foreach \LP@element in \LP@line%
+ {%
+ \ifthenelse{\value{LP@countiii}=0}%
+ {%
+ {\LP@fontsize\node at (0.5,\arabic{LP@whiledo@i}.5){\LP@element};}%
+ }%
+ {%
+ \ifthenelse{\value{LP@countiii}=-1}%
+ {%
+ {\LP@fontsize\node at (-0.5,\arabic{LP@whiledo@i}.5){\LP@element};}%
+ }%
+ {%
+ \addtocounter{LP@countiii}{1}%
+ {\LP@fontsize\node at%
+ (\arabic{LP@countiii}.5,\arabic{LP@whiledo@i}.5){\LP@element};}%
+ \addtocounter{LP@countiii}{-1}%
+ }%
+ }%
+ \addtocounter{LP@countiii}{-1}%
+ }%
+ };%
+}%
+\newcommand*\nonogramH[1]%
+{%
+ \setcounter{LP@whiledo@i}{0}%
+ \foreach \LP@line in {#1}%
+ {%
+ \setcounter{LP@countiii}{\LP@rows}%
+ \addtocounter{LP@countiii}{1}%
+ \addtocounter{LP@whiledo@i}{1}%
+ \foreach \LP@element in \LP@line%
+ {%
+ {\LP@fontsize\node at%
+ (\arabic{LP@whiledo@i}.5,\arabic{LP@countiii}.5){\LP@element};}%
+ \addtocounter{LP@countiii}{1}%
+ }%
+ };%
+}%
+\newcommand*\LP@nonogramgrid%
+{%
+ \LP@set@LP@columns{\LP@env@prefix}%
+ \LP@set@LP@rows{\LP@env@prefix}%
+ \setcounter{LP@counti}{\LP@columns}% max column
+ \setcounter{LP@countii}{\LP@rows}% max row
+ \setcounter{LP@countiii}{\LP@NG@extracells}%
+ \stepcounter{LP@counti}%
+ \stepcounter{LP@countii}%
+ \addtocounter{LP@countiii}{-1}%
+ \setcounter{LP@whiledo@i}{1}%
+ \setcounter{LP@whiledo@ii}{\LP@NG@extracells}%
+ \addtocounter{LP@whiledo@ii}{\arabic{LP@countii}}%
+ \setcounter{LP@countiii}{\arabic{LP@countii}}%
+ \addtocounter{LP@countiii}{\LP@NG@extracells}%
+ \addtocounter{LP@counti}{1}%
+ \whiledo{\value{LP@whiledo@i}<\value{LP@counti}}%
+ {%
+ \draw[line width=\LP@normallines]%
+ (\arabic{LP@whiledo@i},1) --%
+ (\arabic{LP@whiledo@i},\arabic{LP@countiii});%
+ \addtocounter{LP@whiledo@i}{1}%
+ }%
+ \addtocounter{LP@counti}{-1}%
+ \setcounter{LP@whiledo@i}{1}%
+ \setcounter{LP@whiledo@ii}{-\LP@NG@extracells}%
+ \addtocounter{LP@whiledo@ii}{1}%
+ \addtocounter{LP@countii}{1}%
+ \whiledo{\value{LP@whiledo@i}<\value{LP@countii}}%
+ {%
+ \draw[line width=\LP@normallines]%
+ (\arabic{LP@whiledo@ii},\arabic{LP@whiledo@i}) --%
+ (\arabic{LP@counti},\arabic{LP@whiledo@i});%
+ \addtocounter{LP@whiledo@i}{1}%
+ }%
+ \addtocounter{LP@countii}{-1}%
+ \setcounter{LP@countiii}{\LP@NG@helplines}%
+ \ifthenelse{\arabic{LP@countiii}>0}%
+ {%
+ \setcounter{LP@whiledo@i}{1}%
+ \addtocounter{LP@whiledo@i}{\LP@NG@helplines}%
+ \setcounter{LP@whiledo@ii}{\LP@NG@extracells}%
+ \addtocounter{LP@whiledo@ii}{\arabic{LP@countii}}%
+ \setcounter{LP@countiii}{\arabic{LP@countii}}%
+ \addtocounter{LP@countiii}{\LP@NG@extracells}%
+ \whiledo{\value{LP@whiledo@i}<\value{LP@counti}}%
+ {%
+ \draw[line width=\LP@thicklines]%
+ (\arabic{LP@whiledo@i},1) --%
+ (\arabic{LP@whiledo@i},\arabic{LP@countiii});%
+ \addtocounter{LP@whiledo@i}{\LP@NG@helplines}%
+ }%
+ \draw[line width=\LP@thicklines] (1,1) -- (1,\arabic{LP@countiii});%
+ \draw[line width=\LP@thicklines]%
+ (\arabic{LP@counti},1) --%
+ (\arabic{LP@counti},\arabic{LP@countiii});%
+ \setcounter{LP@whiledo@i}{1}%
+ \addtocounter{LP@whiledo@i}{\LP@NG@helplines}%
+ \setcounter{LP@whiledo@ii}{-\LP@NG@extracells}%
+ \addtocounter{LP@whiledo@ii}{1}%
+ \whiledo{\value{LP@whiledo@i}<\value{LP@countii}}%
+ {%
+ \draw[line width=\LP@thicklines]%
+ (\arabic{LP@whiledo@ii},\arabic{LP@whiledo@i}) --%
+ (\arabic{LP@counti},\arabic{LP@whiledo@i});%
+ \addtocounter{LP@whiledo@i}{\LP@NG@helplines}%
+ }%
+ \draw[line width=\LP@thicklines]%
+ (\arabic{LP@whiledo@ii},1) -- (\arabic{LP@counti},1);%
+ \draw[line width=\LP@thicklines]%
+ (\arabic{LP@whiledo@ii},\arabic{LP@countii}) --%
+ (\arabic{LP@counti},\arabic{LP@countii});%
+ }%
+ {}%
+}%
+\newcommand*\nonogramsetup[1]%
+{%
+ \setkeys{nonogram.sty}{#1}%
+}%
+\newenvironment{nonogram}[1][]%
+{%
+ \setkeys{nonogram}{#1}%
+ \LP@set@package{nonogram}%
+ \LP@set@env@prefix{LP@NG}%
+ \setcounter{LP@rows}{\LP@NG@rows}%
+ \setcounter{LP@columns}{\LP@NG@columns}%
+ \stepcounter{LP@rows}%
+ \stepcounter{LP@columns}%
+ \begin{minipage}[t]{\LP@NG@width}%
+ \ifthenelse{\equal{\LP@NG@title}{}}%
+ {\par\enspace\par}% empty
+ {\enspace\par\noindent\hspace{\LP@NG@titleindent}\parbox{\LP@NG@titlewidth}{\strut\LP@titleformat\LP@NG@title}\vspace{3mm}\par}%
+ \begin{tikzpicture}[LPpreset,scale=\LP@NG@scale]%
+ \LP@drawbackground{1}{1}{\LP@NG@columns}{\LP@NG@rows}{\LP@NG@bgcolor}%
+ \LP@drawgrid{1}{1}{\LP@NG@columns}{\LP@NG@rows}{1cm}%
+ \framepuzzle%
+ \ifthenelse{\equal{\LP@NG@solution}{false}}%
+ {%
+ \LP@nonogramgrid%
+ }%
+ {}%
+}%
+{%
+ \end{tikzpicture}%
+ \LP@drawcounter{\LP@NG@counterstyle}%
+ \stepcounter{LP@puzzlecounter}%
+ \end{minipage}%
+}%
\newcommand*\LP@NL@init@prefix{LP@NL}%
\newcommand*\LP@NL@init@package{numberlink}%
-%
\LP@define@key{\LP@NL@init@prefix}{\LP@NL@init@package}{rows}{5}%
\LP@define@key{\LP@NL@init@prefix}{\LP@NL@init@package}{columns}{5}%
\LP@define@key{\LP@NL@init@prefix}{\LP@NL@init@package}{scale}{1}%
@@ -1121,18 +1508,22 @@
\LP@define@key{\LP@NL@init@prefix}{\LP@NL@init@package}{titleindent}{0cm}%
\LP@define@key{\LP@NL@init@prefix}{\LP@NL@init@package}{titlewidth}{5.1cm}%
\LP@define@choicekey@fontsize{\LP@NL@init@prefix}{\LP@NL@init@package}{Large}%
-%
\newcommand*\numberlinkcell[3]%
{%
\fourwindscell{#1}{#2}{#3}{}%
}%
-%
-%
\newcommand*\numberlinksetup[1]%
{%
\setkeys{numberlink.sty}{#1}%
}%
-%
+\newcommand*\link[2][]%
+{%
+ \LP@set@LP@color{\LP@env@prefix}%
+ \bgroup%
+ \def\LP@rel@tikzpath{.5}%
+ \LP@Line[color=\LP@color,#1]{#2}%
+ \egroup%
+}%
\newenvironment{numberlink}[1][]%
{%
\setkeys{numberlink}{#1}%
@@ -1146,7 +1537,7 @@
\ifthenelse{\equal{\LP@NL@title}{}}%
{\par\enspace\par}% empty
{\enspace\par\noindent\hspace{\LP@NL@titleindent}\parbox{\LP@NL@titlewidth}{\strut\LP@titleformat\LP@NL@title}\vspace{3mm}\par}%
- \begin{tikzpicture}[scale=\LP@NL@scale]%
+ \begin{tikzpicture}[LPpreset,scale=\LP@NL@scale]%
\LP@drawbackground{1}{1}{\LP@NL@columns}{\LP@NL@rows}{\LP@NL@bgcolor}%
\LP@drawgrid{1}{1}{\LP@NL@columns}{\LP@NL@rows}{1cm}%
}%
@@ -1156,12 +1547,8 @@
\stepcounter{LP@puzzlecounter}%
\end{minipage}%
}%
-%
-% resuko environment and options
-%
\newcommand*\LP@RSK@init@prefix{LP@RSK}%
\newcommand*\LP@RSK@init@package{resuko}%
-%
\LP@define@key{\LP@RSK@init@prefix}{\LP@RSK@init@package}{rows}{5}%
\LP@define@key{\LP@RSK@init@prefix}{\LP@RSK@init@package}{columns}{5}%
\LP@define@key{\LP@RSK@init@prefix}{\LP@RSK@init@package}{scale}{1}%
@@ -1174,14 +1561,203 @@
\LP@define@key{\LP@RSK@init@prefix}{\LP@RSK@init@package}{titleindent}{0cm}%
\LP@define@key{\LP@RSK@init@prefix}{\LP@RSK@init@package}{titlewidth}{5.1cm}%
\LP@define@choicekey@fontsize{\LP@RSK@init@prefix}{\LP@RSK@init@package}{Large}%
-%
\let\resukocell\setcell%
-%
\newcommand*\resukosetup[1]%
{%
\setkeys{resuko.sty}{#1}%
}%
-%
+\newcommand*\LP@trackC%
+{%
+ \LP@set@LP@scale{\LP@env@prefix}%
+ \begin{tikzpicture}[scale=\LP@scale]%
+ \pgfsetcornersarced{\pgfpoint{4mm*\LP@scale}{4mm*\LP@scale}}%
+ \draw[color=LP@c@track, line width=.3cm*\LP@scale]%
+ (0,.5)--(.5,.5)--(.5,0);%
+ \end{tikzpicture}%
+}%
+\newcommand*\LP@G@trackC[1][0]%
+{%
+ \LP@set@LP@scale{\LP@env@prefix}%
+ \begin{tikzpicture}[scale=\LP@scale,rotate=#1]%
+ \clip (0,0) rectangle (1,1);%
+ \pgfsetcornersarced{\pgfpoint{4mm*\LP@scale}{4mm*\LP@scale}}%
+ \draw[color=LP@c@track, line width=.3cm*\LP@scale]%
+ (0,.5)--(.5,.5)--(.5,0);%
+ \end{tikzpicture}%
+}%
+\let\CurveBL\LP@G@trackC%
+\newcommand*\CurveBR{\LP@G@trackC[90]}%
+\newcommand*\CurveTR{\LP@G@trackC[180]}%
+\newcommand*\CurveTL{\LP@G@trackC[270]}%
+\newcommand*\LP@trackS%
+{%
+ \LP@set@LP@scale{\LP@env@prefix}%
+ \begin{tikzpicture}[scale=\LP@scale]%
+ \draw[draw opacity=0] (.2,0) -- (.8,1);%
+ \draw[color=LP@c@track, line width=.3cm*\LP@scale]%
+ (.5,0)--(.5,1);%
+ \end{tikzpicture}%
+}%
+\newcommand*\LP@G@trackS[1][0]%
+{%
+ \LP@set@LP@scale{\LP@env@prefix}%
+ \begin{tikzpicture}[scale=\LP@scale,rotate=#1]%
+ \clip (0,0) rectangle (1,1);%
+ \draw[color=LP@c@track, line width=.3cm*\LP@scale]%
+ (.5,0)--(.5,1);%
+ \end{tikzpicture}%
+}%
+\newcommand*\StraightV{\LP@G@trackS}%
+\newcommand*\StraightH{\LP@G@trackS[90]}%
+\let\Straight\StraightV%
+\newcommand*\LP@trackCR%
+{%
+ \LP@set@LP@scale{\LP@env@prefix}%
+ \begin{tikzpicture}[scale=\LP@scale]%
+ \draw[color=LP@c@track, line width=.3cm*\LP@scale]%
+ (0,0.5)--(1,.5);%
+ \draw[color=LP@c@track, line width=.3cm*\LP@scale]%
+ (0.5,0)--(.5,.2);%
+ \draw[color=LP@c@track, line width=.3cm*\LP@scale]%
+ (0.5,1)--(.5,.8);%
+ \end{tikzpicture}%
+}%
+\newcommand*\LP@G@trackCR[1][0]%
+{%
+ \LP@set@LP@scale{\LP@env@prefix}%
+ \begin{tikzpicture}[scale=\LP@scale,rotate=#1]%
+ \clip (0,0) rectangle (1,1);%
+ \draw[color=LP@c@track, line width=.3cm*\LP@scale]%
+ (0,0.5)--(1,.5);%
+ \draw[color=LP@c@track, line width=.3cm*\LP@scale]%
+ (0.5,0)--(.5,.2);%
+ \draw[color=LP@c@track, line width=.3cm*\LP@scale]%
+ (0.5,1)--(.5,.8);%
+ \end{tikzpicture}%
+}%
+\newcommand*\CrossH{\LP@G@trackCR}%
+\newcommand*\CrossV{\LP@G@trackCR[90]}%
+\let\Cross\CrossH%
+\newcommand*\LP@graveltrap%
+{%
+ \LP@set@LP@scale{\LP@env@prefix}%
+ \begin{tikzpicture}[scale=\LP@scale]%
+ \clip (0,0) rectangle (1,1);%
+ \fill[color=LP@c@track] (.5,.5) circle (.1cm);%
+ \end{tikzpicture}%
+}%
+\let\Graveltrap\LP@graveltrap%
+\newcommand*\parkinglot[2]%
+{%
+ \LP@set@LP@scale{\LP@env@prefix}%
+ \LP@set@LP@color{\LP@env@prefix}%
+ \LP@set@LP@bgcolor{\LP@env@prefix}%
+ \LP@set@LP@fontsize{\LP@env@prefix}%
+ \ifthenelse{\equal{\LP@color}{}}%
+ {\gdef\LP@c@parkinglot{black}}%
+ {\gdef\LP@c@parkinglot{\LP@color}}%
+ \ifthenelse{\equal{\LP@bgcolor}{}}%
+ {\gdef\LP@c@bg@parkinglot{white}}%
+ {\gdef\LP@c@bg@parkinglot{\LP@bgcolor}}%
+ \setcounter{LP@counti}{#1}%
+ \setcounter{LP@countii}{#2}%
+ \stepcounter{LP@counti}%
+ \stepcounter{LP@countii}%
+ \draw[color=\LP@c@parkinglot,line width=\LP@normallines,%
+ fill=\LP@c@bg@parkinglot] (#1,#2) rectangle ++(2,2);%
+ \node[color=\LP@c@parkinglot,font=\sffamily\bfseries\LP@fontsize]%
+ at (\arabic{LP@counti},\arabic{LP@countii}){P};%
+}%
+\newcommand*\pitlane[3]%
+{%
+ \LP@set@LP@scale{\LP@env@prefix}%
+ \LP@set@LP@color{\LP@env@prefix}%
+ \ifthenelse{\equal{\LP@color}{}}%
+ {\gdef\LP@c@pitlane{black}}%
+ {\gdef\LP@c@pitlane{\LP@color}}%
+ \ifthenelse{\equal{#3}{V}}%
+ {\draw[color=black,line width=\LP@normallines,fill=\LP@c@pitlane]%
+ (#1,#2) rectangle ++(1,4);}%
+ {\draw[color=black,line width=\LP@normallines,fill=\LP@c@pitlane]%
+ (#1,#2) rectangle ++(4,1);}%
+}%
+\newcommand*\LP@trackline[3]%
+{%
+ \LP@set@LP@scale{\LP@env@prefix}%
+ \pgfmathsetlength{\LP@length}{.1cm*\LP@scale}%
+ \scalebox{\LP@tracks@scale}%
+ {%
+ \hspace{\LP@length}%
+ \setcounter{LP@whiledo@i}{#1}%
+ \whiledo{\arabic{LP@whiledo@i}>0}%
+ {%
+ \LP@trackS%
+ \addtocounter{LP@whiledo@i}{-1}%
+ }%
+ \setcounter{LP@whiledo@i}{#2}%
+ \whiledo{\arabic{LP@whiledo@i}>0}%
+ {%
+ \LP@trackC%
+ \addtocounter{LP@whiledo@i}{-1}%
+ }%
+ \hspace{\LP@length}%
+ \setcounter{LP@whiledo@i}{#3}%
+ \whiledo{\arabic{LP@whiledo@i}>0}%
+ {%
+ \LP@trackCR%
+ \addtocounter{LP@whiledo@i}{-1}%
+ }%
+ }%
+}%
+\newcommand*\trackV[1]%
+{%
+ \LP@set@LP@columns{\LP@env@prefix}%
+ \setcounter{LP@counti}{\LP@columns}%
+ \stepcounter{LP@counti}%
+ \setcounter{LP@countii}{1}%
+ \foreach \LP@c@straight/\LP@c@curve/\LP@c@cross in {#1}%
+ {%
+ \node[anchor=west] at (\arabic{LP@counti},\arabic{LP@countii}.5)%
+ {\LP@trackline{\LP@c@straight}{\LP@c@curve}{\LP@c@cross}};%
+ \stepcounter{LP@countii}%
+ };%
+}%
+\newcommand*\trackH[1]%
+{%
+ \setcounter{LP@counti}{1}%
+ \setcounter{LP@countii}{1}%
+ \foreach \LP@c@straight/\LP@c@curve/\LP@c@cross in {#1}%
+ {%
+ \node[anchor=west,rotate=-90]%
+ at (\arabic{LP@counti}.5,\arabic{LP@countii})%
+ {\LP@trackline{\LP@c@straight}{\LP@c@curve}{\LP@c@cross}};%
+ \stepcounter{LP@counti}%
+ };%
+}%
+\newcommand*\track[1]%
+{%
+ \LP@set@LP@scale{\LP@env@prefix}%
+ \LP@set@LP@bgcolor{\LP@env@prefix}%
+ \ifthenelse{\equal{\LP@bgcolor}{}}%
+ {\gdef\LP@c@bg@track{white}}%
+ {\gdef\LP@c@bg@track{\LP@bgcolor}}%
+ \bgroup%
+ \def\LP@rel@tikzpath{.5}%
+ \begin{pgfonlayer}{LPbackgroundtwo}%
+ \pgfsetcornersarced{\pgfpoint{4.9mm*\LP@scale}{4.9mm*\LP@scale}}%
+ \draw[decorate,decoration={show path construction,%
+ lineto code={%
+ \draw [\LP@c@bg@track,line width=0.15cm*\LP@scale,%
+ double=LP@c@track,double distance=.3cm*\LP@scale]%
+ (\tikzinputsegmentfirst) -- (\tikzinputsegmentlast);},%
+ curveto code={%
+ \draw [LP@c@track,line width=0.3cm*\LP@scale]%
+ (\tikzinputsegmentfirst) .. controls%
+ (\tikzinputsegmentsupporta) and (\tikzinputsegmentsupportb)%
+ ..(\tikzinputsegmentlast);}}] #1;%
+ \end{pgfonlayer}%
+ \egroup%
+}%
\newenvironment{resuko}[1][]%
{%
\setkeys{resuko}{#1}%
@@ -1195,7 +1771,7 @@
\ifthenelse{\equal{\LP@RSK@title}{}}%
{\par\enspace\par}% empty
{\enspace\par\noindent\hspace{\LP@RSK@titleindent}\parbox{\LP@RSK@titlewidth}{\strut\LP@titleformat\LP@RSK@title}\vspace{3mm}\par}%
- \begin{tikzpicture}[scale=\LP@RSK@scale]%
+ \begin{tikzpicture}[LPpreset,scale=\LP@RSK@scale]%
\LP@drawbackground{1}{1}{\LP@RSK@columns}{\LP@RSK@rows}{\LP@RSK@bgcolor}%
\LP@drawgrid{1}{1}{\LP@RSK@columns}{\LP@RSK@rows}{1cm}%
}%
@@ -1205,12 +1781,8 @@
\stepcounter{LP@puzzlecounter}%
\end{minipage}%
}%
-%
-% schatzsuche environment and options
-%
\newcommand*\LP@SS@init@prefix{LP@SS}%
\newcommand*\LP@SS@init@package{schatzsuche}%
-%
\LP@define@key{\LP@SS@init@prefix}{\LP@SS@init@package}{rows}{5}%
\LP@define@key{\LP@SS@init@prefix}{\LP@SS@init@package}{columns}{5}%
\LP@define@key{\LP@SS@init@prefix}{\LP@SS@init@package}{scale}{1}%
@@ -1222,14 +1794,25 @@
\LP@define@key{\LP@SS@init@prefix}{\LP@SS@init@package}{titleindent}{0cm}%
\LP@define@key{\LP@SS@init@prefix}{\LP@SS@init@package}{titlewidth}{5.1cm}%
\LP@define@choicekey@fontsize{\LP@SS@init@prefix}{\LP@SS@init@package}{Large}%
-%
\let\schatzsuchecell\setcell%
-%
\newcommand*\schatzsuchesetup[1]%
{%
\setkeys{schatzsuche.sty}{#1}%
}%
-%
+\newcommand*\LP@Diamond%
+{%
+ \begin{tikzpicture}[scale=\LP@scale*.9]%
+ \clip (.05,.905) rectangle (.95,.1);%
+ \draw[line width=\LP@normallines,fill=yellow!20]%
+ (.5,.1) -- (.7,.9) -- (.3,.9) -- cycle;%
+ \draw[line width=\LP@normallines,fill=orange!20]%
+ (.5,.1) -- (.7,.9) -- (.9,.8) -- cycle;%
+ \draw[line width=\LP@normallines,fill=orange!20]%
+ (.5,.1) -- (.3,.9) -- (.1,.8) -- cycle;%
+ \draw[line width=\LP@normallines] (.1,.8) -- (.9,.8);%
+\end{tikzpicture}%
+}%
+\let\Diamond\LP@Diamond%
\newenvironment{schatzsuche}[1][]%
{%
\setkeys{schatzsuche}{#1}%
@@ -1243,7 +1826,7 @@
\ifthenelse{\equal{\LP@SS@title}{}}%
{\par\enspace\par}% empty
{\enspace\par\noindent\hspace{\LP@SS@titleindent}\parbox{\LP@SS@titlewidth}{\strut\LP@titleformat\LP@SS@title}\vspace{3mm}\par}%
- \begin{tikzpicture}[scale=\LP@SS@scale]%
+ \begin{tikzpicture}[LPpreset,scale=\LP@SS@scale]%
\LP@drawbackground{1}{1}{\LP@SS@columns}{\LP@SS@rows}{\LP@SS@bgcolor}%
\LP@drawgrid{1}{1}{\LP@SS@columns}{\LP@SS@rows}{1cm}%
}%
@@ -1253,12 +1836,8 @@
\stepcounter{LP@puzzlecounter}%
\end{minipage}%
}%
-%
-% skyline environment and options
-%
\newcommand*\LP@SL@init@prefix{LP@SL}%
\newcommand*\LP@SL@init@package{skyline}%
-%
\LP@define@key{\LP@SL@init@prefix}{\LP@SL@init@package}{rows}{5}%
\LP@define@key{\LP@SL@init@prefix}{\LP@SL@init@package}{columns}{5}%
\LP@define@key{\LP@SL@init@prefix}{\LP@SL@init@package}{scale}{1}%
@@ -1270,9 +1849,7 @@
\LP@define@key{\LP@SL@init@prefix}{\LP@SL@init@package}{titleindent}{0.75cm}%
\LP@define@key{\LP@SL@init@prefix}{\LP@SL@init@package}{titlewidth}{5.85cm}%
\LP@define@choicekey@fontsize{\LP@SL@init@prefix}{\LP@SL@init@package}{Large}%
-%
\newcommand*\LP@SL@sudoku{false}%
-%
\define@choicekey*{skyline.sty}{sudoku}[\LP@SL@sudoku\nr]{true,false}[true]%
{%
\ifcase\nr\relax%
@@ -1283,7 +1860,6 @@
\renewcommand*\LP@SL@sudoku{false}%
\fi%
}%
-%
\define@choicekey*{skyline}{sudoku}[\LP@SL@sudoku\nr]{true,false}[true]%
{%
\ifcase\nr\relax%
@@ -1294,18 +1870,15 @@
\renewcommand*\LP@SL@sudoku{false}%
\fi%
}%
-%
\let\skylineB\LP@bottomrow%
\let\skylineT\LP@toprow%
\let\skylineL\LP@leftcolumn%
\let\skylineR\LP@rightcolumn%
\let\skylinecell\setcell%
-%
\newcommand*\skylinesetup[1]%
{%
\setkeys{skyline.sty}{#1}%
}%
-%
\newenvironment{skyline}[1][]%
{%
\setkeys{skyline}{#1}%
@@ -1319,7 +1892,7 @@
\ifthenelse{\equal{\LP@SL@title}{}}%
{\par\enspace\par}% empty
{\enspace\par\noindent\hspace{\LP@SL@titleindent}\parbox{\LP@SL@titlewidth}{\strut\LP@titleformat\LP@SL@title}\vspace{3mm}\par}%
- \begin{tikzpicture}[scale=\LP@SL@scale]%
+ \begin{tikzpicture}[LPpreset,scale=\LP@SL@scale]%
\LP@drawbackground{1}{1}{\LP@SL@columns}{\LP@SL@rows}{\LP@SL@bgcolor}%
\LP@drawgrid{1}{1}{\LP@SL@columns}{\LP@SL@rows}{1cm}%
\ifthenelse{\equal{\LP@SL@sudoku}{true}}%
@@ -1332,12 +1905,8 @@
\stepcounter{LP@puzzlecounter}%
\end{minipage}%
}%
-%
-% slitherlink environment and options
-%
\newcommand*\LP@SK@init@prefix{LP@SK}%
\newcommand*\LP@SK@init@package{slitherlink}%
-%
\LP@define@key{\LP@SK@init@prefix}{\LP@SK@init@package}{rows}{5}%
\LP@define@key{\LP@SK@init@prefix}{\LP@SK@init@package}{columns}{5}%
\LP@define@key{\LP@SK@init@prefix}{\LP@SK@init@package}{scale}{1}%
@@ -1349,14 +1918,22 @@
\LP@define@key{\LP@SK@init@prefix}{\LP@SK@init@package}{titleindent}{0cm}%
\LP@define@key{\LP@SK@init@prefix}{\LP@SK@init@package}{titlewidth}{5.2cm}%
\LP@define@choicekey@fontsize{\LP@SK@init@prefix}{\LP@SK@init@package}{Large}%
-%
\let\slitherlinkcell\setcell%
-%
\newcommand*\slitherlinksetup[1]%
{%
\setkeys{slitherlink.sty}{#1}%
}%
-%
+\newcommand*\LP@drawgriddots%
+{%
+ \pgfmathsetmacro{\START}{1}%
+ \pgfmathsetmacro{\ENDC}{\arabic{LP@counti}}%
+ \pgfmathsetmacro{\ENDR}{\arabic{LP@countii}}%
+ \begin{pgfonlayer}{LPforeground}%
+ \foreach \i in {\START,...,\ENDC}%
+ \foreach \j in {\START,...,\ENDR}%
+ \fill[color=LP@c@griddots] (\i,\j) circle [radius=3pt];%
+ \end{pgfonlayer}%
+}%
\newenvironment{slitherlink}[1][]%
{%
\setkeys{slitherlink}{#1}%
@@ -1372,7 +1949,7 @@
\ifthenelse{\equal{\LP@SK@title}{}}%
{\par\enspace\par}% empty
{\enspace\par\noindent\hspace{\LP@SK@titleindent}\parbox{\LP@SK@titlewidth}{\strut\LP@titleformat\LP@SK@title}\vspace{3mm}\par}%
- \begin{tikzpicture}[scale=\LP@SK@scale]%
+ \begin{tikzpicture}[LPpreset,scale=\LP@SK@scale]%
\LP@drawbackground{1}{1}{\LP@SK@columns}{\LP@SK@rows}{\LP@SK@bgcolor}%
\LP@drawgrid{1}{1}{\LP@SK@columns}{\LP@SK@rows}{1cm}%
\LP@drawgriddots%
@@ -1383,12 +1960,8 @@
\stepcounter{LP@puzzlecounter}%
\end{minipage}%
}%
-%
-% starbattle environment and options
-%
\newcommand*\LP@SB@init@prefix{LP@SB}%
\newcommand*\LP@SB@init@package{starbattle}%
-%
\LP@define@key{\LP@SB@init@prefix}{\LP@SB@init@package}{rows}{5}%
\LP@define@key{\LP@SB@init@prefix}{\LP@SB@init@package}{columns}{5}%
\LP@define@key{\LP@SB@init@prefix}{\LP@SB@init@package}{scale}{1}%
@@ -1400,14 +1973,11 @@
\LP@define@key{\LP@SB@init@prefix}{\LP@SB@init@package}{titleindent}{0cm}%
\LP@define@key{\LP@SB@init@prefix}{\LP@SB@init@package}{titlewidth}{5.1cm}%
\LP@define@choicekey@fontsize{\LP@SB@init@prefix}{\LP@SB@init@package}{Large}%
-%
\let\starbattlecell\setcell%
-%
\newcommand*\starbattlesetup[1]%
{%
\setkeys{starbattle.sty}{#1}%
}%
-%
\newenvironment{starbattle}[1][]%
{%
\setkeys{starbattle}{#1}%
@@ -1421,7 +1991,7 @@
\ifthenelse{\equal{\LP@SB@title}{}}%
{\par\enspace\par}% empty
{\enspace\par\noindent\hspace{\LP@SB@titleindent}\parbox{\LP@SB@titlewidth}{\strut\LP@titleformat\LP@SB@title}\vspace{3mm}\par}%
- \begin{tikzpicture}[scale=\LP@SB@scale]%
+ \begin{tikzpicture}[LPpreset,scale=\LP@SB@scale]%
\LP@drawbackground{1}{1}{\LP@SB@columns}{\LP@SB@rows}{\LP@SB@bgcolor}%
\LP@drawgrid{1}{1}{\LP@SB@columns}{\LP@SB@rows}{1cm}%
}%
@@ -1431,12 +2001,8 @@
\stepcounter{LP@puzzlecounter}%
\end{minipage}%
}%
-%
-% starsandarrows environment and options
-%
\newcommand*\LP@SAA@init@prefix{LP@SAA}%
\newcommand*\LP@SAA@init@package{starsandarrows}%
-%
\LP@define@key{\LP@SAA@init@prefix}{\LP@SAA@init@package}{rows}{5}%
\LP@define@key{\LP@SAA@init@prefix}{\LP@SAA@init@package}{columns}{5}%
\LP@define@key{\LP@SAA@init@prefix}{\LP@SAA@init@package}{scale}{1}%
@@ -1448,15 +2014,35 @@
\LP@define@key{\LP@SAA@init@prefix}{\LP@SAA@init@package}{titleindent}{0cm}%
\LP@define@key{\LP@SAA@init@prefix}{\LP@SAA@init@package}{titlewidth}{5.9cm}%
\LP@define@choicekey@fontsize{\LP@SAA@init@prefix}{\LP@SAA@init@package}{Large}%
-%
\let\starsH\LP@toprow%
\let\starsV\LP@leftcolumn%
-%
\newcommand*\starsandarrowssetup[1]%
{%
\setkeys{starsandarrows.sty}{#1}%
}%
-%
+\newcommand*\LP@Star%
+{%
+ \tikz\node[shape=star,fill=yellow,draw,scale=.8*\LP@scale,%
+ star point height=.25cm] {};%
+}%
+\let\Star\LP@Star%
+\newcommand*\LP@ArrowA[2][red]%
+{%
+ \LP@set@LP@scale{\LP@env@prefix}%
+ \pgfmathsetmacro{\LPlinewidth}{3pt*\LP@scale}%
+ \tikz\draw[->,line width=\LPlinewidth,rotate=#2,%
+ scale=\LP@scale,color=#1]%
+ (0.1,.5) -- (0.9,.5);%
+}%
+\newcommand*\LP@c@stararrow{red}%
+\newcommand*\Right{\LP@ArrowA[\LP@c@stararrow]{0}}%
+\newcommand*\RightUp{\LP@ArrowA[\LP@c@stararrow]{45}}%
+\newcommand*\Up{\LP@ArrowA[\LP@c@stararrow]{90}}%
+\newcommand*\LeftUp{\LP@ArrowA[\LP@c@stararrow]{135}}%
+\newcommand*\Left{\LP@ArrowA[\LP@c@stararrow]{180}}%
+\newcommand*\LeftDown{\LP@ArrowA[\LP@c@stararrow]{225}}%
+\newcommand*\Down{\LP@ArrowA[\LP@c@stararrow]{270}}%
+\newcommand*\RightDown{\LP@ArrowA[\LP@c@stararrow]{315}}%
\newenvironment{starsandarrows}[1][]%
{%
\setkeys{starsandarrows}{#1}%
@@ -1470,7 +2056,7 @@
\ifthenelse{\equal{\LP@SAA@title}{}}%
{\par\enspace\par}% empty
{\enspace\par\noindent\hspace{\LP@SAA@titleindent}\parbox{\LP@SAA@titlewidth}{\strut\LP@titleformat\LP@SAA@title}\vspace{3mm}\par}%
- \begin{tikzpicture}[scale=\LP@SAA@scale]%
+ \begin{tikzpicture}[LPpreset,scale=\LP@SAA@scale]%
\LP@drawbackground{1}{1}{\LP@SAA@columns}{\LP@SAA@rows}{\LP@SAA@bgcolor}%
\LP@drawgrid{1}{1}{\LP@SAA@columns}{\LP@SAA@rows}{1cm}%
}%
@@ -1480,12 +2066,8 @@
\stepcounter{LP@puzzlecounter}%
\end{minipage}%
}%
-%
-% sunandmoon environment and options
-%
\newcommand*\LP@SAM@init@prefix{LP@SAM}%
\newcommand*\LP@SAM@init@package{sunandmoon}%
-%
\LP@define@key{\LP@SAM@init@prefix}{\LP@SAM@init@package}{rows}{5}%
\LP@define@key{\LP@SAM@init@prefix}{\LP@SAM@init@package}{columns}{5}%
\LP@define@key{\LP@SAM@init@prefix}{\LP@SAM@init@package}{scale}{1}%
@@ -1497,14 +2079,89 @@
\LP@define@key{\LP@SAM@init@prefix}{\LP@SAM@init@package}{titleindent}{0cm}%
\LP@define@key{\LP@SAM@init@prefix}{\LP@SAM@init@package}{titlewidth}{5.1cm}%
\LP@define@choicekey@fontsize{\LP@SAM@init@prefix}{\LP@SAM@init@package}{Large}%
-%
\let\sunandmooncell\setcell%
-%
\newcommand*\sunandmoonsetup[1]%
{%
\setkeys{sunandmoon.sty}{#1}%
}%
-%
+\newcommand*\LP@DarkCloud{%
+ \tikz[scale=0.7*\LP@scale]\fill[color=black!60] (0,0)%
+ rectangle (1,1);%
+}%
+\newcommand*\LP@Moon{%
+ \tikz[scale=0.7*\LP@scale]\fill[color=black!60]%
+ (0,0) circle (0.5cm);%
+}%
+\newcommand*\LP@MoonR%
+{%
+ \begin{tikzpicture}[scale=0.7*\LP@scale]%
+ \fill[color=black!60] (0.5,0.5) circle (0.5cm);%
+ \fill[color=yellow] (.5,0) arc (270:450:.5);%
+ \end{tikzpicture}%
+}%
+\newcommand*\LP@MoonL%
+{%
+ \begin{tikzpicture}[scale=0.7*\LP@scale]%
+ \fill[color=black!60] (0.5,0.5) circle (0.5cm);%
+ \fill[color=yellow] (.5,0) arc (270:90:.5);%
+ \end{tikzpicture}%
+}%
+\newcommand*\LP@MoonT%
+{%
+ \begin{tikzpicture}[scale=0.7*\LP@scale]%
+ \fill[color=black!60] (0.5,0.5) circle (0.5cm);%
+ \fill[color=yellow] (0,0.5) arc (180:0:.5);%
+ \end{tikzpicture}%
+}%
+\newcommand*\LP@MoonB%
+{%
+ \begin{tikzpicture}[scale=0.7*\LP@scale]%
+ \fill[color=black!60] (0.5,0.5) circle (0.5cm);%
+ \fill[color=yellow] (0,0.5) arc (180:360:.5);%
+ \end{tikzpicture}%
+}%
+\newcommand*\LP@MoonTL%
+{%
+ \begin{tikzpicture}[scale=0.7*\LP@scale]%
+ \fill[color=yellow] (0.5,0.5) circle (0.5cm);%
+ \fill[color=black!60] (1,.5) -- (.5,.5) -- (.5,0)%
+ arc (270:360:.5);%
+ \end{tikzpicture}%
+}%
+\newcommand*\LP@MoonBL%
+{%
+ \begin{tikzpicture}[scale=0.7*\LP@scale]%
+ \fill[color=yellow] (0.5,0.5) circle (0.5cm);%
+ \fill[color=black!60] (1,.5) -- (.5,.5) -- (.5,1)%
+ arc (90:0:.5);%
+ \end{tikzpicture}%
+}%
+\newcommand*\LP@MoonBR%
+{%
+ \begin{tikzpicture}[scale=0.7*\LP@scale]%
+ \fill[color=yellow] (0.5,0.5) circle (0.5cm);%
+ \fill[color=black!60] (0,.5) -- (.5,.5) -- (.5,1)%
+ arc (90:180:.5);%
+ \end{tikzpicture}%
+}%
+\newcommand*\LP@MoonTR%
+{%
+ \begin{tikzpicture}[scale=0.7*\LP@scale]%
+ \fill[color=yellow] (0.5,0.5) circle (0.5cm);%
+ \fill[color=black!60] (0,.5) -- (.5,.5) -- (.5,0)%
+ arc (270:180:.5);%
+ \end{tikzpicture}%
+}%
+\let\Cloud\LP@DarkCloud%
+\let\Moon\LP@Moon%
+\let\MoonR\LP@MoonR%
+\let\MoonL\LP@MoonL%
+\let\MoonT\LP@MoonT%
+\let\MoonB\LP@MoonB%
+\let\MoonTL\LP@MoonTL%
+\let\MoonBL\LP@MoonBL%
+\let\MoonBR\LP@MoonBR%
+\let\MoonTR\LP@MoonTR%
\newenvironment{sunandmoon}[1][]%
{%
\setkeys{sunandmoon}{#1}%
@@ -1518,7 +2175,7 @@
\ifthenelse{\equal{\LP@SAM@title}{}}%
{\par\enspace\par}% empty
{\enspace\par\noindent\hspace{\LP@SAM@titleindent}\parbox{\LP@SAM@titlewidth}{\strut\LP@titleformat\LP@SAM@title}\vspace{3mm}\par}%
- \begin{tikzpicture}[scale=\LP@SAM@scale]%
+ \begin{tikzpicture}[LPpreset,scale=\LP@SAM@scale]%
\LP@drawbackground{1}{1}{\LP@SAM@columns}{\LP@SAM@rows}{\LP@SAM@bgcolor}%
\LP@drawgrid{1}{1}{\LP@SAM@columns}{\LP@SAM@rows}{1cm}%
}%
@@ -1528,12 +2185,8 @@
\stepcounter{LP@puzzlecounter}%
\end{minipage}%
}%
-%
-% tentsandtrees environment and options
-%
\newcommand*\LP@TAT@init@prefix{LP@TAT}%
\newcommand*\LP@TAT@init@package{tentsandtrees}%
-%
\LP@define@key{\LP@TAT@init@prefix}{\LP@TAT@init@package}{rows}{5}%
\LP@define@key{\LP@TAT@init@prefix}{\LP@TAT@init@package}{columns}{5}%
\LP@define@key{\LP@TAT@init@prefix}{\LP@TAT@init@package}{scale}{1}%
@@ -1545,15 +2198,45 @@
\LP@define@key{\LP@TAT@init@prefix}{\LP@TAT@init@package}{titleindent}{0cm}%
\LP@define@key{\LP@TAT@init@prefix}{\LP@TAT@init@package}{titlewidth}{5.9cm}%
\LP@define@choicekey@fontsize{\LP@TAT@init@prefix}{\LP@TAT@init@package}{Large}%
-%
\let\tentH\LP@toprow%
\let\tentV\LP@leftcolumn%
-%
\newcommand*\tentsandtreessetup[1]%
{%
\setkeys{tentsandtrees.sty}{#1}%
}%
-%
+\newcommand*\LP@Tree%
+{%
+ \begin{tikzpicture}[scale=.07*\LP@scale]%
+ \draw[fill=brown!95!black!95,line width=.1pt*\LP@scale]%
+ (.75,-1) .. controls (.5,.5) and (.5,3) .. (0.5,4) --%
+ (-0.5,4) .. controls (-.5,3) and (-.5,.5) .. (-.75,-1);%
+ \shade[top color=green!50!black!60,draw=black,%
+ line width=.1pt*\LP@scale,bottom color=green!50!black]%
+ (0,10) .. controls (0,8) and (1,7) .. (1.5,7)%
+ .. controls (1,7) and (1,7) .. (0.5,7.25)%
+ .. controls (1.5,5) and (2.5,4) .. (3,4)%
+ .. controls (2,4) and (1.25,4) .. (1,4.5)%
+ .. controls (2,2) and (3.5,2) .. (4,2)%
+ .. controls (1,1) and (-1,1) .. (-4,2)%
+ .. controls (-3.5,2) and (-2,2) .. (-1,4.5)%
+ .. controls (-1.25,4) and (-2,4) .. (-3,4)%
+ .. controls (-2.5,4) and (-1.5,5) .. (-0.5,7.25)%
+ .. controls (-1,7) and (-1,7) .. (-1.5,7)%
+ .. controls (-1,7) and (0,8) .. (0,10);%
+ \end{tikzpicture}%
+}%
+\let\Tree\LP@Tree%
+\newcommand*\LP@Tent%
+{%
+ \begin{tikzpicture}[scale=\LP@scale]%
+ \draw[fill=yellow!50,line width=.1pt*\LP@scale]%
+ (.1,.1) -- (.6,.1) -- (.9,.5) -- (.75,.8) -- (.35,.6)%
+ -- cycle;%
+ \draw[line width=.1pt*\LP@scale] (.35,.6) -- (.35,.1);%
+ \draw[line width=.1pt*\LP@scale] (.35,.6) -- (.6,.1);%
+ \end{tikzpicture}%
+}%
+\let\Tent\LP@Tent%
\newenvironment{tentsandtrees}[1][]%
{%
\setkeys{tentsandtrees}{#1}%
@@ -1567,7 +2250,7 @@
\ifthenelse{\equal{\LP@TAT@title}{}}%
{\par\enspace\par}% empty
{\enspace\par\noindent\hspace{\LP@TAT@titleindent}\parbox{\LP@TAT@titlewidth}{\strut\LP@titleformat\LP@TAT@title}\vspace{3mm}\par}%
- \begin{tikzpicture}[scale=\LP@TAT@scale]%
+ \begin{tikzpicture}[LPpreset,scale=\LP@TAT@scale]%
\LP@drawbackground{1}{1}{\LP@TAT@columns}{\LP@TAT@rows}{\LP@TAT@bgcolor}%
\LP@drawgrid{1}{1}{\LP@TAT@columns}{\LP@TAT@rows}{1cm}%
}%
@@ -1577,12 +2260,8 @@
\stepcounter{LP@puzzlecounter}%
\end{minipage}%
}%
-%
-% tunnel environment and options
-%
\newcommand*\LP@TN@init@prefix{LP@TN}%
\newcommand*\LP@TN@init@package{tunnel}%
-%
\LP@define@key{\LP@TN@init@prefix}{\LP@TN@init@package}{rows}{5}%
\LP@define@key{\LP@TN@init@prefix}{\LP@TN@init@package}{columns}{5}%
\LP@define@key{\LP@TN@init@prefix}{\LP@TN@init@package}{scale}{1}%
@@ -1594,15 +2273,49 @@
\LP@define@key{\LP@TN@init@prefix}{\LP@TN@init@package}{titleindent}{0cm}%
\LP@define@key{\LP@TN@init@prefix}{\LP@TN@init@package}{titlewidth}{5.9cm}%
\LP@define@choicekey@fontsize{\LP@TN@init@prefix}{\LP@TN@init@package}{Large}%
-%
\let\tunnelH\LP@toprow%
\let\tunnelV\LP@leftcolumn%
-%
\newcommand*\tunnelsetup[1]%
{%
\setkeys{tunnel.sty}{#1}%
}%
-%
+\newcommand*\LP@Portal%
+{%
+ \LP@set@LP@scale{\LP@env@prefix}%
+ \begin{tikzpicture}[scale=\LP@scale]%
+ \fill[color=black]%
+ (0,0) -- (0,1) -- (.4,.5) -- (.4,0) -- cycle;%
+ \fill[color=LP@c@tunnel@ii]%
+ (0,1) -- (1,1) -- (1,.5) -- (.4,.5) -- cycle;%
+ \fill[color=LP@c@tunnel@i]%
+ (.4,0) rectangle (1,.5);%
+ \draw[line width=\LP@normallines] (0,0) rectangle (1,1) ;%
+ \end{tikzpicture}%
+}%
+\newcommand*\portal[2]%
+{%
+ \begin{puzzlebackground}%
+ \LP@G@setcellcontent[hcenter,vcenter]{#1}{#2}{\LP@Portal}%
+ \end{puzzlebackground}%
+}%
+\newcommand*\tube[1]%
+{%
+ \LP@set@LP@scale{\LP@env@prefix}%
+ \bgroup%
+ \def\LP@rel@tikzpath{.5}%
+ \begin{pgfonlayer}{LPbackgroundtwo}%
+ \pgfsetcornersarced{\pgfpoint{3mm}{3mm}}%
+ \draw[color=LP@c@tunnel!80!black, line width=.4cm*\LP@scale]%
+ #1;%
+ \draw[color=LP@c@tunnel, line width=.38cm*\LP@scale] #1;%
+ \draw[color=LP@c@tunnel!85, line width=.35cm*\LP@scale] #1;%
+ \draw[color=LP@c@tunnel!70, line width=.32cm*\LP@scale] #1;%
+ \draw[color=LP@c@tunnel!55, line width=.29cm*\LP@scale] #1;%
+ \draw[color=LP@c@tunnel!45, line width=.25cm*\LP@scale] #1;%
+ \draw[color=LP@c@tunnel!35, line width=.2cm*\LP@scale] #1;%
+ \end{pgfonlayer}%
+ \egroup%
+}%
\newenvironment{tunnel}[1][]%
{%
\setkeys{tunnel}{#1}%
@@ -1616,7 +2329,7 @@
\ifthenelse{\equal{\LP@TN@title}{}}%
{\par\enspace\par}% empty
{\enspace\par\noindent\hspace{\LP@TN@titleindent}\parbox{\LP@TN@titlewidth}{\strut\LP@titleformat\LP@TN@title}\vspace{3mm}\par}%
- \begin{tikzpicture}[scale=\LP@TN@scale]%
+ \begin{tikzpicture}[LPpreset,scale=\LP@TN@scale]%
\LP@drawbackground{1}{1}{\LP@TN@columns}{\LP@TN@rows}{\LP@TN@bgcolor}%
\LP@drawgrid{1}{1}{\LP@TN@columns}{\LP@TN@rows}{1cm}%
}%
@@ -1626,5 +2339,6 @@
\stepcounter{LP@puzzlecounter}%
\end{minipage}%
}%
-%
-\endinput% \ No newline at end of file
+\endinput
+%%
+%% End of file `lpenv.sty'.