Hopp til innhold

Modul:Chessboard/Chess

Fra Wikipedia, den frie encyklopedi
Sideversjon per 14. jul. 2024 kl. 19:18 av Tholme (diskusjon | bidrag)
(diff) ← Eldre sideversjon | Nåværende sideversjon (diff) | Nyere sideversjon → (diff)
Moduldokumentasjon


local p = {}

function p.dims()
	return 8, 8
end

function p.letters()
	return {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h'}
end

function p.image_board(size)
	return string.format( '[[File:Chessboard480.svg|%dx%dpx|link=|class=notpageimage]]', 8 * size, 8 * size )
end

function p.image_square( pc, row, col, size )
	local colornames = { l = 'hvit', d = 'svart', u = 'ukjent farge' }
	local piecenames = { 
		p = 'bonde',
		r = 'tårn',
		n = 'springer',
		b = 'løper',
		q = 'dronning',
		k = 'konge',
		a = 'archbishop',
		c = 'chancelor',
		z = 'mester',
		w = 'trollmann',
		t = 'narr',
		M = 'mann',
		h = 'opp-ned bonde',
		m = 'opp-ned tårn',
		B = 'opp-ned løper',
		N = 'opp-ned springer',
		f = 'opp-ned konge',
		g = 'opp-ned dronning',
		e = 'elefant',
		s = 'båt',
		G = 'sjiraff',
		U = 'enhjørning',
		Z = 'sebra'
	}
	local symnames = {
		xx = 'svart kryss',
		ox = 'hvitt kryss',
		xo = 'svart sirkel',
		oo = 'hvit sirkel',
		ul = 'opp-venstre-pil',
		ua = 'opp-pil',
		ur = 'opp-høyre-pil',
		la = 'venstre-pil',
		ra = 'høyre-pil',
		dl = 'ned-venstre-pil',
		da = 'ned-pil',
		dr = 'ned-høyre-pil',
		lr = 'venstre-høyre-pil',
		ud = 'opp-ned-pil',
		db = 'up-right and down-left arrow',
		dw = 'up-left and down-right arrow',
		x0 = 'null',
		x1 = 'en',
		x2 = 'to',
		x3 = 'tre',
		x4 = 'fire',
		x5 = 'fem',
		x6 = 'seks',
		x7 = 'sju',
		x8 = 'åtte',
		x9 = 'ni',
	}
	local colchar = {'a','b','c','d','e','f','g','h'}
	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]
	else
		alt = alt .. ( symnames[piece .. color] or piece .. ' ' .. color )
	end

	return string.format( '[[File:Chess %s%st45.svg|%dx%dpx|alt=%s|%s|link=|class=notpageimage|top]]', piece, color, size, size, alt, alt )

end

return p