<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://mywikibiz.com/index.php?action=history&amp;feed=atom&amp;title=Module%3AXiangqi-position</id>
	<title>Module:Xiangqi-position - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://mywikibiz.com/index.php?action=history&amp;feed=atom&amp;title=Module%3AXiangqi-position"/>
	<link rel="alternate" type="text/html" href="https://mywikibiz.com/index.php?title=Module:Xiangqi-position&amp;action=history"/>
	<updated>2026-05-02T15:32:09Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.35.3</generator>
	<entry>
		<id>https://mywikibiz.com/index.php?title=Module:Xiangqi-position&amp;diff=480094&amp;oldid=prev</id>
		<title>Zoran: Pywikibot 6.4.0</title>
		<link rel="alternate" type="text/html" href="https://mywikibiz.com/index.php?title=Module:Xiangqi-position&amp;diff=480094&amp;oldid=prev"/>
		<updated>2021-07-16T08:01:38Z</updated>

		<summary type="html">&lt;p&gt;Pywikibot 6.4.0&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local p = {}&lt;br /&gt;
function p.board(frame)&lt;br /&gt;
	local args = require('Module:Arguments').getArgs(frame)&lt;br /&gt;
	----设置整张图片的尺寸&lt;br /&gt;
	local size = string.gsub(args[91] or 30, '\n', '')&lt;br /&gt;
	local width = size * 9&lt;br /&gt;
	local height = size * 12&lt;br /&gt;
&lt;br /&gt;
	local rows = args.rows&lt;br /&gt;
	local startrow = args.startrow&lt;br /&gt;
	local top = 0&lt;br /&gt;
	local bheight = height&lt;br /&gt;
&lt;br /&gt;
	local cols = args.cols&lt;br /&gt;
	local startcol = args.startcol&lt;br /&gt;
	local left = 0&lt;br /&gt;
	local bwidth = width&lt;br /&gt;
	local bsize = size&lt;br /&gt;
&lt;br /&gt;
	----设置起始列和列数&lt;br /&gt;
	if cols == nil and startcol ~= nil then&lt;br /&gt;
		cols = 9 - startcol&lt;br /&gt;
	end&lt;br /&gt;
	if cols ~= nil then&lt;br /&gt;
		width = width * cols / 9&lt;br /&gt;
	end&lt;br /&gt;
	if cols ~= nil and startcol == nil then&lt;br /&gt;
		startcol = 1&lt;br /&gt;
	end&lt;br /&gt;
	if startcol ~= nil then&lt;br /&gt;
		left = bwidth / 9 * (startcol - 1)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	----设置起始行及行数&lt;br /&gt;
	if rows == nil and startrow ~= nil then&lt;br /&gt;
		rows = 12 - startrow&lt;br /&gt;
	end&lt;br /&gt;
	if rows ~= nil then&lt;br /&gt;
		bheight = bheight / 12 * rows&lt;br /&gt;
	end&lt;br /&gt;
	if rows ~= nil and startrow == nil then&lt;br /&gt;
		startrow = 1&lt;br /&gt;
	end&lt;br /&gt;
	if startrow ~= nil then&lt;br /&gt;
		top = height / 12 * startrow&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	----元件大小設定&lt;br /&gt;
	local sizef1 = size / 15&lt;br /&gt;
	local sizef2 = size / 20&lt;br /&gt;
	local sizef3 = size / 5&lt;br /&gt;
	local margin = size / 2 - sizef3 / 2&lt;br /&gt;
	local sizeX = math.ceil(size / 2, 0)&lt;br /&gt;
	local marginX = size / 2 - sizeX / 2&lt;br /&gt;
