象棋相关
Posted stalendp
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了象棋相关相关的知识,希望对你有一定的参考价值。
控制台打印棋盘:
代码如下:
var util = require('util');
str = "\\
1 2 3 4 5 6 7 8 9\\n\\
%s━━%s━━%s━━%s━━%s━━%s━━%s━━%s━━%s \\n \\
┃ │ │ │ ╲ │ ╱ │ │ │ ┃ \\n \\
%s──%s──%s──%s──%s──%s──%s──%s──%s \\n \\
┃ │ │ │ ╱ │ ╲ │ │ │ ┃ \\n \\
%s──%s──%s──%s──%s──%s──%s──%s──%s \\n \\
┃ │ │ │ │ │ │ │ ┃ \\n \\
%s──%s──%s──%s──%s──%s──%s──%s──%s \\n \\
┃ │ │ │ │ │ │ │ ┃ \\n \\
%s──%s──%s──%s──%s──%s──%s──%s──%s \\n \\
┃ 楚河 汉界 ┃ \\n \\
%s──%s──%s──%s──%s──%s──%s──%s──%s \\n \\
┃ │ │ │ │ │ │ │ ┃ \\n \\
%s──%s──%s──%s──%s──%s──%s──%s──%s \\n \\
┃ │ │ │ │ │ │ │ ┃ \\n \\
%s──%s──%s──%s──%s──%s──%s──%s──%s \\n \\
┃ │ │ │ ╲ │ ╱ │ │ │ ┃ \\n \\
%s──%s──%s──%s──%s──%s──%s──%s──%s \\n \\
┃ │ │ │ ╱ │ ╲ │ │ │ ┃ \\n \\
%s━━%s━━%s━━%s━━%s━━%s━━%s━━%s━━%s \\n \\
九 八 七 六 五 四 三 二 一\\
";
dict = '一':1, '二':2, '三':3, '四':4, '五':5, '六':6, '七':7, '八':8, '九':9
var bIdx = function(sidx)
return (sidx[1]-'1')*9 + (sidx[0] - '1')
var rIdx = function(sidx)
return (9-(sidx[1]-'1'))*9 + 9 - dict[sidx[0]];
var doPrint = (blue, red) =>
// https://www.wikiwand.com/en/Box-drawing_character
chess = [
"┏━", "┯━", "┯━", "┯━", "┯━", "┯━", "┯━", "┯━", "┓",
"┠─", "┼─", "┼─", "┼─", "┼─", "┼─", "┼─", "┼─", "┨",
"┠─", "╬─", "┼─", "┼─", "┼─", "┼─", "┼─", "╬─", "┨",
"╠─", "┼─", "╬─", "┼─", "╬─", "┼─", "╬─", "┼─", "╣",
"┠─", "┴─", "┴─", "┴─", "┴─", "┴─", "┴─", "┴─", "┨",
"┠─", "┬─", "┬─", "┬─", "┬─", "┬─", "┬─", "┬─", "┨",
"╠─", "┼─", "╬─", "┼─", "╬─", "┼─", "╬─", "┼─", "╣",
"┠─", "╬─", "┼─", "┼─", "┼─", "┼─", "┼─", "╬─", "┨",
"┣─", "┼─", "┼─", "┼─", "┼─", "┼─", "┼─", "┼─", "┨",
"┗━", "┷━", "┷━", "┷━", "┷━", "┷━", "┷━", "┷━", "┛"];
blue.forEach(e =>
chess[bIdx(e[1])] = "\\033[36m" + e[0] + "\\033[0m";
);
red.forEach(e =>
chess[rIdx(e[1])] = "\\033[31m" + e[0] + "\\033[0m";
);
rr = util.format.apply(util,[str].concat(chess))
console.log(rr);
console.log("\\n");
doPrint([
["車", "11"], ["馬", "21"], ["象", "31"], ["士", "41"], ["將", "51"], ["士", "61"], ["象", "71"], ["馬", "73"], ["車", "81"],
["砲", "23"], ["砲", "83"],
["卒", "14"], ["卒", "34"], ["卒", "54"], ["卒", "74"], ["卒", "94"],
],[
["兵", "九4"], ["兵", "七5"], ["兵", "五4"], ["兵", "三4"], ["兵", "一4"],
["炮", "八3"], ["炮", "五3"],
["俥", "九1"], ["傌", "八1"], ["相", "七1"], ["仕", "六1"], ["帥", "五1"],["仕", "四1"], ["相", "三1"], ["傌", "二1"], ["俥", "一1"],
]);
doPrint( [
["象", "53"], ["將", "42"], ["卒", "56"]
],[
["兵", "六7"], ["兵", "四7"],["相", "七1"], ["帥", "五1"]
]);
doPrint( [
["將", "61"], ["士", "52"], ["士", "43"],["砲", "42"]
],[
["帥", "五1"], ["相", "七1"], ["傌", "二5"], ["傌", "八7"],
]);
doPrint( [
["將", "41"], ["士", "52"], ["士", "63"], ["象", "71"], ["象", "53"]
],[
["帥", "五3"], ["仕", "四3"], ["炮", "六2"], ["炮", "二1"],
]);
以上是关于象棋相关的主要内容,如果未能解决你的问题,请参考以下文章