##使用方式
npm install -g grunt
cd ./client
npm install
grunt dev
grunt server
cd ./server
npm install
node server.js
访问http://localhost:9001
##游戏规则 此游戏为中国象棋游戏的一个变体。
- 棋盘与棋子: 棋盘为中国象棋棋盘的一半,即为48的棋盘,棋子放于格子里面而不是横线与直线的交叉点上,棋子只能在这个48的棋盘之内移动。棋子的种类和个数,与中国象棋一样。开局之前,把所有的棋子背面朝上,进行混洗之后,放到如下图棋盘上的位置上。
- 棋手个数:2个棋手下棋。
- 走棋的方式:双方交替的走棋(必需交替,也就是说,任何一方不能说“我停一招,让对方多走一步”)。关于细节,请参见下面的小节“走棋方式的细节”。
- 决定颜色:第一步,任选一个棋手,此棋手翻开一个棋子,此棋子的颜色即为此棋手的棋子颜色。之后,轮到对方走棋,然后双方交替。
- 胜利:就是一方把另一方的棋子吃光,或者另一方认输。
- 和棋:双方都不能吃光对方的子,为和棋。
##走棋方式细节 每一步棋可以为如下方式之一:
- 翻子:把背面朝上的一个棋子翻过来;
- 移动:在已经翻开的棋子里,选择某个自己颜色的棋子,如果与他相临的位置(水平相邻或者竖直相邻)上没有子,那么可以将此棋子移动到此相邻位置上
- 兑子:在已经翻开的棋子里,选择某个自己颜色的棋子,如果与他相临的位置(水平相邻或者竖直相邻)的子是已经翻开的,并且是对方颜色的,并且这两个子的大小相同(比如“象”和“相”大小相同),那么可以让这两个子兑掉(从棋盘上一起拿下)
- 吃子:在已经翻开的棋子里,选择某个自己颜色的棋子(以下称为主动子),可以去按照如下方式之一吃别的子(以下称为被吃子)。吃完后,被吃子被从棋盘上拿掉,主动子被放到被吃子原来的位置上
- 如果主动子为“炮”,
- 主动子需要隔着一个棋子去吃被吃子;
- 主动子,被吃子和隔着的子,需要在一条直线上(水平或者竖直);
- 隔着的棋子可以为任意棋子(未翻开的,翻开的,红色的,黑色的);
- 被吃子可以是未翻开的和已翻开的。如果是已经翻开的,必须为对方颜色的棋子;
- 主动子和隔着的棋子之间可以是任意距离,只要之间的位置是空着的(即没有其他棋子)
- 被吃子和隔着的棋子之间可以是任意距离,只要之间的位置是空着的(即没有其他棋子)
- 如果主动子为“兵卒”,此子可以吃相邻位置(水平相邻或者竖直相邻)的已经翻开对方的“将帅”。
- 如果主动子为其他子,“大”的子可以吃相邻位置(水平相邻或者竖直相邻)上的已经翻开的对方的“小”的子。子的大小顺序为:将帅〉士〉象〉马〉车〉炮。比如,士可以吃对方的炮。
- 此外,任何子,除了将帅,均可以吃相邻位置(水平相邻或者竖直相邻)上已经翻开的对方的兵卒。
- 如果主动子为“炮”,