Usage
edit{{Chess diagram|style=Hiashatar
| tright
| Header
|rd|nd|bd|hd|kd|qd|hd|bd|nd|rd
| | | | | | | | | |
|pd|pd|pd|pd|pd|pd|pd|pd|pd|pd
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
|pl|pl|pl|pl|pl|pl|pl|pl|pl|pl
| | | | | | | | | |
|rl|nl|bl|hl|kl|ql|hl|bl|nl|rl
|Caption
|size=35}}
local p = {}
function p.dims()
return 10, 10
end
function p.letters()
return {'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J'}
end
function p.image_board(size)
return string.format( '[[File:HiaShatar.svg|%dx%dpx|link=]]', 10 * size, 10 * size )
end
function p.image_square( pc, row, col, size )
local colornames = {
l = { m = 'white', f = 'white' },
d = { m = 'black', f = 'black' }
}
local piecenames = {
k = { name = 'king', gender = 'm' },
h = { name = 'hia', gender = 'm' },
q = { name = 'queen', gender = 'f' },
b = { name = 'bishop', gender = 'm' },
n = { name = 'knight', gender = 'm' },
r = { name = 'rook', gender = 'f' },
p = { name = 'pawn', gender = 'f' }
}
local symnames = {
xx = 'black cross',
ox = 'white cross',
xo = 'black circle',
oo = 'white circle',
ul = 'arrow up-left',
ua = 'arrow up',
ur = 'arrow up-right',
la = 'arrow left',
ra = 'arrow right',
dl = 'arrow down-left',
da = 'arrow down',
dr = 'arrow down-right',
lr = 'arrow left-right',
ud = 'arrow up-down',
x0 = 'zero',
x1 = 'one',
x2 = 'two',
x3 = 'three',
x4 = 'four',
x5 = 'five',
x6 = 'six',
x7 = 'seven',
x8 = 'eight',
x9 = 'nine',
}
local colchar = {'A','B','C','D','E','F','G','H','I','J'}
local color = mw.ustring.gsub( pc, '^.*(%w)(%w).*$', '%2' ) or ''
local piece = mw.ustring.gsub( pc, '^.*(%w)(%w).*$', '%1' ) or ''
local alt = colchar[col] .. row .. ' '
if colornames[color] and piecenames[piece] then
alt = alt .. colornames[color][piecenames[piece]['gender']] .. ' ' .. piecenames[piece]['name']
else
alt = alt .. ( symnames[piece .. color] or piece .. ' ' .. color )
end
fn = ''
if pc == 'kl' then
fn = 'Chess klt45'
elseif pc == 'kd' then
fn = 'Chess kdt45'
elseif pc == 'hl' then
fn = 'Hia white'
elseif pc == 'hd' then
fn = 'Hia black'
elseif pc == 'ql' then
fn = 'Chess qlt45'
elseif pc == 'qd' then
fn = 'Chess qdt45'
elseif pc == 'bl' then
fn = 'Chess blt45'
elseif pc == 'bd' then
fn = 'Chess bdt45'
elseif pc == 'nl' then
fn = 'Chess nlt45'
elseif pc == 'nd' then
fn = 'Chess ndt45'
elseif pc == 'rl' then
fn = 'Chess rlt45'
elseif pc == 'rd' then
fn = 'Chess rdt45'
elseif pc == 'pl' then
fn = 'Chess plt45'
elseif pc == 'pd' then
fn = 'Chess pdt45'
end
return string.format( '[[File:%s.svg|%dx%dpx|alt=%s|%s|top]]', fn, size, size, alt, alt )
end
return p