楼主 ryueifu |
没使用任何窗体和控件,纯粹一个工作表,走棋规则完备的双人对战象棋. 仅仅用了一天时间做出的. 作者ryueifu 昨晚,我用一个小时,就写好 车马炮各个兵种的走法规则了 12:03:54 限定以下几个方面: 比如马 ,不能跳出棋盘外,不能吃自己的棋,鳖腿时不许走 倾城(107172400) 12:03:53 晕 倾城(107172400) 12:04:12 群主何不帮我写一下 12:04:19 对于 象,规则和马完全一样 12:04:34 但是,需要附加一句,不许过河 12:05:15 士的规则,和马的前2条规则一样,需要附加一个,不许出 九宫 12:06:16 车的规则,和马的前2条规则一样,在一条直线上走,不能中途遇到对方的子,能吃,或者在前面停下来 12:06:42 炮,和车规则一样,但是分2个情况,一是移动炮,规则和车一模一样 12:07:05 二是,炮打对方的棋子,那么需要判断中间恰好夹着一个棋子 12:07:18 并且不能打自己的棋,不能打空 倾城(107172400) 12:07:21 人才啊 12:07:52 卒子的判断, 没有过河时候,往前可以移动一个单位格子 12:08:17 和马前2规则一样,不可去棋盘外面,不能窝里啃 12:08:44 过河后,卒子的目标位置行数,不能比起始位置行数小 12:09:01 也就是,卒子不可退却,但是可以左右摆 12:09:20 最后,是老将的 允许规则, 12:09:52 起始位置和终止位置,坐标差的平方和是1 天涯浪子(417149126) 12:10:08 只能在田字行走 12:10:13 (x1-x2)^2+(y1-y2)^2=1 12:10:25 上面这个欧几里得距离公式 12:10:33 =1的时候,是老将 12:10:47 (x1-x2)^2+(y1-y2)^2=2的时候是 士 12:11:05 (x1-x2)^2+(y1-y2)^2=5的时候是 马 12:11:16 (x1-x2)^2+(y1-y2)^2=8的时候是 象 12:11:33 =1的时候,是老将 或者是兵 12:11:58 另一个公式: (x1-x2)*(y1-y2)=0 12:12:17 这个公式成立的话,可以用于车,或者炮的判断 12:12:51 最后,必须考虑到老将的一个特例 12:13:03 就是2个将对面的时候,可以蹦出九宫 12:13:08 杀死对方 12:13:35 这时候,需要满足 (x1-x2)=0 12:13:48 也就是.2个老将的 列数是一样的情况下 12:14:00 中间不隔子, 12:14:25 vba写的话,就是worksheetfunction.CountA(rg)=2 12:14:53 这句的意思,可以排除中间隔子 12:15:29 其实,只要你把马的规则搞出,其他的复制粘贴 12:15:33 稍加修改即可 |
2楼 赖芳芳 |
好厉害,大师 |
3楼 ly88996 |
好厉害,大师,发出来分享一下 |
4楼 Eric__宇 |
怎么没有附件呢,分享一下呗 |