我从小酷爱中国象棋,它对我一生有很大的帮助.而且我编的第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.
倒塌了,原来思维就是如此的简单~~~
|
|