From cb523ca4f4715c0ee6f2db3d67ad4a1542ea98c0 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Fri, 21 Sep 2007 22:30:13 +0000 Subject: new package hexgame (20sep07) git-svn-id: svn://tug.org/texlive/trunk@4994 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/tex/latex/hexgame/hexgame.sty | 97 +++++++++++++++++++++++++ 1 file changed, 97 insertions(+) create mode 100644 Master/texmf-dist/tex/latex/hexgame/hexgame.sty (limited to 'Master/texmf-dist/tex/latex/hexgame') 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'. + + -- cgit v1.2.3