这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » 从“中国象棋数字编码方案”谈思维

共2条 1/1 1 跳转至

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

院士
2011-04-21 08:29:32     打赏



数字象棋编码

我从小酷爱中国象棋,它对我一生有很大的帮助.而且我编的第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分混了个
“高级爱好”者,和小时候差多了~~~

记得在“非典”时在上海热线下棋,就用此数字象棋遥控不认识的低级
棋手战胜高级别棋手的“闹剧”~~~很是开心~~~

下棋确实浪费时间~~~不过偶尔休息休息大脑也不算“不务正业”~~~
玩玩就是证明自己大脑是否“生锈”~~~




关键词: 中国象棋     数字     编码方案     思维    

高工
2011-04-25 09:20:34     打赏
2楼

这就是算法的精妙,高手就高在算法方面!


共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]