本帖最后由 hotpower 于 2012-10-9 07:37 编辑
我从小酷爱中国象棋,它对我一生有很大的帮助.而且我编的第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.
倒塌了,原来思维就是如此的简单~~~
菜农HotPower@126.com 1982年发明于西安雁塔菜地
相关链接:
菜农端午吃马肉:https://bbs.21ic.com/icview-240707-1-1.html
http://www.zgxqds.com/bbs/text.asp?id=10507
|