循环局面的象棋棋规
象棋吧
全部回复
仅看楼主
level 8
完策绝杀 楼主
众所周知,象棋对于循环局面的棋规判断很复杂,要么就是不够严厉(长杀都可以)容易赖和。要么就是过于复杂,搞得像诉讼一样,程序都没法写。[哈哈]
本人吃饱了撑的,拟了一套原则上很简单的规定(保证计算机可执行),且拒绝赖和。并且最大程度上降低和棋率(除了闲循环对闲循环外,其它都能分胜负)。[吐舌]
按照这套规定也可以一定程度上丰富象棋策略(可以研究策略通过棋规来求胜求和,估计软件用这套规则对局,会有这种策略)。
不喜轻喷。[小乖]
2024年11月06日 10点11分 1
level 8
完策绝杀 楼主
(1)将,杀,捉的定义,及其他基础概念:
一:将
将:一方行棋后,如果再走一步能吃掉对方老将就叫将军。
二:杀
杀:一方行棋后,如果再走一步可以连将杀将死对方老将就叫杀。(注:必须是连将杀,如果是缓杀,即不是步步将军则不算杀)
连将:连续X步棋都是将军(无论是否将死,X为任意正整数,也不管对方怎么应将),那么把这X步棋一起称为连将。
连将杀:每一步都是将军,无论对方如何行棋,都可以每步将军直到将死对方,则为连将杀。
三:捉
捉的定义就相对比较复杂了
捉由捉子和捉源共同构成,比如车捉马,那么车是捉源,马是被捉的,马是捉子。
捉分为普通捉和抽将捉。
普通捉:一方行棋后,如果再走一步,就可以用己方的棋子(捉源)吃掉对方的一个(除老将外的)棋子(捉子);并且在己方这步棋行棋前,这步(由捉子和捉源构成的)捉还不存在,那么这步棋就叫做捉。(当然还有特例。)
捉由捉子和捉源构成,只要捉子捉源其中一个改变,那就是一个新的“捉”。如果捉源和捉子都没有变,则还是原来就存在的“捉”,不是新的“捉”。
送吃:一方行棋后,轮到对方走,如果对方的棋子(吃源)就可以吃掉我方的一个棋子(吃子);并且在己方这步棋行棋前,这步(由吃子和吃源构成的)送吃还不存在,那么这步棋就叫做送吃。
抽将捉:一方行棋后,如果再走一步,可以连将对方,连将之后,对方无论如何行棋,要么被连将杀将死,要么只能解将的同时送吃,那么我方这步棋也记为“捉(抽将捉)”。(如果对方存在一种选择解将的同时不送吃,那我方的这步行棋就不是捉。)此时吃源就是这步棋的捉源,吃子就是这步棋的捉子(同样捉源不能是将帅兵卒,捉子不能是未过河的兵卒)。
捉的特例:
1,捉源(吃源)为将帅兵卒时,该步不记作捉,记为闲。
2,捉子(吃子)为未过河的兵卒时,该步不记作捉,记为闲。
四:闲
闲:如果一步棋,不是将,杀,捉,则这步棋为闲。
2024年11月06日 10点11分 2
level 8
完策绝杀 楼主
(2)每步棋以及循环的严重程度:
如果双方局面循环三次,则对双方循环的严重程度进行判定。
首先判断每一步棋的严重程度:
每一步行棋的严重程度是:将军》杀=捉》闲。
如果一步棋有两种严重程度,则按更严重的那个严重程度算。(比如一步棋既是将军又是捉,那就算将军,因为将军更严重)。
将军是最严重。杀,捉是次等严重。闲就是闲。
接下来判断整个循环的严重程度:
每方整个循环的严重程度就是该循环中严重程度最低的那一步棋的严重程度。(比如我方循环中,有将军,有杀,有闲,那我方整个循环的严重程度就是闲;对方循环中,有将军,有捉,无闲,那对方整个循环的严重程度就是次等严重。)
整个循环的严重程度也是:将军》杀=捉》闲
2024年11月06日 10点11分 3
level 8
完策绝杀 楼主
(3)连打序列和判断步:
序列:双方连续的几步棋。(比如:红第1步,黑第2步,红第3步,黑第4步。从第红1步棋到黑第4步棋,就是一个连续的序列,长度为4。注意序列必须是连续的,不能有中断。序列的最小长度为1.)
满足以下全部条件的序列就是连打序列:
1,连打序列中的每一步棋必须都是打(即将/杀/捉),不能是闲。
2,连打序列之前的一步棋必须比连打序列的第一步棋严重程度要低。
3,从连打序列的第二步算起,每一步的严重程度必须小于等于上一步。
判断步:让局面第一次出现第三次循环的那步棋就叫“判断步”。
2024年11月06日 10点11分 4
level 8
完策绝杀 楼主
(4)循环局面胜负判定:
比较双方整个循环的严重程度,如果有一方整个循环的严重程度更严重,则判负。
如果双方整个循环的严重程度都是闲,则和棋。
如果双方整个循环的严重程度一样,但不是闲,则看“判断步”所在的连打序列的第一步是哪方下的,该方判负。
2024年11月06日 10点11分 5
level 8
完策绝杀 楼主
最后,我这套规则没有“25回合内循环和棋红变招”的规定。
2024年11月06日 10点11分 6
level 8
完策绝杀 楼主
好了,棋规讲完。
最后说明一下,为什么“捉”不看有根没根。首先是如果有根就不算捉的话,就会出现一楼图里那种赖和的情况。其次是为了执行方便,什么有根没根真根假根判断起来复杂,不如“能吃就算捉”简洁。而且,众所周知,兑子会简化局面容易和棋。所以“能吃就是捉”的话,就不允许长邀兑,保留了避兑的权力,保持局面复杂性,有利于减少和棋。[哈哈]
2024年11月06日 10点11分 7
不允许长邀兑,先手可能出现必胜谱或者优几百分的谱[笑眼]
2024年12月07日 02点12分
@传说中的兄弟 那后手就避开这个劣势谱别走呗,走别的均势的谱呗,除非你能举出个例子,后手无法避开。先手可以利用我这个棋规则,让后手不管怎么走都无法避免劣势。
2024年12月07日 02点12分
@传说中的兄弟 说实话,我不相信在我这个棋规下会出现先手必胜走法,我认为双方最优解应还是必和。如果允许长邀兑的话,劣势方可以强行兑子,你不跟我兑,我就长邀兑和棋,这不利于降低和棋率。
2024年12月07日 02点12分
@完策绝杀 只要出现这种规则,现有的很多主流谱都会被彻底淘汰。而且长兑作为一种非常常见的维持均势手段,大概率绕不开了。就和现在已经有了很多规则刀一样,新规则一样会有大量针对长兑的规则刀诞生
2024年12月07日 02点12分
level 8
完策绝杀 楼主
还有,为什么规定“如果双方整个循环的严重程度一样,但不是闲,则看“判断步”所在的连打序列的第一步是哪方下的,该方判负。”呢?
其实不用规定长将循环比长杀/捉循环严重,因为根据“如果双方整个循环的严重程度一样,但不是闲,则看“判断步”所在的连打序列的第一步是哪方下的,该方判负。”这条规则是可以推理得出将循环对杀/捉循环,一定是将循环判负,所以这条规则的逻辑其实是和“比较双方整个循环的严重程度,如果有一方整个循环的严重程度更严重,则判负。”这条规则相一致的。
2024年11月06日 10点11分 8
level 7
[真棒]
2024年11月06日 12点11分 9
谢谢支持[吐舌][乖]
2024年11月06日 12点11分
level 8
完策绝杀 楼主
没有人评论吗?[小乖]我觉得这还是挺容易理解的。
2024年11月07日 07点11分 10
level 7
你这也很复杂
2024年11月16日 07点11分 11
一个棋例都没有,就能讲清楚还算复杂?核心逻辑就是五楼的判定,三句话讲完,这叫复杂?[汗]
2024年11月18日 01点11分
level 12
看了,太繁杂了,简化便于执行才好
2024年11月20日 08点11分 12
核心逻辑是五楼的判定,一共就三句话。
2024年11月20日 08点11分
@完策绝杀 就判长杀这一点就复杂了,有些局面是十步后才见绝杀,可能裁判都看不出來。
2024年11月20日 11点11分
@中正圆和 现在人人都有手机,写个程序来判定,毫无难度。裁判看手机就行了。
2024年11月20日 12点11分
@中正圆和 我所追求的简单是规则简单(核心逻辑就是五楼的判定),而非计算简单。棋类的计算本就是复杂的,这样才有大量变化。
2024年11月20日 12点11分
level 6
你图中这个局面按照国内规则是不是红方变着不变作负?
2024年11月20日 12点11分 13
你觉得理想的规则应该判红变招呢?还是判黑变招呢?还是判双方都不违规,不变作和?
2024年11月20日 14点11分
@完策绝杀 首先肯定不能判黑变招,因为黑方一直在送吃绝对不违规。至于应该判红方变招还是不变作和这个很难说
2024年11月20日 15点11分
@贴吧用户_74V6yt2 回复 贴吧用户_74V6yt2 :其实按照我这个贴子里规则,应该判黑变招,黑虽然是送吃,但是按照我这里捉的定义:“下步能吃就是捉,无论有根没根”,黑这里送吃也是捉。[小乖] 当然按现行规则好像是和棋。
2024年11月21日 16点11分
level 12
2024年11月21日 04点11分 15
亚规与中规,还有楼主的规則,该谁变,不能用电腦判断
2024年11月21日 04点11分
红先,车是红车,其他可凭字体判断
2024年11月21日 04点11分
1 2 尾页