&lt;br /&gt;
	----输出棋盘图片&lt;br /&gt;
	local qp = ''&lt;br /&gt;
	qp = qp .. '&amp;lt;div class=&amp;quot;center&amp;quot; style=&amp;quot;clear:right;&amp;quot;&amp;gt;'&lt;br /&gt;
	qp = qp .. '&amp;lt;div style=&amp;quot;position:relative;width:' .. width .. 'px;height:' .. bheight .. 'px;overflow:hidden;&amp;quot;&amp;gt;'&lt;br /&gt;
	qp = qp .. '&amp;lt;div style=&amp;quot;position:absolute;top:-' .. top .. 'px;left:-' .. left .. 'px;width:' .. width .. 'px;&amp;quot;&amp;gt;'&lt;br /&gt;
	qp = qp .. '[[File:Xiangqi_board.svg|' .. bwidth .. 'px]]'&lt;br /&gt;
	qp = qp .. '&amp;lt;/div&amp;gt;'&lt;br /&gt;
	qp = qp .. '&amp;lt;div style=&amp;quot;position:absolute;top:-' .. top .. 'px;left:-' .. left .. 'px;width:' .. width .. 'px;&amp;quot;&amp;gt;'&lt;br /&gt;
	for i = 0, 9 do&lt;br /&gt;
		for j = 0, 8 do&lt;br /&gt;
			local qz = string.gsub(args[i * 9 + j + 1] or '', '\n', '')&lt;br /&gt;
			qz = string.gsub(qz, ' ', '')&lt;br /&gt;
			qz = string.gsub(qz, '　', '')&lt;br /&gt;
			qz = string.gsub(qz, '_', '')&lt;br /&gt;
&lt;br /&gt;
			qz = string.gsub(qz, '车', 'rd')&lt;br /&gt;
			qz = string.gsub(qz, '車', 'rd')&lt;br /&gt;
			qz = string.gsub(qz, '伡', 'rl')&lt;br /&gt;
			qz = string.gsub(qz, '俥', 'rl')&lt;br /&gt;
			qz = string.gsub(qz, '马', 'hd')&lt;br /&gt;
			qz = string.gsub(qz, '馬', 'hd')&lt;br /&gt;
			qz = string.gsub(qz, '㐷', 'hl')&lt;br /&gt;
			qz = string.gsub(qz, '傌', 'hl')&lt;br /&gt;
			qz = string.gsub(qz, '相', 'el')&lt;br /&gt;
			qz = string.gsub(qz, '象', 'ed')&lt;br /&gt;
			qz = string.gsub(qz, '仕', 'al')&lt;br /&gt;
			qz = string.gsub(qz, '士', 'ad')&lt;br /&gt;
			qz = string.gsub(qz, '炮', 'cl')&lt;br /&gt;
			qz = string.gsub(qz, '砲', 'cd')&lt;br /&gt;
			qz = string.gsub(qz, '兵', 'sl')&lt;br /&gt;
			qz = string.gsub(qz, '卒', 'sd')&lt;br /&gt;
			qz = string.gsub(qz, '帅', 'gl')&lt;br /&gt;
			qz = string.gsub(qz, '帥', 'gl')&lt;br /&gt;
			qz = string.gsub(qz, '将', 'gd')&lt;br /&gt;
			qz = string.gsub(qz, '將', 'gd')&lt;br /&gt;
			qz = string.gsub(qz, '包', 'cd')&lt;br /&gt;
&lt;br /&gt;
			qz = string.gsub(qz, '暗', 'rs')&lt;br /&gt;
&lt;br /&gt;
			local sx = ((i + 1) * size)&lt;br /&gt;
			local sy = (j * size)&lt;br /&gt;
&lt;br /&gt;
			local bj&lt;br /&gt;
