象棋相关

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"], 
]);

 

以上是关于象棋相关的主要内容,如果未能解决你的问题,请参考以下文章

用html和js编写人机象棋对战

FireMonkey3D之中国象棋程序初步搜索算法

C#中国象棋+游戏大厅 服务器 + 客户端源码

使用 HTMLCSS 和 JS 制作一个中国象棋

DeepMind 打造 AI 游戏系统,可以玩扑克国际象棋围棋等,战斗力爆表

中国象棋手机软件,哪种棋力很高,思考时间短,求大神解答。