<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh">
	<id>https://arolstar52-zhtest.hf.space/index.php?action=history&amp;feed=atom&amp;title=Module%3AXiangqi_diagram</id>
	<title>Module:Xiangqi diagram - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="https://arolstar52-zhtest.hf.space/index.php?action=history&amp;feed=atom&amp;title=Module%3AXiangqi_diagram"/>
	<link rel="alternate" type="text/html" href="https://arolstar52-zhtest.hf.space/index.php?title=Module:Xiangqi_diagram&amp;action=history"/>
	<updated>2026-07-16T08:43:26Z</updated>
	<subtitle>在这个wiki上该页的修订历史</subtitle>
	<generator>MediaWiki 1.43.9</generator>
	<entry>
		<id>https://arolstar52-zhtest.hf.space/index.php?title=Module:Xiangqi_diagram&amp;diff=2692322&amp;oldid=prev</id>
		<title>imported&gt;Wj654cj86 来自 2024年3月8日 (五) 12:47</title>
		<link rel="alternate" type="text/html" href="https://arolstar52-zhtest.hf.space/index.php?title=Module:Xiangqi_diagram&amp;diff=2692322&amp;oldid=prev"/>
		<updated>2024-03-08T12:47:49Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;function format(s)&lt;br /&gt;
	s = string.gsub(s or &amp;#039;&amp;#039;, &amp;#039;\n&amp;#039;, &amp;#039;&amp;#039;)&lt;br /&gt;
	return s&lt;br /&gt;
end&lt;br /&gt;
function split(inputstr, sep)&lt;br /&gt;
	if sep == nil then&lt;br /&gt;
		return {inputstr}&lt;br /&gt;
	end&lt;br /&gt;
	local t = {}&lt;br /&gt;
	local x = 1&lt;br /&gt;
	local y = inputstr:find(sep)&lt;br /&gt;
	while y ~= nil do&lt;br /&gt;
		table.insert(t, inputstr:sub(x, y - 1))&lt;br /&gt;
		x = y + 1&lt;br /&gt;
		y = inputstr:find(sep, x)&lt;br /&gt;
	end&lt;br /&gt;
	table.insert(t, inputstr:sub(x))&lt;br /&gt;
	return t&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function drawArrow(arrow)&lt;br /&gt;
	local t = split(arrow:gsub(&amp;#039; &amp;#039;, &amp;#039;&amp;#039;), &amp;#039;,&amp;#039;)&lt;br /&gt;
	for i = 1, #t do&lt;br /&gt;
		t[i] = t[i] * 1&lt;br /&gt;
	end&lt;br /&gt;
	local ss = &amp;#039;&amp;#039;&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;
	ss = ss .. &amp;#039;&amp;lt;div class=&amp;quot;xiangqi-aB&amp;quot; style=&amp;quot;&amp;#039;&lt;br /&gt;
	ss = ss .. &amp;#039;left:&amp;#039; .. (t[1] - 1) * 100 .. &amp;#039;px;&amp;#039;&lt;br /&gt;
	ss = ss .. &amp;#039;top:&amp;#039; .. t[2] * 100 .. &amp;#039;px;&amp;#039;&lt;br /&gt;
	ss = ss .. &amp;#039;width:&amp;#039; .. t[3] * 100 .. &amp;#039;px;&amp;#039;&lt;br /&gt;
	ss = ss .. &amp;#039;transform:rotate(&amp;#039; .. t[4] .. &amp;#039;deg);&amp;quot;&amp;gt;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
	-- 箭頭的直線部分&lt;br /&gt;
	ss = ss .. &amp;#039;&amp;lt;div class=&amp;quot;xiangqi-aL&amp;quot; style=&amp;quot;width:&amp;#039; .. (t[3] - 0.4) * 100 .. &amp;#039;px;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;#039;&lt;br /&gt;
	-- 箭頭的頭部分&lt;br /&gt;
	ss = ss .. &amp;#039;&amp;lt;div class=&amp;quot;xiangqi-aH&amp;quot; style=&amp;quot;left:&amp;#039; .. t[3] * 100 .. &amp;#039;px;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
	ss = ss .. &amp;#039;&amp;lt;/div&amp;gt;&amp;#039;&lt;br /&gt;
	return ss&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local qidata = {&lt;br /&gt;
	rs = {&amp;#039;暗&amp;#039;},&lt;br /&gt;
&lt;br /&gt;
	gd = {&amp;#039;将&amp;#039;, &amp;#039;將&amp;#039;},&lt;br /&gt;
	ad = {&amp;#039;士&amp;#039;},&lt;br /&gt;
	ed = {&amp;#039;象&amp;#039;},&lt;br /&gt;
	rd = {&amp;#039;车&amp;#039;, &amp;#039;車&amp;#039;},&lt;br /&gt;
	hd = {&amp;#039;马&amp;#039;, &amp;#039;馬&amp;#039;},&lt;br /&gt;
	cd = {&amp;#039;砲&amp;#039;, &amp;#039;包&amp;#039;},&lt;br /&gt;
	sd = {&amp;#039;卒&amp;#039;},&lt;br /&gt;
&lt;br /&gt;
	gl = {&amp;#039;帅&amp;#039;, &amp;#039;帥&amp;#039;},&lt;br /&gt;
	al = {&amp;#039;仕&amp;#039;},&lt;br /&gt;
	el = {&amp;#039;相&amp;#039;},&lt;br /&gt;
	rl = {&amp;#039;伡&amp;#039;, &amp;#039;俥&amp;#039;},&lt;br /&gt;
	hl = {&amp;#039;㐷&amp;#039;, &amp;#039;傌&amp;#039;},&lt;br /&gt;
	cl = {&amp;#039;炮&amp;#039;},&lt;br /&gt;
	sl = {&amp;#039;兵&amp;#039;}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
local p = {}&lt;br /&gt;
function p.board(frame)&lt;br /&gt;
	local args = require(&amp;#039;Module:Arguments&amp;#039;).getArgs(frame)&lt;br /&gt;
	local align = format(args[1])&lt;br /&gt;
	if align == &amp;#039;&amp;#039; then&lt;br /&gt;
		align = &amp;#039;tright&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	local header = format(args[2])&lt;br /&gt;
	local footer = format(args[93])&lt;br /&gt;
&lt;br /&gt;
	local size&lt;br /&gt;
	local width&lt;br /&gt;
	local height&lt;br /&gt;
&lt;br /&gt;
	if args.size ~= nil then&lt;br /&gt;
		size = args.size&lt;br /&gt;
		width = size * 9&lt;br /&gt;
		height = size * 12&lt;br /&gt;
	elseif args.width ~= nil then&lt;br /&gt;
		width = args.width&lt;br /&gt;
		size = width / 9&lt;br /&gt;
		height = size * 12&lt;br /&gt;
	elseif args.height ~= nil then&lt;br /&gt;
		height = args.height&lt;br /&gt;
		size = height / 12&lt;br /&gt;
		width = size * 9&lt;br /&gt;
	else&lt;br /&gt;
		size = 25&lt;br /&gt;
		width = 225&lt;br /&gt;
		height = 300&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local amplification = size / 100&lt;br /&gt;
&lt;br /&gt;
	-- 範圍顯示參數&lt;br /&gt;
	local startcol = args.startcol or 1&lt;br /&gt;
	local cols = args.cols or (10 - startcol)&lt;br /&gt;
	local startrow = args.startrow or 0&lt;br /&gt;
	local rows = args.rows or (12 - startrow)&lt;br /&gt;
&lt;br /&gt;
	local bwidth = cols * size&lt;br /&gt;
	local bheight = rows * size&lt;br /&gt;
	local bleft = (startcol - 1) * size&lt;br /&gt;
	local btop = startrow * size&lt;br /&gt;
&lt;br /&gt;
	local ss = &amp;#039;&amp;#039;&lt;br /&gt;
	ss = ss .. &amp;#039;&amp;lt;div class=&amp;quot;&amp;#039; .. align .. &amp;#039;&amp;quot; style=&amp;quot;clear:right;&amp;quot;&amp;gt;&amp;#039;&lt;br /&gt;
	ss = ss .. &amp;#039;&amp;lt;div style=&amp;quot;width:&amp;#039; .. bwidth .. &amp;#039;px;border:1px solid #a2a9b1;padding:5px;background-color:#f8f9fa;&amp;quot;&amp;gt;&amp;#039;&lt;br /&gt;
	if header ~= &amp;#039;&amp;#039; then&lt;br /&gt;
		ss = ss .. &amp;#039;&amp;lt;div style=&amp;quot;text-align:center;margin-bottom:3px;width:&amp;#039; .. bwidth .. &amp;#039;px;&amp;quot;&amp;gt;&amp;#039; .. header .. &amp;#039;&amp;lt;/div&amp;gt;&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	ss = ss .. &amp;#039;&amp;lt;div style=&amp;quot;position:relative;overflow:hidden;width:&amp;#039; .. bwidth .. &amp;#039;px;height:&amp;#039; .. bheight .. &amp;#039;px;&amp;quot;&amp;gt;&amp;#039;&lt;br /&gt;
	ss = ss .. &amp;#039;&amp;lt;div style=&amp;quot;position:absolute;left:-&amp;#039; .. bleft .. &amp;#039;px;top:-&amp;#039; .. btop .. &amp;#039;px;&amp;quot;&amp;gt;&amp;#039;&lt;br /&gt;
	ss = ss .. &amp;#039;&amp;lt;div style=&amp;quot;position:absolute;&amp;quot;&amp;gt;[[File:Xiangqi_board.svg|&amp;#039; .. width .. &amp;#039;px]]&amp;lt;/div&amp;gt;&amp;#039;&lt;br /&gt;
	for i = 0, 9 do&lt;br /&gt;
		for j = 0, 8 do&lt;br /&gt;
			local s = format(args[i * 9 + j + 3])&lt;br /&gt;
			s = string.gsub(s, &amp;#039; &amp;#039;, &amp;#039;&amp;#039;)&lt;br /&gt;
			s = string.gsub(s, &amp;#039;　&amp;#039;, &amp;#039;&amp;#039;)&lt;br /&gt;
			s = string.gsub(s, &amp;#039;_&amp;#039;, &amp;#039;&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
			local sx = (j * size)&lt;br /&gt;
			local sy = ((i + 1) * size)&lt;br /&gt;
&lt;br /&gt;
			-- 判斷棋名&lt;br /&gt;
			local qi = &amp;#039;&amp;#039;&lt;br /&gt;
			for key, val in pairs(qidata) do&lt;br /&gt;
				if s:find(key) ~= nil then&lt;br /&gt;
					qi = key&lt;br /&gt;
				end&lt;br /&gt;
				for k, v in ipairs(val) do&lt;br /&gt;
					if s:find(v) ~= nil then&lt;br /&gt;
						qi = key&lt;br /&gt;
					end&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
			if qi ~= &amp;#039;&amp;#039; then&lt;br /&gt;
				ss = ss .. &amp;#039;&amp;lt;div style=&amp;quot;position:absolute;left:&amp;#039; .. sx .. &amp;#039;px;top:&amp;#039; .. sy .. &amp;#039;px;&amp;quot;&amp;gt;&amp;#039;&lt;br /&gt;
				ss = ss .. &amp;#039;[[File:Xiangqi_&amp;#039; .. qi .. &amp;#039;1.svg|&amp;#039; .. size .. &amp;#039;px]]&amp;lt;/div&amp;gt;&amp;#039;&lt;br /&gt;
			end&lt;br /&gt;
&lt;br /&gt;
			-- 標記符號的位移&lt;br /&gt;
			local sp = &amp;#039;&amp;#039;&lt;br /&gt;
			if s:find(&amp;#039;x&amp;#039;) ~= nil then&lt;br /&gt;
				sp = sp .. &amp;#039;&amp;lt;div class=&amp;quot;xiangqi-pX&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;#039;&lt;br /&gt;
			end&lt;br /&gt;
			if s:find(&amp;#039;%.&amp;#039;) ~= nil then&lt;br /&gt;
				sp = sp .. &amp;#039;&amp;lt;div class=&amp;quot;xiangqi-pD&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;#039;&lt;br /&gt;
			end&lt;br /&gt;
			if s:find(&amp;#039;%[&amp;#039;) ~= nil then&lt;br /&gt;
				sp = sp .. &amp;#039;&amp;lt;div class=&amp;quot;xiangqi-pR&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;#039;&lt;br /&gt;
			end&lt;br /&gt;
			if sp ~= &amp;#039;&amp;#039; then&lt;br /&gt;
				ss = ss .. &amp;#039;&amp;lt;div style=&amp;quot;position:absolute;left:&amp;#039; .. sx .. &amp;#039;px;top:&amp;#039; .. sy .. &amp;#039;px;transform:scale(&amp;#039; .. amplification .. &amp;#039;);&amp;quot;&amp;gt;&amp;#039; .. sp .. &amp;#039;&amp;lt;/div&amp;gt;&amp;#039;&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	----箭頭&lt;br /&gt;
	local sp = &amp;#039;&amp;#039;&lt;br /&gt;
	local arrowname = &amp;#039;arrow&amp;#039;&lt;br /&gt;
	local count = 1&lt;br /&gt;
	while args[arrowname] ~= nil do&lt;br /&gt;
		sp = sp .. drawArrow(args[arrowname])&lt;br /&gt;
		count = count + 1&lt;br /&gt;
		arrowname = &amp;#039;arrow&amp;#039; .. count&lt;br /&gt;
	end&lt;br /&gt;
	if sp ~= &amp;#039;&amp;#039; then&lt;br /&gt;
		ss = ss .. &amp;#039;&amp;lt;div style=&amp;quot;position:absolute;transform:scale(&amp;#039; .. amplification .. &amp;#039;);&amp;quot;&amp;gt;&amp;#039; .. sp .. &amp;#039;&amp;lt;/div&amp;gt;&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	ss = ss .. &amp;#039;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;#039;&lt;br /&gt;
	if footer ~= &amp;#039;&amp;#039; then&lt;br /&gt;
		ss = ss .. &amp;#039;&amp;lt;div style=&amp;quot;text-align:left;margin-top:3px;width:&amp;#039; .. bwidth .. &amp;#039;px;&amp;quot;&amp;gt;&amp;#039; .. footer .. &amp;#039;&amp;lt;/div&amp;gt;&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	ss = ss .. &amp;#039;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
	return ss&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>imported&gt;Wj654cj86</name></author>
	</entry>
</feed>