&lt;br /&gt;
			----方框&lt;br /&gt;
			bj = string.find(qz, '%[')&lt;br /&gt;
			if bj ~= null then&lt;br /&gt;
				qp = qp .. '&amp;lt;div style=&amp;quot;position:absolute;z-index:100;top:' .. sx .. 'px;left:' .. sy .. 'px;width:' ..&lt;br /&gt;
						 size .. 'px;height:' .. size .. 'px;&amp;quot;&amp;gt;'&lt;br /&gt;
				qp =&lt;br /&gt;
					qp .. '&amp;lt;div style=&amp;quot;position:absolute;width:15%;height:15%;top:0px;left:0px;border-top:' .. sizef1 ..&lt;br /&gt;
						'px solid #0f0;border-left:' .. sizef1 .. 'px solid #0f0;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;'&lt;br /&gt;
				qp =&lt;br /&gt;
					qp .. '&amp;lt;div style=&amp;quot;position:absolute;width:15%;height:15%;top:0px;right:0px;border-top:' .. sizef1 ..&lt;br /&gt;
						'px solid #0f0;border-right:' .. sizef1 .. 'px solid #0f0;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;'&lt;br /&gt;
				qp = qp .. '&amp;lt;div style=&amp;quot;position:absolute;width:15%;height:15%;bottom:0px;left:0px;border-bottom:' ..&lt;br /&gt;
						 sizef1 .. 'px solid #0f0;border-left:' .. sizef1 .. 'px solid #0f0;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;'&lt;br /&gt;
				qp = qp .. '&amp;lt;div style=&amp;quot;position:absolute;width:15%;height:15%;bottom:0px;right:0px;border-bottom:' ..&lt;br /&gt;
						 sizef1 .. 'px solid #0f0;border-right:' .. sizef1 .. 'px solid #0f0;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;'&lt;br /&gt;
				qp = qp .. '&amp;lt;/div&amp;gt;'&lt;br /&gt;
			end&lt;br /&gt;
			qz = string.gsub(qz, '%[', '')&lt;br /&gt;
			qz = string.gsub(qz, '%]', '')&lt;br /&gt;
&lt;br /&gt;
			----標點&lt;br /&gt;
			bj = string.find(qz, '%.')&lt;br /&gt;
			if bj ~= null then&lt;br /&gt;
				qp = qp .. '&amp;lt;div style=&amp;quot;position:absolute;z-index:99;top:' .. sx .. 'px;left:' .. sy .. 'px;width:' ..&lt;br /&gt;
						 size .. 'px;&amp;quot;&amp;gt;'&lt;br /&gt;
				qp = qp .. '&amp;lt;div style=&amp;quot;margin:' .. margin .. 'px;width:' .. sizef3 .. 'px;height:' .. sizef3 ..&lt;br /&gt;
						 'px;background-color:#0f0;border-radius:100%;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;'&lt;br /&gt;
				qp = qp .. '&amp;lt;/div&amp;gt;'&lt;br /&gt;
			end&lt;br /&gt;
			qz = string.gsub(qz, '%.', '')&lt;br /&gt;
&lt;br /&gt;
			----標記叉號&lt;br /&gt;
			bj = string.find(qz, 'x')&lt;br /&gt;
			if bj ~= null then&lt;br /&gt;
				qp = qp .. '&amp;lt;div style=&amp;quot;position:absolute;z-index:99;top:' .. sx .. 'px;left:' .. sy .. 'px;width:' ..&lt;br /&gt;
						 size .. 'px;text-align:center;&amp;quot;&amp;gt;'&lt;br /&gt;
				qp = qp .. '[[File:red x.svg|' .. sizeX .. 'px]]'&lt;br /&gt;
				qp = qp .. '&amp;lt;/div&amp;gt;'&lt;br /&gt;
			end&lt;br /&gt;
			qz = string.gsub(qz, 'x', '')&lt;br /&gt;
