Pages

Friday, 18 August 2023

一个基于python的围棋程序StupidGo

 

一个围棋程序,实现了人人对战、自动提子、判定胜负等功能。

主要功能

  1. 落子后自动提去对方无气之子。
  2. 基于中国规则数子法的半自动胜负判断:
    1. 需要在下完单官之后点击“确认终局”按钮
    2. 程序会自动提去一部分死子,接着需要手动点击去除死子(无论如何落子也无法形成双眼的棋子)
    3. 手动提死子时,可以一键提掉与相关死子,一般来说点击2-4次即可提取完成。
    4. 点击"提完了"按钮,自动数子计算胜负,包括赢多少子。
  3. 使用包干用时制规则的自动棋钟。

快速开始

  1. 准备 python 环境,3.10 是我使用的 python 版本,其他 python3 版本应该也可以运行。
  2. 将 main.py/GoCore.py/GoBoard.py 文件置于同一目录下,运行 main.py 即可。
  3. 黑白轮流落子。
  4. 在走完所有单官后,点击“确认终局”,按提示提掉死子,再点击“提完了”,会自动计算胜负,以及赢得子数

注意:按照中国规则,需要在终局前把单官走完、终局后把死子提尽。也就是说,数子时,任意空交叉点组成的块都只与一种颜色的棋子相邻(都指在上下左右的意义上),否则报错。

详细规则

本程序使用的规则主体为中国规则,计时棋钟使用包干用时制。

详见详细规则

具体实现

本程序对于规则的具体实现方法。

详见具体实现

from https://github.com/yy4382/StupidGo

No comments:

Post a Comment