diff options
author | Karl Berry <karl@freefriends.org> | 2007-09-21 22:30:13 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2007-09-21 22:30:13 +0000 |
commit | cb523ca4f4715c0ee6f2db3d67ad4a1542ea98c0 (patch) | |
tree | acc9fbf100ac777db99e5defbc528165bb63db34 /Master/texmf-dist | |
parent | c5c5c60739865ca9075df66d33c5a4cdf183d6d0 (diff) |
new package hexgame (20sep07)
git-svn-id: svn://tug.org/texlive/trunk@4994 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist')
-rw-r--r-- | Master/texmf-dist/doc/latex/hexgame/README | 5 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/hexgame/hexgame.pdf | bin | 0 -> 33071 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/hexgame/hexgame.tex | 98 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/hexgame/hexgame.sty | 97 |
4 files changed, 200 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/latex/hexgame/README b/Master/texmf-dist/doc/latex/hexgame/README new file mode 100644 index 00000000000..22fa8163f2e --- /dev/null +++ b/Master/texmf-dist/doc/latex/hexgame/README @@ -0,0 +1,5 @@ +Hex is a mathematical game invented by the Danish mathematician Piet Hein +and independently by the mathematician John Nash. This package defines a new +environment that enables the user to draw such a game in a trivial way. + +This package is under the LaTeX Project Public License version 1.2 or later.
\ No newline at end of file diff --git a/Master/texmf-dist/doc/latex/hexgame/hexgame.pdf b/Master/texmf-dist/doc/latex/hexgame/hexgame.pdf Binary files differnew file mode 100644 index 00000000000..b471541a375 --- /dev/null +++ b/Master/texmf-dist/doc/latex/hexgame/hexgame.pdf diff --git a/Master/texmf-dist/doc/latex/hexgame/hexgame.tex b/Master/texmf-dist/doc/latex/hexgame/hexgame.tex new file mode 100644 index 00000000000..3e2088abf9d --- /dev/null +++ b/Master/texmf-dist/doc/latex/hexgame/hexgame.tex @@ -0,0 +1,98 @@ +\documentclass{article} +% +% Use the following packages ------------ +\usepackage{hexgame} +% Paper definitions --------------------- +\setlength\paperheight {297mm}% +\setlength\paperwidth {210mm}% +\setlength\textwidth {165mm}% +\setlength\evensidemargin {-4mm}% +\setlength\oddsidemargin {-4mm}% +\setlength\topmargin {-12mm}% +\setlength\headheight {6mm}% +\setlength\headsep {4mm}% +\setlength\textheight {254mm} +\setlength\parindent {0mm} +\setlength\parskip {\baselineskip} +\setlength\unitlength {1mm} +\pagestyle{empty} +\begin{document} +\begin{center} + \textbf{\Huge hexgame.sty} + + Meron Brouwer \\ + (meron.brouwer@gmail.com)\\ + \today +\end{center} + +\section{Introduction} +Hex is a mathematical game invented by the Danish mathematician Piet Hein and independently by the mathematician John Nash. This package defines a new +environment that enables the user to draw such a game in a trivial way. + +\section{Usage} +The package defines a new environment and two new commands. The environment is used to draw the board, the commands are used to color the hexagons or label them. + + \begin{minipage}{80mm} + \verb+\begin{hexgame}{5}+ \\ + \verb+ \colorhex{2}{playerone}+ \\ + \verb+ \colorhex{4}{playertwo}+ \\ + \verb+ \colorhex{6}{playertwo}+ \\ + \verb+ \colorhex{25}{playerone}+ \\ + \verb+ \labelhex{23}{37}+\\ + \verb+\end{hexgame}+ + \end{minipage} + \begin{minipage}{85mm} + \begin{hexgame}{5} + \colorhex{2}{playerone} + \colorhex{4}{playertwo} + \colorhex{6}{playertwo} + \colorhex{25}{playerone} + \labelhex{23}{37} + \end{hexgame} + \end{minipage} + +The hexagons are numbered from $1$ to $n^2$, starting at the bottom one. The argument after \verb+\begin{hexgame}+ gives $n$. When coloring a hexagon, the first argument gives which hexagon needs to be colored, the second argument defines the player that colored the hexagon. When labeling, the second argument will be printed in the hexagon. + +\section{Variables to set} +Although everything is already defined the following variables can be reset by the user + +\begin{itemize} + \item \verb+ \setlength\hexgameboxwidth{0.45\textwidth}+ \\ + This length gives the width the hexgame. All games are scaled to this width. + \item \verb+ \definecolor{playerone}{rgb}{0,0, .8}+ \\ + playerone is a color, in this case set to blue. Use the same if you would like + this player to be a different color. See the pstricks manual for more information. + \item \verb+ \definecolor{playertwo}{rgb}{0.8,0,0}+ \\ + Same as playerone. +\end{itemize} + +\begin{center} +\begin{hexgame}{3} + \colorhex{2}{playerone} + \colorhex{4}{playerone} + \colorhex{6}{playertwo} + \colorhex{9}{playertwo} + \labelhex{8}{6} + \labelhex{9}{7} +\end{hexgame} +\begin{hexgame}{16} + \colorhex{2}{playerone} + \colorhex{4}{playerone} + \colorhex{6}{playerone} + \colorhex{3}{playertwo} + \colorhex{12}{playertwo} + \colorhex{11}{playertwo} + \colorhex{23}{playertwo} + \colorhex{41}{playertwo} + \colorhex{19}{playertwo} + \colorhex{51}{playertwo} + \labelhex{51}{4} +\end{hexgame} +\end{center} +\end{document} + + + + + + diff --git a/Master/texmf-dist/tex/latex/hexgame/hexgame.sty b/Master/texmf-dist/tex/latex/hexgame/hexgame.sty new file mode 100644 index 00000000000..97a7d71e5d4 --- /dev/null +++ b/Master/texmf-dist/tex/latex/hexgame/hexgame.sty @@ -0,0 +1,97 @@ +%% +%% This is file `hexgame.sty', +%% +%% -------------------------------------------------------------------------- +%% +%% This file may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.2 +%% 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.2 or later is part of all distributions of LaTeX +%% version 1999/12/01 or later. +%% +%% File: hexgame.sty Copyright (C) 2006 Meron Brouwer (meron.brouwer@gmail.com) +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{hexgame} + [2006/08/01 v1.0 `hexgame' package] +\RequirePackage{pstcol} +\RequirePackage{pst-poly} +\RequirePackage{calc} +\RequirePackage{ifthen} +\newlength\halfhexheight +\setlength\halfhexheight{0.866025404cm} +\newlength\halfhexwidth +\setlength\halfhexwidth{1cm} +\newlength\hexgameboxwidth +\setlength\hexgameboxwidth{0.45\textwidth} +\newlength\hexgameheight +\newlength\halfhexgameheight +\newlength\hexgamewidth +\newlength\halfhexgamewidth +\newlength\startpointx +\newlength\startpointy +\newsavebox\hexgamebox +\definecolor{playerone}{rgb}{0,0, .8} +\definecolor{playertwo}{rgb}{0.8,0,0} +\newcounter{hexboardsize} +\newenvironment{hexgame}[1] + {\psset{unit=1cm,PstPicture=false} + \setcounter{hexboardsize}{#1} + \setlength\hexgamewidth{(#1\halfhexwidth*2)+(#1\halfhexwidth)+(\halfhexwidth)} + \setlength\hexgameheight{(#1\halfhexheight*2)+(\halfhexheight)} + \setlength\halfhexgameheight{0.5\hexgameheight} + \setlength\halfhexgamewidth{0.5\hexgamewidth} + \setlength\startpointx{0.5\hexgamewidth} + \setlength\startpointy{1.5\halfhexheight} + \begin{lrbox}{\hexgamebox} + \begin{pspicture}(\the\hexgamewidth,\the\hexgameheight)% + \psframe[fillstyle=solid,fillcolor=playerone,linewidth=0.8pt](0,0)(\the\halfhexgamewidth,\the\halfhexgameheight) + \psframe[fillstyle=solid,fillcolor=playerone,linewidth=0.8pt](\the\halfhexgamewidth,\the\halfhexgameheight)(\the\hexgamewidth,\the\hexgameheight) + \psframe[fillstyle=solid,fillcolor=playertwo,linewidth=0.8pt](0,\the\hexgameheight)(\the\halfhexgamewidth,\the\halfhexgameheight) + \psframe[fillstyle=solid,fillcolor=playertwo,linewidth=0.8pt](\the\halfhexgamewidth,\the\halfhexgameheight)(\the\hexgamewidth,0) + \psdiamond(\the\halfhexgamewidth,\the\halfhexgameheight)(\the\halfhexgamewidth,\the\halfhexgameheight) + \multirput(\the\startpointx,\the\startpointy)(1.5cm,\halfhexheight){#1}{ + \multirput(0,0)(-1.5cm,\halfhexheight){#1}{\PstHexagon[linewidth=0.5pt,unit=1cm,fillstyle=solid,fillcolor=white]}}} + {\end{pspicture} + \end{lrbox} + \psscaleboxto(\the\hexgameboxwidth,0){\usebox{\hexgamebox}}} +\newlength\refpointx +\newlength\refpointy +\newlength\nexthexx +\newlength\nexthexy +\newcounter{stepcounter} +\newcounter{modulocounter} +\newcounter{squaredboardsize} +\newcommand\colorhex[2]{\setcounter{stepcounter}{\value{hexboardsize}} + \setcounter{modulocounter}{#1} + \setcounter{squaredboardsize}{\value{hexboardsize}*\value{hexboardsize}} + \ifthenelse{#1>\value{squaredboardsize}}{\PackageWarning{hexgame}{Number to big}}{ + \setlength\refpointx{\startpointx} + \addtolength{\refpointx}{0.5mm} + \setlength\refpointy{\startpointy} + \whiledo{\value{stepcounter}<#1}{\addtocounter{stepcounter}{\value{hexboardsize}} + \addtolength{\refpointx}{-1.5\halfhexwidth} + \addtolength{\refpointy}{\halfhexheight} + \addtocounter{modulocounter}{-\value{hexboardsize}}} + \setlength\nexthexx{(\refpointx)+1.5\halfhexwidth*((\value{modulocounter})-1)} + \setlength\nexthexy{(\refpointy)+\halfhexheight*((\value{modulocounter})-1)} + \rput(\the\nexthexx,\the\nexthexy){\PstHexagon[linewidth=0.5pt,unit=1cm,fillstyle=solid,fillcolor=#2]}}} +\newcommand\labelhex[2]{\setcounter{stepcounter}{\value{hexboardsize}} + \setcounter{modulocounter}{#1} + \setcounter{squaredboardsize}{\value{hexboardsize}*\value{hexboardsize}} + \ifthenelse{#1>\value{squaredboardsize}}{\PackageWarning{hexgame}{Number to big}}{ + \setlength\refpointx{\startpointx} + \addtolength{\refpointx}{0.5mm} + \setlength\refpointy{\startpointy} + \whiledo{\value{stepcounter}<#1}{\addtocounter{stepcounter}{\value{hexboardsize}} + \addtolength{\refpointx}{-1.5\halfhexwidth} + \addtolength{\refpointy}{\halfhexheight} + \addtocounter{modulocounter}{-\value{hexboardsize}}} + \setlength\nexthexx{(\refpointx)+1.5\halfhexwidth*((\value{modulocounter})-1)} + \setlength\nexthexy{(\refpointy)+\halfhexheight*((\value{modulocounter})-1)} + \rput(\the\nexthexx,\the\nexthexy){\textbf{\large #2}}}} +%% +%% End of file `hexgame.sty'. + + |