&lt;br /&gt;
			if qz ~= '' then&lt;br /&gt;
				qp = qp .. '&amp;lt;div style=&amp;quot;position:absolute;z-index:98;top:' .. sx .. 'px;left:' .. sy .. 'px;width:' ..&lt;br /&gt;
						 size .. 'px;&amp;quot;&amp;gt;'&lt;br /&gt;
				qp = qp .. '[[File:Xiangqi_' .. qz .. '1.svg|' .. size .. 'px]]'&lt;br /&gt;
				qp = qp .. '&amp;lt;/div&amp;gt;'&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	----箭头&lt;br /&gt;
	local arrow = args.arrow&lt;br /&gt;
	if arrow ~= nil then&lt;br /&gt;
		qp = qp .. drawArrow(arrow, size)&lt;br /&gt;
	end&lt;br /&gt;
	local count = 2&lt;br /&gt;
	while args['arrow' .. count] ~= nil do&lt;br /&gt;
		qp = qp .. drawArrow(args['arrow' .. count], size)&lt;br /&gt;
		count = count + 1&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	qp = qp .. '&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;'&lt;br /&gt;
	return qp&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function drawArrow(arrow, size)&lt;br /&gt;
	arrow = string.gsub(arrow, ' ', '')&lt;br /&gt;
	local start = 1&lt;br /&gt;
	local t = {}&lt;br /&gt;
	local str = ''&lt;br /&gt;
	while true do&lt;br /&gt;
		local pos = string.find(arrow, ',', start, true)&lt;br /&gt;
		if not pos then&lt;br /&gt;
			break&lt;br /&gt;
		end&lt;br /&gt;
		table.insert(t, string.sub(arrow, start, pos - 1))&lt;br /&gt;
		start = pos + string.len(',')&lt;br /&gt;
	end&lt;br /&gt;
	table.insert(t, string.sub(arrow, start))&lt;br /&gt;
	t[4] = t[4] * 1&lt;br /&gt;
	while t[4] &amp;lt; 0 do&lt;br /&gt;
		t[4] = t[4] + 360&lt;br /&gt;
	end&lt;br /&gt;
	while t[4] &amp;gt;= 360 do&lt;br /&gt;
		t[4] = t[4] - 360&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	----箭頭的底盤 拿來旋轉方向使用&lt;br /&gt;
	str = str .. '&amp;lt;div style=&amp;quot;z-index:108;position:absolute;'&lt;br /&gt;
	str = str .. 'left:' .. (t[1] - 1) * size .. 'px;'&lt;br /&gt;
	str = str .. 'top:' .. t[2] * size .. 'px;'&lt;br /&gt;
	str = str .. 'width:' .. t[3] * size .. 'px;'&lt;br /&gt;
	str = str .. 'height:' .. size .. 'px;'&lt;br /&gt;
	str = str .. 'transform-origin:' .. size / 2 .. 'px ' .. size / 2 .. 'px;'&lt;br /&gt;
	str = str .. 'transform:rotate(' .. t[4] .. 'deg);&amp;quot;&amp;gt;'&lt;br /&gt;
&lt;br /&gt;
	----箭頭的直線部分&lt;br /&gt;
	str = str .. '&amp;lt;div style=&amp;quot;z-index:108;position:absolute;'&lt;br /&gt;
	str = str .. 'left:' .. size / 2 .. 'px;'&lt;br /&gt;
	str = str .. 'top:' .. size / 2 - size / 16 .. 'px;'&lt;br /&gt;
	str = str .. 'width:' .. (t[3] - 0.4) * size .. 'px;'&lt;br /&gt;
	str = str .. 'height:' .. size / 8 .. 'px;'&lt;br /&gt;
	str = str .. 'background-color:#0f0;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;'&lt;br /&gt;
&lt;br /&gt;
	----箭頭的頭部分&lt;br /&gt;
	str = str .. '&amp;lt;div style=&amp;quot;z-index:108;position:absolute;'&lt;br /&gt;
	str = str .. 'left:' .. t[3] * size .. 'px;'&lt;br /&gt;
	str = str .. 'top:' .. size / 2 - size / 4 .. 'px;'&lt;br /&gt;
	str = str .. 'width:0px;height:0px;'&lt;br /&gt;
	str = str .. 'border:' .. size / 4 .. 'px solid transparent;'&lt;br /&gt;
	str = str .. 'border-left-color:#0f0;'&lt;br /&gt;
	str = str .. 'border-left-width:' .. size / 2 .. 'px;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;'&lt;br /&gt;
&lt;br /&gt;
	str = str .. '&amp;lt;/div&amp;gt;'&lt;br /&gt;
&lt;br /&gt;
	return str&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Zoran</name></author>
	</entry>
</feed>