新棋吧 关注:7,111贴子:290,033

循环局面的象棋棋规

只看楼主收藏回复

众所周知,象棋对于循环局面的棋规判断很复杂,要么就是不够严厉(长杀都可以)容易赖和。要么就是过于复杂,搞得像诉讼一样,程序都没法写。
本人吃饱了撑的,拟了一套原则上很简单的规定(保证计算机可执行),且拒绝赖和。并且最大程度上降低和棋率(除了长闲对长闲外,其它都能分胜负)。
按照这套规定也可以一定程度上丰富象棋策略(可以研究策略通过棋规来求胜求和,估计软件用这套规则对局,会有这种策略)。


IP属地:上海来自Android客户端1楼2024-10-16 20:14回复
    (1)将,杀,捉的定义,及其他基础概念:
    一:将
    将:一方行棋后,如果再走一步能吃掉对方老将就叫将军。
    二:杀
    杀:一方行棋后,如果再走一步可以连将杀将死对方老将就叫杀。(注:必须是连将杀,如果是缓杀,即不是步步将军则不算杀)
    连将:连续X步棋都是将军(无论是否将死,X为任意正整数,也不管对方怎么应将),那么把这X步棋一起称为连将。
    连将杀:每一步都是将军,无论对方如何行棋,都可以每步将军直到将死对方,则为连将杀。
    三:捉
    捉的定义就相对比较复杂了
    捉由捉子和捉源共同构成,比如车捉马,那么车是捉源,马是被捉的,马是捉子。
    捉分为普通捉和抽将捉。
    普通捉:一方行棋后,如果再走一步,就可以用己方的棋子(捉源)吃掉对方的一个(除老将外的)棋子(捉子);并且在己方这步棋行棋前,这步(由捉子和捉源构成的)捉还不存在,那么这步棋就叫做捉。(当然还有特例。)
    捉由捉子和捉源构成,只要捉子捉源其中一个改变,那就是一个新的“捉”。如果捉源和捉子都没有变,则还是原来就存在的“捉”,不是新的“捉”。
    送吃:一方行棋后,轮到对方走,如果对方的棋子(吃源)就可以吃掉我方的一个棋子(吃子);并且在己方这步棋行棋前,这步(由吃子和吃源构成的)送吃还不存在,那么这步棋就叫做送吃。
    抽将捉:一方行棋后,如果再走一步,可以连将对方,连将之后,对方无论如何行棋,要么被连将杀将死,要么只能解将的同时送吃,那么我方这步棋也记为“捉(抽将捉)”。(如果对方存在一种选择解将的同时不送吃,那我方的这步行棋就不是捉。)此时吃源就是这步棋的捉源,吃子就是这步棋的捉子(同样捉源不能是将帅兵卒,捉子不能是未过河的兵卒)。
    捉的特例:
    1,捉源(吃源)为将帅兵卒时,该步不记作捉,记为闲。
    2,捉子(吃子)为未过河的兵卒时,该步不记作捉,记为闲。
    四:闲
    闲:如果一步棋,不是将,杀,捉,则这步棋为闲。


    IP属地:上海2楼2024-10-16 20:16
    回复
      广告
      立即查看
      (2)每步棋以及循环的严重程度:
      如果双方局面循环三次,则对双方循环的严重程度进行判定。
      首先判断每一步棋的严重程度:
      每一步行棋的严重程度是:将军》杀=捉》闲。
      如果一步棋有两种严重程度,则按更严重的那个严重程度算。(比如一步棋既是将军又是捉,那就算将军,因为将军更严重)。
      将军是最严重。杀,捉是次等严重。闲就是闲。
      接下来判断整个循环的严重程度:
      每方整个循环的严重程度就是该循环中严重程度最低的那一步棋的严重程度。(比如我方循环中,有将军,有杀,有闲,那我方整个循环的严重程度就是闲;对方循环中,有将军,有捉,无闲,那对方整个循环的严重程度就是次等严重。)
      整个循环的严重程度也是:将军》杀=捉》闲


      IP属地:上海3楼2024-10-16 20:17
      回复
        (3)连打序列和判断步:
        序列:双方连续的几步棋。(比如:红第1步,黑第2步,红第3步,黑第4步。从第红1步棋到黑第4步棋,就是一个连续的序列,长度为4。注意序列必须是连续的,不能有中断。序列的最小长度为1.)
        满足以下全部条件的序列就是连打序列:
        1,连打序列中的每一步棋必须都是打(即将/杀/捉),不能是闲。
        2,连打序列之前的一步棋必须比连打序列的第一步棋严重程度要低。
        3,从连打序列的第二步算起,每一步的严重程度必须小于等于上一步。
        判断步:让局面第一次出现第三次循环的那步棋就叫“判断步”。


        IP属地:上海4楼2024-10-16 20:19
        回复
          (4)循环局面胜负判定:
          比较双方整个循环的严重程度,如果有一方整个循环的严重程度更严重,则判负。
          如果双方整个循环的严重程度都是闲,则和棋。
          如果双方整个循环的严重程度一样,但不是闲,则看“判断步”所在的连打序列的第一步是哪方下的,该方判负。


          IP属地:上海5楼2024-10-16 20:20
          回复
            最后,我这套规则没有“25回合内循环和棋红变招”的规定。


            IP属地:上海6楼2024-10-16 20:21
            回复


              IP属地:河南来自Android客户端7楼2024-10-16 20:33
              收起回复
                好了,棋规讲完。
                最后说明一下,为什么“捉”不看有根没根。首先是如果有根就不算捉的话,就会出现一楼图里那种赖和的情况。其次是为了执行方便,什么有根没根真根假根判断起来复杂,不如“能吃就算捉”简洁。而且,众所周知,兑子会简化局面容易和棋。所以“能吃就是捉”的话,就不允许长邀兑,保留了避兑的权力,保持局面复杂性,有利于减少和棋。


                IP属地:上海8楼2024-10-16 21:05
                回复
                  广告
                  立即查看
                  现在这个棋规应该没有“荒谬情况”了。
                  其实我挺好奇强软能用这个棋规发展出什么利用棋规的战术?


                  IP属地:上海9楼2024-10-16 21:06
                  收起回复
                    走韩国将棋路线,任何局面三次循环和棋,然后按所剩棋子分值定胜负,这个是最好方法。


                    IP属地:浙江10楼2024-10-17 21:23
                    收起回复
                      简单之至又十分科学还绝对公平的循环规则就是胜负象棋的循环规则。规则对双方都一样。没有偏袒任何一方,并且任何一方都能够把循环玩成循环战术!


                      IP属地:广东来自Android客户端11楼2024-10-18 11:03
                      收起回复
                        还有比下面的循环规则更简单更科学的吗?中国象棋用此规则,69个棋例可以丢进历史垃圾堆了。


                        IP属地:广东来自Android客户端12楼2024-10-18 11:09
                        收起回复
                          楼主一楼那个局面不是红胜吗?红为什么还要循环,弃一个兵,再进兵就杀棋了


                          IP属地:广东来自Android客户端13楼2024-10-18 11:15
                          收起回复
                            虽然我拟的是中国象棋循环局面的判决办法,但是原则上杀王棋都可以使用这套棋规。可以用来减少和棋,鼓励攻杀,减少赖和。如果其它杀王棋循环局面出现频率很高的话,都可以使用这套棋规。


                            IP属地:上海来自Android客户端14楼2024-10-18 19:50
                            回复
                              广告
                              立即查看
                              觉得这个规则可行,与中规皮卡鱼的判定有相似之处@丰见光


                              IP属地:广东来自Android客户端16楼2024-10-20 14:12
                              收起回复