象棋程序判断输赢的规则如下:
将死对方的将或帅:
当一方的将或帅被对方的棋子逼到边界(即九宫格四个角落),或者被对方的其他棋子所困,无法移动,即为“将死”。此时对手必须立即认输,游戏结束。
困毙对方所有棋子:
在某些情况下,即使对方没有将自己的将或帅移动到边界,或者没有处于被困状态,只要对手的所有棋子都被自己所控制,无法移动,也视为游戏失败,即“困毙”。
双方轮流走动算和:
只要双方在规定时间内都能构成有效的移动,那么即使对方的将或帅处于不利位置,也无需认输或寻找其他方法,直接算和。
长将不变,长将一方算输:
如果一方在连续多次走棋中,每次走棋都只能威胁到对方的将或帅,而不能形成有效的攻击或防守,则判定为长将,长将一方算输。
违反比赛规则:
如果一方在比赛中违反比赛规则,如走棋超出步时限制、超时、逃跑等,也会被判负。
认输:
如果一方主动认输,则直接判定该方输棋。
提议作和并同意:
如果一方提议作和,另一方表示同意,则判定为和棋。
自然限着的回合规定:
在连续60个回合中(也可根据比赛等级酌减),双方都没有吃过一个棋子,则判定为和棋。
总结来说,象棋程序通过以上规则来判断输赢。在实际应用中,程序会结合具体对局情况,逐一检查上述条件,最终确定比赛结果。