Qt终极教程——用Qt编程实现中国象棋游戏

目录

  • Qt终极教程——用Qt编程实现中国象棋游戏
    • 简介
    • 运行可执行程序体验象棋游戏
    • Qt 安装
    • 源代码的编译、运行与调试
    • 生成预编译的可执行程序

简介

本文介绍如何利用Qt编程实现一款简单的中国象棋游戏,游戏包括人机对战、人人对战、以及简单的网络对战等多种对战模式,程序启动后的对战模式选择界面如下图所示。

本游戏程序完全基于Qt框架利用C++编程语言实现,笔者使用的Qt版本为Qt 5.4.1 x86-mingw491,下面的百度网盘下载地址中上传了Qt 5.4.1 x86-mingw491版本的Windows安装包,并提供了象棋程序的源代码以及预编译的可执行程序

完整资料下载链接:百度网盘
提取码:r027

百度网盘中的资料如下图所示:

本游戏程序已经包含了一个简单的本地象棋游戏开发所需的基本元素,读者可以参考其中的Qt界面设计Qt网络通信以及人机对弈等设计思想,并在此次基础上进行任意的二次开发。对于本程序中可能出现的不完善之处以及代码漏洞,敬请谅解。

运行可执行程序体验象棋游戏

将百度网盘资料中的“可执行程序”目录下的chess_release.zip文件下载到本地并解压,双击其中的Chess.exe可执行文件即可打开象棋游戏程序进入上一节提到的对战模式选择界面,以“人机对战”模式为例,单击“人机对战”即可进入人机对战的象棋游戏界面,显示效果如下所示:

点击红方棋子,即可进行走棋操作,随后程序会控制黑方棋子进行相应操作。“Back”键可用于悔棋。

Qt 安装

将百度网盘资料中的“Qt安装包”目录下的qt-opensource-windows-x86-mingw491_opengl-5.4.1.exe文件下载到本地,双击该Qt安装包,按照默认设置一直“下一步”,当进入“选择组件”设置时,可以按照如下方式设置(仅供参考,为了提高安装速度,就没有勾选“Sources”组件),其他设置均按照默认设置即可。

本安装程序执行完毕后即可将Qt 5.4.1 x86-mingw491版本安装到本地,打开Windows的开始菜单,即可看到安装好的Qt程序,如下图所示。

源代码的编译、运行与调试

将百度网盘资料中的“源代码”目录下的Chess.zip文件下载到本地,并解压到合适的路径下(最好不要带有中文路径),例如本人将该压缩文件解压到了D:\chess_project\路径下。

通过Windows开始菜单打开Qt Creator程序,按照下图所示的方式选择“Open Project”,并选中程序源代码中的Qt项目文件D:\chess_project\Chess\Chess.pro

项目加载成功后显示的项目结构如下图所示:

根据源代码所在的具体路径,我们接下来在Qt Creator中设置程序编译的构建目录,具体操作参考下图,我们将程序Debug编译的构建目录设置为D:\chess_project\build-Chess-Desktop_Qt_5_4_1_MinGW_32bit-Debug

同理,我们按照下图操作,可以将程序Release编译的构建目录设置为D:\chess_project\build-Chess-Desktop_Qt_5_4_1_MinGW_32bit-Release

构建目录设置完成之后,我们就可以在期望的编译模式(Debug或Release模式)下通过点击Qt Creator的“构建项目”按钮或通过Ctrl+B快捷键实现对程序的编译。编译模式选择按钮和构建项目按钮的具体位置如下下图所示:

在“Debug”模式下构建项目之后,即可通过下图所示的按钮运行程序或对程序进行调试。

生成预编译的可执行程序

在“Release”模式下构建项目之后,会在D:\chess_project\build-Chess-Desktop_Qt_5_4_1_MinGW_32bit-Release\release目录下构建Release版本的中国象棋程序,该可执行程序更加精简,将不支持代码调试;同理,在“Debug”模式下,会在目录D:\chess_project\build-Chess-Desktop_Qt_5_4_1_MinGW_32bit-Debug\debug下构建Debug版本程序,其支持代码调试。下面我们将利用构建的Release版本程序生成预编译的可执行程序,这样程序将可以复制到任意没有安装Qt的Windows系统上运行。

首先,我们可以尝试双击打开D:\chess_project\build-Chess-Desktop_Qt_5_4_1_MinGW_32bit-Release\release目录中生成的可执行程序“Chess.exe”,这时会提示如下图所示的若干系统错误。

上述错误是由于生成的程序无法访问Qt提供的依赖库造成的,这可以通过Qt提供的开发工具windeployqt解决,我们通过Windows开始菜单打开Qt环境的命令行窗口,如下图所示。

在该命令行窗口中,调用工具windeployqt,并指定构建的Qt可执行文件,即可将可执行程序运行需要依赖的Qt库文件复制到可执行程序所在的目录下,使可执行程序可以直接双击运行,具体执行命令如下:

windeployqt D:\chess_project\build-Chess-Desktop_Qt_5_4_1_MinGW_32bit-Release\release\Chess.exe

命令行中的命令运行情况如下:

命令执行完成后,可执行程序Chess.exe所在目录D:\chess_project\build-Chess-Desktop_Qt_5_4_1_MinGW_32bit-Release\release\中会添加许多程序运行需要依赖的库文件,如下图所示:

此时,双击Chess.exe文件,即可直接打开我们的象棋游戏,并打开对战模式选择界面,这时程序将可以复制到任意没有安装Qt的Windows系统上运行。将Chess.exe文件所在的整个文件夹压缩成一个压缩文件,即可得到百度网盘资料中的“可执行程序”目录中的压缩文件。

