乐于分享
好东西不私藏

优秀实训项目《五子棋大师》分享(软件253班胥凡)

优秀实训项目《五子棋大师》分享(软件253班胥凡)

《五子棋大师》项目复盘

软件技术实训报告

汇报人简介:胥凡 ,软件253班的大一学生。对C语言学习较为感兴趣。

指导老师:沈涵飞

汇报时间:2026年6月26日

汇报场合:若水楼1702软件技术专业C语言实训项目展示

项目简介

《五子棋大师》是一款基于C语言原生Win32 API开发的单机图形化五子棋游戏。项目实现了完整的交互界面,并内置了具备三种难度梯度的“启发式评估”AI对战算法。

项目特色

1.全图形化界面展示 交互完整

      没有调用 EasyX 或其他的图形库,只依靠 Windows 32 GDI (图形设备接口)绘制所有界面,完全在“WM_PAINT”中完成,实现视觉精致的图形页面。并且游戏说明、战绩统计、游戏界面、难度切换、游戏结束鼓励框实现功能闭环,让用户体验友好。

2.人机博弈对战机制

      AI走棋的本质是评估每个空位的得分,选出最优位置。采用启发式分值评估算法,通过调整进攻与防守的权重比例,划分简单 / 中等 / 困难三档 AI 强度:简单3:1,中等7:3,困难10;8),让AI表现出不同对弈强度。三种难度实施切换,评分算法兼顾攻守,让对局既有挑战性又有学习空间。AI 自动扫描棋盘落子点位、计算最优走法,对局结束自动弹出胜负提示并统计双方战绩,实现真实人机对抗体验。

项目开发技巧

      本次五子棋项目以C-Free作为核心开发编译环境,依托软件原生编译调试功能完成基础代码编写、程序运行与基础 BUG 排查,保障代码稳定编译输出 Windows 桌面程序。同时搭配 Deepseek、Trae CN 两款 AI 辅助工具协同开发。

整体项目遵循「先搭骨架,再注入灵魂」分层递进式开发思路,复刻企业小型软件标准化开发流程,分三大阶段落地完整五子棋程序:

1.视觉框架搭建阶段
     依托 Windows 原生WM_PAINT绘图消息,从零绘制棋盘线条、黑白棋子、主菜单弹窗、胜负提示面板等全部可视化界面,优先保证界面布局美观、窗口渲染流畅,搭建起程序完整视觉骨架。
2.交互与底层数据打通阶段
     处理WM_LBUTTONDOWN鼠标左键点击消息,实现鼠标落子、点位识别、界面实时刷新交互;设计二维数组作为棋盘核心数据容器,存储每一格棋子状态、坐标信息,实现点击落子、棋盘数据同步更新基础对局功能。
3.AI 博弈核心算法优化阶段(开发工作量最大环节)
      搭建四方向全局扫描判断机制,自动遍历棋盘横向、纵向、两条斜线所有点位,完成五子连珠胜负判定;设计分层 AI 博弈分值评估体系,反复微调 AI 进攻、防守两类分值权重,划分简单、中等、困难三档对战难度,让 AI 具备自主预判、主动堵截、主动进攻的智能下棋逻辑,为程序赋予核心对战 “灵魂”。

1. 利用Windows 32 GDI实现全图形界面显示,利用AIPlay 模块根据当前难度系数实行动态攻守权重配比。

2. 先独立完成基础功能,遇到逻辑 bug、冗余代码时借助 AI 优化,多次运行测试、调整参数,慢慢完善程序。

实训收获

      本次 C 语言实训开发《五子棋大师》是一次极具挑战的成长经历。初期仅掌握基础语法,面对 Win32 绘图、AI 博弈算法无从下手,按照 “先框架、后逻辑、再优化” 的思路分步攻坚,逐个攻克界面绘制、鼠标点击响应、棋盘数据存储、AI 权重调参等难点。

      在调试 AI 算法阶段,为平衡人机对战难度,反复修改进攻防守分值配比,不断测试对局效果,深刻体会到算法优化的乐趣;借助工具辅助修复代码漏洞,也学会高效解决开发 bug 的实用技巧。

      从前只会写简单控制台小程序,如今能独立完成带图形界面、智能算法的完整桌面游戏,不仅夯实了 C 语言编程功底,更掌握了完整项目开发思路。这次实训让我明白,编程学习不能只停留在背诵语法,只有落地实战、独立完成项目,才能真正吃透专业知识。

责编丨徐平 刘书言 

排版丨徐平 刘书言

审核丨沈涵飞