AI算法 每日算法 — 使用java实现五子棋:Renju禁手规则判定与三三禁手检测 五子棋到了高手层面,胜负往往不是被"连成五子"终结的,而是被禁手终结的:黑棋一旦形成"双三"、"四四"或"长连",当场判负。这条规则是为了平衡先手优势,但它给 AI...
AI算法 每日算法 — 使用java实现冰壶游戏:蒙特卡洛树搜索与掷壶权重评估 冰壶是少见的"信息完全、执行不确定"的博弈:你知道所有壶的位置,但你的每一次投掷都可能因为冰面摩擦、旋转(curl)和刷冰力度而偏离预期 10~30...
AI算法 每日算法 — 使用java实现斗地主:双明手蒙特卡洛采样与叫牌期望估计 斗地主是不完全信息博弈:你看不到对手的手牌,而叫牌阶段你连对手的牌力都一无所知。这个阶段的决策——"叫不叫地主"——直接决定了整局的胜率,但传统 AI...
AI算法 每日算法 — 使用java实现打地鼠:斜率优化DP与凸包维护 一、游戏场景:打地鼠其实是一道最优化题 街机厅里的打地鼠(Whac-A-Mole)看起来只是比谁手快:地鼠随机冒头,玩家在 3×3...
AI算法 每日算法 — 使用java实现扫雷:整数规划松弛与分支定界求解 一、游戏场景:扫雷的"边界格"是一道 0-1 规划 扫雷(Minesweeper)的规则人人皆知:点开格子,数字代表周围 8...
AI算法 每日算法 — 使用java实现2048:束搜索前瞻与期望值分层评估 一、游戏场景:2048 的难点是"随机性" 2048 的规则十行字就能说完:上下左右滑动,相同数字合并翻倍,每次滑动后随机在空格生成一个 2(90%)或 4(10%)。但要做...
AI算法 每日算法 — 使用java实现青蛙过河:单调队列优化DP与双端滑窗 一、游戏场景:青蛙过河的两种经典玩法 "青蛙过河"在两个方向上都是算法经典: 变体 A(最少跳跃数):一排石头,青蛙从岸边出发,每跳不超过...
AI算法 每日算法 — 使用java实现八皇后:Burnside引理与置换群轨道计数 一、游戏场景:八皇后有多少种"本质不同"的解 八皇后问题(Eight Queens):在 8×8 棋盘上放 8 个皇后,使任意两个皇后不在同一行、同一列、同一对角线。入门做法是回溯 +...
AI算法 每日算法 — 使用java实现阿瓦隆:约束传播与信息熵投票推理 阿瓦隆是典型的"不完全信息 + 有限发言"推理游戏:好人只能看到自己的身份,坏人互相认识,所有人都要靠投票记录推断阵营。本文用 Java...