You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Prolog 'is'语句报错调试:WWESupercard卡牌对战统计逻辑问题

WWESupercard卡牌对战的Prolog实现问题

我需要实现WWESupercard游戏中的两张卡牌对战逻辑:单独比较每项属性及所有组合(共10次比较),当一方获胜次数超过50%(即6/10)时判定为胜。

目前我在使用Prolog的is语句时遇到了问题,以下是我仅用基础属性(未使用组合属性)进行测试的代码尝试:

leGana(X,Y) :- T is 0, 
              ((A is 0, (pwr(X,Y) -> A1 is A+1));
               (B is 0, (tgh(X,Y) -> B1 is B+1));
               (C is 0, (spd(X,Y) -> C1 is C+1));
               (D is 0, (cha(X,Y) -> D1 is D+1))),
          T1 is T+A1+B1+C1+D1, T1 > 2.

leGana(X,Y) :- T is 0, 
                ((pwr(X,Y) -> T is T+1);
                 (tgh(X,Y) -> T is T+1);
                 (spd(X,Y) -> T is T+1);
                 (cha(X,Y) -> T is T+1)),
            T1 > 2.

我尝试了多种方式,但反复出现两类错误:

  • 执行T is T+1时报错,提示0 is 0+1并失败;
  • 在第一版代码中,执行A1 is A+1得到1 is 0+1后,直接跳转到最后一行,出现T1 is 0+1+_1543+_1546...的未绑定变量问题。

内容的提问来源于stack exchange,提问作者ZMaru

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 21:15:32