数字象棋编码
我从小酷爱中国象棋,它对我一生有很大的帮助.而且我编的第1个程序就是象棋程序.
在80年代初,国家公布了汉字编码方案.当时我没料到网络能普及到今天的地步.
当时想如果两地棋手下棋可能通过卫星等无线传送棋谱数据,如果用ASCII或汉字传送棋谱时.
传送的数据要大些且不能反映棋谱的动态性,故想像能否进行对中国象棋的数字编码来解决.
当时有人做过类似国际象棋立体形状的中国象棋.
由于中国象棋是很早发明的,列从右起始1~9,行为1~10.下盲棋时一般认为行从0~9.
棋子共有车,马,相(象),仕(士),帅(将),兵(卒),炮等7个兵种.
行棋有平,前(进) ,后(退)等3类.
这样正好满足了数字的0~9.真是老天有眼呀---祖宗有灵气,发明的如此"精密".
如果用棋子名在列线的位置号做为棋子号的话,就会产生以下编码:
1-车 2-马 3-相(象) 4-仕(士) 5-帅(将) 7-兵(卒) 8-炮
那么就剩下数字0,6,9了....
天哪!!!那个6上的"小尖尖"不是向上指的吗???不就是前或进的意思吗???
同例9下的"小尖尖"不是向下指的吗???不就是后或退的意思吗???
留下的0不说也知道了---那是不进不退只有横着走了,难道不就是"平"吗???
哈哈~~~原来什么事情分析出来后就是如此的简单,明了~~~
“中国象棋数字编码方案”就被我几下倒塌地思维出来了:
1-车 2-马 3-相(象) 4-仕(士) 5-帅(将) 7-兵(卒) 8-炮
0-平 6-前(进) 9-后(退)
棋谱举例:
1.炮二平五 马8进7 1. 8205 2867
2.马二进三 车9平8 2. 2263 1908
。。。。。。。。。。。。。。。。。。。
11.前兵进一 后炮退3 11. 6761 9893
12.前车平三 后卒平4 12. 6103 9704
。。。。。。。。。。。。。。。。。。。
即炮二平五表示炮(8)二(2)平(0)五(5) 对应的数字编码:8205.
倒塌了,原来思维就是如此的简单~~~
数字象棋很好记忆:
首先棋子名即为原始位置的列号。
再每个数字隐含行棋规则:
1-车,直线走法。
2-马,2步走法,先直走1格斜走1格,长相像马头。
3-相(象),3点走法,即斜线3点。
4-仕(士),斜线1步,“四”音同“士”(南方口音)
5-帅(将),“九五之尊”-我(5)也。
7-兵(卒),“7”有点像古代的兵器,兵是不能后退的。
8-炮,“炮翻山”,“0”翻山就成了“8”了。
6-“小尖尖”向前必为“前”或“进”。
9-“小尖尖”向后必为“后”或“退”。
0-“小尖尖”不前不后必为“平”即不前进平着走。
是很有意思~~~
好多年不下棋了有些生疏,不过这几天也净胜了30盘棋1810分混了个
“高级爱好”者,和小时候差多了~~~
记得在“非典”时在上海热线下棋,就用此数字象棋遥控不认识的低级
棋手战胜高级别棋手的“闹剧”~~~很是开心~~~
下棋确实浪费时间~~~不过偶尔休息休息大脑也不算“不务正业”~~~
玩玩就是证明自己大脑是否“生锈”~~~