Qt终极教程——用Qt编程实现中国象棋游戏(提供源代码和程序编译运行教程)相关推荐

  1. c语言编程一个象棋游戏,急求:C语言编写的中国象棋游戏一个

    急求:C语言编写的中国象棋游戏一个 來源:互聯網  2009-09-08 12:30:35  評論 分類: 電腦/網絡 >> 程序設計 >> 其他編程語言 問題描述: 由于学习 ...

  2. C/C++编程笔记:C语言打造中国象棋游戏,项目源代码分享!

    中国象棋是起源于中国的一种棋,属于二人对抗性游戏的一种,在中国有着悠久的历史.由于用具简单,趣味性强,成为流行极为广泛的棋艺活动. 它是中国棋文化,也是中华民族的文化瑰宝,它源远流长,趣味浓厚,基本规 ...

  3. 中国象棋游戏Chess(3) - 实现走棋规则

    棋盘的绘制和走棋参看博文:中国象棋游戏Chess(1) - 棋盘绘制以及棋子的绘制,中国象棋游戏Chess(2) - 走棋 现在重新整理之前写的代码,并且对于每个棋子的走棋规则都进行了限制,不像之前那 ...

  4. 基于python的游戏设计与实现-基于Python的网络中国象棋游戏设计与实现

    基于Python的网络中国象棋游戏设计与实现 摘要中国象棋是一种家喻户晓的棋类游戏,随着互联网时代的到来,人们的娱乐方式也逐渐向PC端和移动端上发展.本文将传统的中国象棋游戏和当下的互联网技术结合作为 ...

  5. Java+Swing实现中国象棋游戏

    目录 一.系统介绍 1.开发环境 2.技术选型 3.系统功能 二.系统展示 1.首页 2.黑棋走 3.红旗走 三.部分代码 ChineseCheseRule.java 四.其他 1.更多系统 Java ...

  6. 【180616】中国象棋游戏的VC++源码

    在电脑上是不是经常见到这款中国象棋游戏啊?本游戏包括单机版和网络版,今天终于见到它的神秘面纱了,它的源代码文件.超强难度的搜索引擎和算法.估值函数以及开局库,还有大量的开局库资料都将为您展现出来.研究 ...

  7. C#中国象棋+游戏大厅 服务器 + 客户端源码

    来源:www.ajerp.com/bbs C#中国象棋+游戏大厅 服务器 + 客户端源码 源码开源 C#版中国象棋(附游戏大厅) 基于前人大虾的修改版 主要用委托实现 服务器支持在线人数,大厅桌数的设 ...

  8. 【181008】VC++写的中国象棋游戏源程序

    VC++写的中国象棋游戏源程序,界面看上去挺不错,可以选择人与电脑对战,通过网络人与人对战,程序虽小,不过考验的编程水平是多方面的,因此通过游戏我们有学习不少实用的技巧.简要说明一下:游戏网络运行方法 ...

  9. 朋友写的一个中国象棋游戏,JAVA代码

    朋友写的一个中国象棋游戏,JAVA代码.有兴趣的可以这里下载:中国象棋下载 (1)地址,不知现在还能下否....中国象棋历史悠久,吸引了无数的人研究,现对中国象棋的对战和实现棋谱的制作做如下的设计和说 ...

最新文章

  1. mxnet nd中的asscalar() 向量转换为标量 转
  2. 请求中文乱码_【1】执行Http请求访问网页
  3. C++:MSVCRTD.lib(crtexe.obj) : error LNK2019: 无法解析的外部符号 _main,该符号在函数 ___tmainCRTStart...
  4. mysql 执行计划 代价_mysql explain执行计划详解
  5. JSF基于事件的交流:新派方法
  6. mysql 6.5安装配置,RedHat6.5安装MySQL5.7教程详解
  7. 认识 java JVM虚拟机选项 Xms Xmx PermSize MaxPermSize 区别
  8. (08)Vivado时钟约束
  9. 我的第一次--我与51CTO的故事
  10. 【bzoj 3252】攻略
  11. linux访问不了apache页面,nginx做前端,apache部分页面不能访问
  12. 压缩包密码字典_压缩包密码pojie!
  13. 【Web】关于Session过期/失效的理解
  14. ReactOS:基于Windows的开源操作系统
  15. laravel集成谷歌验证_如何将Google的两因素身份验证添加到Laravel
  16. HTML----锚标签
  17. html页面添加遮罩层,在浏览器窗口上添加遮罩层的方法
  18. 数据系统架构-6.BI数据展示平台
  19. 大学考试的LINUX试题, 全做对了,保证你面试没问题(转)
  20. 小楼昨夜又春风,你知ysoserial-Gadget-URLDNS多少?

热门文章

  1. unity3d学习笔记(五)--结合Mecanim实现怪物AI
  2. 不同场景下应该如何选择周界安防视频云服务?
  3. linux 360网卡开热点,扔掉360:Linux下无线网卡作WiFi路由器(转薄荷开源网)
  4. kali+linux+手机装热点,详解:手机安装Kali Linux
  5. 了解Ceph 分布式存储
  6. python提取网页表格信息_python 提取网页表格数据库数据库
  7. 重庆理工大学计算机类分流,重庆理工大学2020级按类招生专业分流方案
  8. java根据值获取枚举_java – 我可以根据其字段的值获取枚举吗?
  9. powermill四轴联动圆雕木雕编程加工视频教程
  10. 可编程直流电源的介绍 什么是可编程直流电源