Content deleted Content added
No edit summary |
No edit summary |
||
Line 2:
function chessboard( position, size, reverse)
local
local
c = 'chancelor', z = 'champion', w = 'wizard', t = 'fool', h = 'upside-down pawn', m = 'upside-down rook',
s = 'upside-down knight', f = 'upside-down king', e = 'upside-down bishop', g = 'upside-down queen'}
local symnames = { xx = 'black cross', ox = 'white cross', xo = 'black circle', oo = 'white circle',
ul = 'up-left arrow', ua = 'up arrow', ur = 'up-right arrow', la = 'left arrow', ra = 'right arrow',
dl = 'down-left arrow', da = 'down arrow', dr = 'down-right arrow', lr = 'left-right arrow', ud = 'up-down arrow',
x0='zero', x1='one', x2='two', x3='three', x4='four', x5='five', x6='six', x7='seven', x8='eight', x9='nine'}
function rowchar( row ) return 9 - row end
function filechar( file ) return ( "abcdefgh" ):sub( file, file ) end
function piecediv(
local color = mw.ustring.gsub(
local piece = mw.ustring.gsub(
local alt =
if (colornames[color] and piecenames[piece]) then
alt = alt .. colornames[color] .. ' ' .. piecenames[piece]
else
alt = alt .. (symnames[ piece .. color ] or (piece .. ' ' .. color))
end
local img = string.format('[[File:Chess %s%st45.svg|%dx%dpx|alt=%s|%s]]', piece, color, size, size, alt, alt)
table.insert( res, string.format('<div style="position:absolute;z-index:3;top:%dpx;left:%dpx;">%s</div>', coord( row ), coord( file ), img) )
Line 18 ⟶ 28:
local result = {}
<div class="chess-board" style="position:relative;">
[[File:Chessboard480.png|%dx%dpx|link=]]
Line 75 ⟶ 85:
function convertPositionToFen( args, offset )
-- converts a position array to Fen
function nullOrWhitespace( s ) return not s or s:match( '^%s*(.-)%s*$' ) == '' end
function piece( s )
Line 115 ⟶ 125:
function p.fen2ascii(frame)
-- {{#invoke:Chessboard|fen2ascii|fen=...}}
local b = convertFenToPosition( frame.args.fen )
local res = '|=\n'
for row = 1,8 do
local n = (9 - row)
res = res .. n .. ' |' .. table.concat(b, '|', 8*(row-1) + 1, 8*(row-1) + 8) .. '|=\n' end
res = mw.ustring.gsub(res,'\| \|', '| |')
res = mw.ustring.gsub(res,'\| \|', '| |')
res = res .. ' a b c d e f g h'
return res
end
function p.ascii2fen(frame)
-- {{#invoke:Chessboard|ascii2fen|kl|....}}
return
end
|