jansteen@cwi.nl (Jan van der Steen) (11/01/90)
The following PostScriptfile contains the definitions of
a Western style shogi (Japanese chess) set.
Print it twice for a complete shogi set.
Jan van der Steen
-=-=-=-=-=-=-=-=-=-=-=-=-= cut, cut, cut... =-=-=-=-=-=-=-=-=-=-=-=-=-
%!
%%Title: Shogi Game Pieces Toolkit (Western style)
%%Creator: Jan van der Steen
%%Date: Thu Nov 1 10:49:24 MET 1990
%%Documentfonts: Times-Roman
%%Pages: 1
%%StartPrologue
/tombstone {
%
% The piece border
%
.5 setlinewidth
newpath
0 0 moveto
30 0 rlineto
-5 25 rlineto
-10 5 rlineto
-10 -5 rlineto
closepath
stroke
.2 setlinewidth
} def
/normal {
/Times-Roman findfont 8 scalefont setfont
15 19.5 moveto dup stringwidth pop 2 div neg 0 rmoveto show
} def
/promoted {
15 22 5 0 360 arc stroke
/Times-Roman findfont 8 scalefont setfont
15 19.5 moveto dup stringwidth pop 2 div neg 0 rmoveto show
} def
/arrow {
newpath
0 0 moveto
0 6 rlineto
-1 -2 rlineto
2 0 rlineto
-1 2 rlineto
gsave
fill
grestore
stroke
} def
%
% King, Gold, Silver, Pawn, (Horse) and (Dragon) movements
%
/up { gsave 15 10 translate 0 0 moveto 0 5 lineto stroke grestore } def
/dn { gsave 15 10 translate 0 0 moveto 0 -5 lineto stroke grestore } def
/lt { gsave 15 10 translate 0 0 moveto -5 0 lineto stroke grestore } def
/rt { gsave 15 10 translate 0 0 moveto 5 0 lineto stroke grestore } def
/ul { gsave 15 10 translate 0 0 moveto -5 5 lineto stroke grestore } def
/ur { gsave 15 10 translate 0 0 moveto 5 5 lineto stroke grestore } def
/ll { gsave 15 10 translate 0 0 moveto -5 -5 lineto stroke grestore } def
/lr { gsave 15 10 translate 0 0 moveto 5 -5 lineto stroke grestore } def
%
% Night movements
%
/nl {
newpath
15 10 moveto
0 3.75 rlineto
-3.75 3.75 rlineto
stroke
} def
/nr {
newpath
15 10 moveto
0 3.75 rlineto
3.75 3.75 rlineto
stroke
} def
%
% Rook, (Dragon) and Lance movements
%
/aup { gsave 15 10 translate 0 rotate arrow grestore } def
/adn { gsave 15 10 translate 180 rotate arrow grestore } def
/alt { gsave 15 10 translate 270 rotate arrow grestore } def
/art { gsave 15 10 translate 90 rotate arrow grestore } def
%
% Bishop and (Horse) movements
%
/aul { gsave 15 10 translate 45 rotate arrow grestore } def
/aur { gsave 15 10 translate -45 rotate arrow grestore } def
/all { gsave 15 10 translate 135 rotate arrow grestore } def
/alr { gsave 15 10 translate -135 rotate arrow grestore } def
/king {
gsave
kingsize dup scale
tombstone
(K) normal
up dn lt rt ul ur ll lr
grestore
gsave
140 0 translate
kingsize dup scale
tombstone
grestore
} def
/rook {
gsave
rooksize dup scale
tombstone
(R) normal
aup adn alt art
grestore
gsave
140 0 translate
rooksize dup scale
tombstone
(R) promoted
aup adn alt art ul ur ll lr
grestore
} def
/bishop {
gsave
bishopsize dup scale
tombstone
(B) normal
aul aur all alr
grestore
gsave
140 0 translate
bishopsize dup scale
tombstone
(B) promoted
aul aur all alr up dn lt rt
grestore
} def
/gold {
gsave
goldsize dup scale
tombstone
(G) normal
ul up ur lt rt dn
grestore
gsave
140 0 translate
goldsize dup scale
tombstone
grestore
} def
/silver {
gsave
silversize dup scale
tombstone
(S) normal
ul up ur ll lr
grestore
gsave
140 0 translate
silversize dup scale
tombstone
(S) promoted
ul up ur lt rt dn
grestore
} def
/knight {
gsave
knightsize dup scale
tombstone
(N) normal
0 -5 translate
nl nr
grestore
gsave
140 0 translate
knightsize dup scale
tombstone
(N) promoted
ul up ur lt rt dn
grestore
} def
/lance {
gsave
lancesize dup scale
tombstone
(L) normal
0 -5 translate
aup
grestore
gsave
140 0 translate
lancesize dup scale
tombstone
(L) promoted
ul up ur lt rt dn
grestore
} def
/pawn {
gsave
pawnsize dup scale
tombstone
(P) normal
0 -5 translate
up
grestore
gsave
140 0 translate
pawnsize dup scale
tombstone
(P) promoted
ul up ur lt rt dn
grestore
} def
%%EndPrologue
%
% Sizes of the pieces
%
/kingsize 1.0 def
/rooksize 0.95 def
/bishopsize 0.95 def
/goldsize 0.9 def
/silversize 0.9 def
/knightsize 0.8 def
/lancesize 0.8 def
/pawnsize 0.75 def
%
% Print the pieces
%
72 25.4 div dup scale % change to mm axes
0 280 translate -90 rotate % landscape mode
% first row
gsave 0 20 add 150 translate bishop grestore
gsave 35 20 add 150 translate king grestore
gsave 70 20 add 150 translate rook grestore
% second row
gsave 28 0 mul 15 add 120 translate pawn grestore
gsave 28 1 mul 15 add 120 translate pawn grestore
gsave 28 2 mul 15 add 120 translate pawn grestore
gsave 28 3 mul 15 add 120 translate pawn grestore
% third row
gsave 30 0 mul 10 add 90 translate knight grestore
gsave 30 1 mul 10 add 90 translate knight grestore
gsave 30 2 mul 10 add 90 translate lance grestore
gsave 30 3 mul 10 add 90 translate lance grestore
% fourth row
gsave 32 0 mul 5 add 60 translate gold grestore
gsave 32 1 mul 5 add 60 translate gold grestore
gsave 32 2 mul 5 add 60 translate silver grestore
gsave 32 3 mul 5 add 60 translate silver grestore
% fifth row
gsave 28 0 mul 0 add 30 translate pawn grestore
gsave 28 1 mul 0 add 30 translate pawn grestore
gsave 28 2 mul 0 add 30 translate pawn grestore
gsave 28 3 mul 0 add 30 translate pawn grestore
gsave 28 4 mul 0 add 30 translate pawn grestore
showpage
--
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Jan van der Steen jansteen@cwi.nl
Centre for Mathematics and Computer Science (CWI)
Kruislaan 413, 1098 SJ Amsterdam, The Netherlands