# 五子棋 **Repository Path**: scratch-er/gomoku ## Basic Information - **Project Name**: 五子棋 - **Description**: 期末作业要做的五子棋项目 - **Primary Language**: C++ - **License**: GPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2021-05-25 - **Last Updated**: 2025-06-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: Gtkmm3, MFC, ncurses ## README # 五子棋 期末作业要做的五子棋项目 ## 概述 该项目由后端、CLI前端、GTK前端、独立的MFC程序四部分组成。可以跨平台编译、运行。除基础的玩家VS玩家的五子棋游戏之外,实现了新的游戏模式、自定义游戏以及存储、读取存档的功能。用户还可以在该项目提供的后端的基础上,用最少的代码量创建自己的游戏模式。 MFC程序完全参考课本(C/C++案例教程,清华大学出版社,ISBN`978-7-302-52438-0`)上的教程写成,只具有单一的游戏模式并且无法保存/读取存档。CLI前端和GTK前端基于完全独立编写的后端,具有完整的功能。后端代码位于`backend/`,命令行前端位于`cli_frontend/`,GTK前端位于`FiveRow_Gtkmm/`,MFC程序位于`FiveInARow/`。 ## 游戏规则及操作说明 ### 普通模式 普通模式即正常的五子棋,玩家1(黑方)对战玩家2(白方),黑白双方轮流走棋,最先使己方五颗棋子连成一线的一方获胜。注意超过五颗棋子连成一线则不算作获胜。 ### 混战模式 混战模式下,棋盘的一半方格在初始状态下会被禁用,玩家无法在被禁用的格子上走棋。每名玩家在自己的回合可以选择走棋或启用两个被禁用的格子。其余规则不变。 ### 自定义游戏 可以选择一个游戏模式为基础,自定义棋盘的尺寸并开始游戏。 ### 保存/读取存档 用户可以在游戏中途保存游戏,随后可以读取存档从之前的游戏进度继续。 请参见 [「GTK前端文档」](FiveRow_Gtkmm/README.md) [「CLI前端文档」](cli_frontend/README.md) [「MFC前端文档」](FiveInARow/README.md) ## 编译与安装 本项目的GTK前端、CLI前端使用CMake作为构建系统。CLI前端目前仅支持Linux/Mac系统。GTK前端支持Linux,Mac和Windows,需要安装`gtkmm3`作为依赖,在Windows下,推荐以MSYS2为编译环境。MFC程序需要在Visual Studio 2019环境下编译。 请参见 [「GTK前端文档」](FiveRow_Gtkmm/README.md) [「CLI前端文档」](cli_frontend/README.md) [「MFC前端文档」](FiveInARow/README.md) ## API文档 本项目采取前后端松耦合的方式。用户可以在该项目提供的后端的基础上,用最少的代码量创建自己的游戏模式,亦可以很方便地编写自己的前端。 [请参见「后端文档」](backend/README.md) ## 版权与致谢 MFC程序所使用的课本提供的代码和资源版权归课本原作者所有。除MFC程序之外的其他部分受[GPL3.0](LICENSE)约束。 GTK前端中使用了来自Breeze图标主题(作者:KDE美工组)和Adwaita图标主题(作者:Gnome美工组)的部分图标,在这里表示感谢。