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

如何让gnubg适配土耳其双陆棋(Tavla)规则?

能否让gnubg适配Tavla土耳其双陆棋规则?

Tavla是土耳其版双陆棋,核心规则如下:

  • 己方大本营内禁止“打了就跑”;
  • 单独落在某点的棋子称为blot(孤棋),若对手棋子落在该点,孤棋会被击中并移至bar(栏位);
  • 在己方大本营击中对手孤棋后,不能移动该攻击棋子寻求掩护,必须用另一枚棋子覆盖它或让其保持暴露状态。

已尝试的操作(均未成功)

  • 在gnubg图形界面中查找并启用该规则,未找到相关选项;
  • 阅读gnubg源码判断是否可通过自定义编译适配规则,在eval.c第1039行找到一段与攻击判断相关的代码,但未能完全理解逻辑。

相关代码片段(注释已译为中文)

/* 遍历所有可能击中孤棋的点 */
    for (i = (nBoard > 2)? 23 : 21; i >= 0; i--)
        /* 如果该点存在一枚孤棋 */
        if (anBoardOpp[i] == 1)
            /* 遍历所有可能发起攻击的己方点位 */
            for (j = 24 - i; j < 25; j++)
                /* 如果己方该点位有棋子,且(不在大本营内或该点位棋子数不等于2) */
                if (anBoard[j] && !(j < 6 && anBoard[j] == 2))
                    /* 遍历所有能从该点位发起攻击的骰子组合 */
                    for (n = 0; n < 5; n++) {
                        if (aanCombination[j - 24 + i][n] == -1)
                            break;

                        /* 获取该骰子组合所需经过的中间点位 */
                        pi = aIntermediate + aanCombination[j - 24 + i][n];

                        if (pi->fAll) {
                            /* 若nFaces为1,则没有中间点位需要经过 */
                            if (pi->nFaces > 1) {
                                /* 所有中间点位都必须可通行 */
                                for (k = 0; k < 3 && pi->anIntermediate[k] > 0; k++)
                                    if (anBoardOpp[i - pi->anIntermediate[k]] > 1)
                                        /* 中间点位被阻挡,跳过此次攻击判断 */
                                        goto cannot_hit;
                            }
                        } else {
                            /* 只需两个中间点位中的一个可通行即可 */
                            if (anBoardOpp[i - pi->anIntermediate[0]] > 1 && anBoardOpp[i - pi->anIntermediate[1]] > 1) {
                                /* 两个中间点位都被阻挡,跳过此次攻击判断 */
                                goto cannot_hit;
                            }
                        }

                        /* 记录该骰子组合可发起的攻击 */
                        aHit[aanCombination[j - 24 + i][n]] |= 1 << j;
                      cannot_hit:;
                    }

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 15:38:15