# 四路围棋
**Repository Path**: siger100/fourgo
## Basic Information
- **Project Name**: 四路围棋
- **Description**: 汉语田字棋的4字版本,正好可以用来玩4路围棋,采用九天围棋的棋盘绘制方法,不落在交叉点上,落在半个田字格内。
- **Primary Language**: JavaScript
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 1
- **Created**: 2026-03-30
- **Last Updated**: 2026-04-05
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 四路围棋(黑白棋风格)
## 介绍
本项目是基于传统“四路围棋”规则的网页版实现,采用**黑白棋风格的格子落子界面**,取代了传统围棋的交叉点落子方式。棋子落在 4×4 的方格中心,视觉更接近黑白棋(奥赛罗),但保留了围棋的完整规则:气、提子、禁着点。
本版本灵感来源于“九天围棋”棋盘绘制思路,但将“点”改为“格”,使界面更清晰、易上手,适合初学者和儿童学习围棋基础逻辑。
> 汉语田字棋的4字版本,正好可以用来玩4路围棋,采用九天围棋的棋盘绘制方法,不落在交叉点上,落在半个田字格内。
#### 4路九天围棋棋谱
> 4路九天围棋棋谱,参照:网络视频四路围棋实盘制作!
## 软件架构
- **前端技术**:纯 HTML + CSS + JavaScript,无依赖库
- **棋盘结构**:使用 CSS Grid 布局构建 4×4 方格
- **落子逻辑**:点击格子触发落子,通过数组 `board` 记录状态
- **核心算法**:
- 使用 DFS 检查棋子群的“气”(空邻点)
- 实现提子机制:当对手棋群无气时自动清除
- 检测“自杀”(落子后自身无气且未提子)并禁止
- **交互设计**:实时显示当前轮到的玩家(黑/白),状态提示清晰
## 棋盘与规则说明

### 棋盘样式
- 每个格子大小:80×80 像素
- 边框为 1px 黑线,形成清晰网格
- 棋子为直径 60px 的圆形,居中于格内,带 2px 深灰边框
- 黑子:纯黑色背景
- 白子:纯白色背景
### 游戏规则(完整围棋规则简化版)
1. 黑子先行,双方轮流落子
2. 棋子必须落在空格内
3. 棋子或棋群必须有“气”(相邻的空格)才能存活
4. 当一方棋群被完全包围(无气)时,立即被提走
5. **禁着点**:不能下在会导致自己棋群无气且未提走对方棋子的位置
6. 无打劫规则(简化版,适合教学)
> ✅ **与传统围棋区别**:
> 不在交叉点落子,而在“格子”内落子,视觉更直观,更适合初学者理解“围地”概念。
## 使用说明
1. 打开 `fourgo.html` 文件,浏览器中直接运行
2. 点击任意空格落子,黑子先手
3. 系统自动检测提子并清除无气棋群
4. 每次落子后,状态栏提示当前轮到的玩家
5. 若落子违反规则(自杀),系统自动撤销,不执行
## 版本更新记录
### v1.0(2026-03-30)- [黑白棋风格重构](https://gitee.com/siger100/fourgo/issues/IHTG18 "将下面的4路围棋的 js 页游,修改成黑白棋风格的界面,落……")
- ✅ 将原“交叉点落子”改为“格子内落子”,界面更清晰
- ✅ 优化棋子大小与定位,增强视觉辨识度
- ✅ 保留完整围棋规则(气、提子、禁着点)
- ✅ 代码结构更简洁,注释完整,便于教学与二次开发
- ✅ 移除冗余样式,使用纯 CSS Grid 布局,兼容性更好
## 参与贡献
1. Fork 本仓库
2. 新建 `Feat_xxx` 分支
3. 提交代码
4. 创建 Pull Request
## 致谢
- 参考视频:网络四路围棋实盘教学
- 棋盘灵感:九天围棋绘制方法
- 本项目适合用于围棋启蒙教学、编程入门实践、儿童逻辑思维训练
> 项目开源,欢迎用于教育用途。非商业用途可自由传播。