中国象棋将帅问题的另类解法

本文提出了一种新颖的方法来解决编程之美中的将帅问题,该方法不进行判断也不拆分变量,而是直接通过计算来确定双方将帅的所有合法位置。

编程之美里有个将帅问题蛮有意思的,该问题的具体描述是:(根据中国象棋的基本原则)在只有双的将帅棋盘上,找出所有双方可以落子的位置(将帅不能碰面),但只能使用一个变量。

 

解法一般也就是 循环然后判断去除重复位置。而对于只能用一个变量的限制一般通过把变量拆成2个来解决。

 

我有一个全新的思路,不做判断,不拆变量,直接用计算来解决问题。

附算法源程序:

 

当然,为了适应算法,我的坐标体系稍微有点变化:9 个格这么划分

0 3 6

1 4 7

2 5 8

 

代码的解释么,真男人,不解释,哈哈。

至于这个算法比原文的好还是差,那就是仁者见仁的事了,呵呵。

 

附:原文的一个算法代码

 

评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值