效果图
ui不咋会设计
选择页面
游戏页面
简介
本项目是一个基于 Qt 框架开发的五子棋游戏应用程序,支持双人对战和人机对战两种模式。项目包含登录页面、主游戏窗口以及人机对战逻辑。
功能模块
1. 登录页面 (Loginpage)
-
功能:提供用户选择游戏模式的入口。
-
实现:
-
用户可以通过点击按钮选择“双人对战”或“人机对战”模式。
-
根据用户选择,程序会加载相应的主窗口。
-
2. 主游戏窗口 (MainWindow)
-
功能:提供五子棋游戏的基本界面和交互功能。
-
实现:
-
使用
QGraphicsScene
和QGraphicsView
绘制棋盘和棋子。 -
支持鼠标点击落子,实时更新棋盘状态。
-
提供胜负判断功能,当有一方获胜时,弹出提示框显示结果。
-
3. 人机对战窗口 (MainWindow_playwithRobot)
-
功能:提供人机对战模式,玩家可以与简单的 AI 对手进行游戏。
-
实现:
-
使用评分表算法实现弱人工智能,根据当前棋盘状态选择最优落子点。
-
界面交互与主游戏窗口一致,在玩家落子后自动进行下一步操作。
-
4. 核心逻辑
-
棋盘绘制:
-
使用
QGraphicsScene
绘制 15x15 的棋盘网格。 -
每个棋子大小为 45x45 像素,支持抗锯齿渲染。
-
-
胜负判断:
-
检查横向、纵向和两个对角线方向是否有连续五个相同的棋子。
-
当检测到胜利条件时,弹出提示框并结束游戏。
-
技术特点
-
Qt 框架:基于 Qt 5.x 开发,使用 QGraphicsView 模块实现棋盘和棋子的绘制。
-
事件驱动:通过鼠标点击事件实现玩家落子操作。
-
简单 AI:使用评分表算法实现人机对战功能,AI 会根据棋盘状态选择最优落子点。
-
模块化设计:登录页面、主窗口和人机对战窗口分别实现不同功能,代码结构清晰。
运行方式
-
启动程序后,进入登录页面,选择游戏模式。
-
根据选择进入对应的主窗口:
-
双人对战:两名玩家轮流点击棋盘落子。
-
人机对战:玩家与 AI 轮流落子,AI 会自动选择最优位置。
-
-
当有一方获胜时,程序会弹出提示框并结束游戏。
源代码附在后面
loginpage.cpp | cpp file | 1 KB |
loginpage.h | h file | 1 KB |
loginpage.ui | Qt UI file | 2 KB |
main.cpp | cpp file | 1 KB |
mainwindow.cpp | cpp file | 5 KB |
mainwindow.h | h file | 1 KB |
mainwindow.ui | Qt UI file | 1 KB |
mainwindow_playwithrobot.cpp | cpp file | 11 KB |
mainwindow_playwithrobot.h | h file | 1 KB |
Wuziqi.pro | pro file | 1 KB |
Wuziqi.pro.user | Per-User Project Options | 20 KB |