从“中国象棋数字编码方案”谈思维

2009年04月02日 22:14    发布者:hotpower
我从小酷爱中国象棋,它对我一生有很大的帮助.而且我编的第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


网友评论

高速上的板车 2010年09月04日
晕了
sherwin 2010年09月04日
才看到这个帖子,菜农真NB!  :victory:
pcbkey 2015年02月07日
支持一下