Qt CMake 中国象棋程序实现

news2024/11/28 7:27:04

前驱课程

C++自学精简实践教程 目录(必读)

C++数据结构与算法实现(目录)

Qt 入门实战教程(目录)

项目初衷

为学习 Qt 的人提供一个合适的有一定难度的综合型练习项目。

在学会写代码之前,先看别人怎么写的代码。深入其中,扩展完善。

最大限度的模拟企业开发的真实场景。

运行效果

中国象棋的坐标,9列

项目目标

让学生能够理解并扩展一个3700行左右的Qt CMake项目;会使用Qt的QPainter绘图;

理解并会使用状态模式开发;理解现有框架代码,并模仿现有代码完成部分功能;

项目难度

项目难度和企业业务开发比较接近,难度略低于企业项目;难度和企业开发一样在业务逻辑代码而非界面部分;

这个作业的难度大概和欧美大二数据结构Project的作业难度不相上下。

项目需求

学生需要完成如下内容:

走棋效果

1 界面选择一个棋子走棋时,需要呈现被选中的效果;

2 界面选择一个棋子走到目的地时,如果这个棋子可以走到那里,目的地也要呈现被选中的效果;

效果如下图所示:

动图封面

作业代码量

总共需要实现10处代码:每处少的一行,多的三五行;另外实现车的走棋和相的走棋。

需要填写代码的地方

C++中国象棋实现设计文档

为了让大家了解中国象棋软件的实现思路,实现方法,有一个更加详细准确的理解,我提供了一份设计文档。

作为大家的重要的参考资料。

有了这个文档,再加上阅读代码,基本上就可以准确的把握中国象棋程序的方方面面。

文档会和启动代码一起发给大家。

设计文档部分内容截图展示:

设计文档部分内容截图展示1

设计文档部分内容截图展示2

设计文档部分内容截图展示3

开发环境搭建

一定要严格使用下面的教程安装QT,从而使用QtCreator 开发环境。

Windows Qt 5.12.10下载与安装

不再使用 Visual Studio 2022 + QT Vs Tools 开发环境,主要是因为降低开发环境的复杂程度,直接使用 QtCreator比较简单。

QtCreator打开调试CMake工程

启动代码下载

百度云下载链接

链接:https://pan.baidu.com/s/1mtRY4dln_yhaXlgU1ewDyg

提取码:1357

结项验证

走棋效果验证

走棋效果验证因为涉及到UI界面交互,所以不好用计算机自动验证。

这个可以根据上文中给出的动态图自己验证,也可以把可执行程序发给我,或者代码发给我,我来验证。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/976056.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

计算机竞赛 基于深度学习的人脸性别年龄识别 - 图像识别 opencv

文章目录 0 前言1 课题描述2 实现效果3 算法实现原理3.1 数据集3.2 深度学习识别算法3.3 特征提取主干网络3.4 总体实现流程 4 具体实现4.1 预训练数据格式4.2 部分实现代码 5 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 毕业设计…

基于Java+SpringBoot+Vue前后端分离论坛系统设计和实现

博主介绍:✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专…

2000-2022年上市公司融资约束指数(KZ、SA、FC和WW指数)(含原始数据、方法说明和计算结果)

2000-2022年上市公司融资约束指数(KZ、SA和WW指数)(含原始数据和计算结果) 1、时间跨度:2000-2022年 2、区域范围:沪深A股上市公司 3、指标说明: 证券代码、证券简称、统计截止日期、是否剔…

SSD202D-编译固件重启无法进入kernel

今天打包发现我的固件一直重启,我一直以为是没升级好; 然后根据log发现在进入kernel的时候挂掉了 汇编都暴出来了,这就很焦灼 我查看对比正常启动的log,boot一模一样,等了很久之后会有概率进系统 我要查看问题在哪里,搞得焦头烂额 1.我用以前的固件确认一下问题是不是在板…

高忆管理:证券账户国债逆回购怎么操作?

国债逆回购的本质就是一种短期贷款,个人经过国债回购商场把自己的资金借出去,取得固定的利息收益,那么,证券账户国债逆回购怎样操作?怎样在股票账户上买国债逆回购?下面高忆管理为我们准备了相关内容&#…

Editplus打开当前文件所在的文件夹

一个小技巧:Editplus打开当前文件所在的文件夹,备忘记录一下。 1、打开目录窗口 AltShift3,打开目录窗口(Directory Window),这是开关键,再按一次会关闭目录窗口。 2、打开文件夹 在“目录窗…

git代码撤销回滚只看这一篇就足够了!

1. 代码撤销 目前大家都在使用git,在项目开发中,总会遇到提交的代码有问题,想要撤销回滚的操作,关于撤销回滚代码单独给大家介绍一下。   正常的提交代码如果要提交到远程仓库有下边3步命令: git add . ------------…

软件测试/测试开发丨Web自动化 测试用例流程设计

点此获取更多相关资料 本文为霍格沃兹测试开发学社学员学习笔记分享 原文链接:https://ceshiren.com/t/topic/27173 一、测试用例通用结构回顾 1.1、现有测试用例存在的问题 可维护性差可读性差稳定性差 1.2、用例结构设计 测试用例的编排测试用例的项目结构 1…

RobotFramework自动化测试框架系列学习-----(一)简介、搭建、运行

一、简介 基于Python的关键字驱动的自动化框架。 1.基于Python:就是由python语言开发的这个框架。 2.关键字驱动:关键字驱动测试又称为表格驱动测试,是自动化测试的一种方法,是数据测试的一种改进方法。关键字驱动主要包括测试步骤…

利用vba处理Excel表格数据实现键值转化,适用于将编码转化成对应的文本

最近遇到了一个甲方需要提供系统登录的用户名单和对应的角色权限内容。无奈直接从数据库导出的数据对应的都是编码,没有转成中文,想着偷个懒能不能直接用Excel直接转,网上看了一下有修改单元格格式的,但需要编码是2到3个。多的就用…

HyperDock 1.8.0.10(Dock优化工具)

HyperDock 是一款为 macOS 设计的实用工具,它提供了许多方便快捷的功能,使您能够更高效地管理和操作应用程序窗口。 首先,HyperDock 提供了类似于 Windows 7 的任务栏预览功能。当您将鼠标悬停在应用程序图标上时,会显示该应用程…

C++入门基础知识总结(超详细思维导图)

开门见山 思维导图奉上 引用和指针的区别宏宏的优缺点 C中替代宏C和C的区别 !!! 详细部分参考该博客:从C快速入门C (命名空间、引用、函数重载) !!! 引用和指针的区别 ● 引用就…

cin、cin.getline()、getline()的用法【C++】

一、cin>> 用法1&#xff1a;输入一个数字或字符 #include <iostream> using namespace std; int main () {int a,b;cin>>a>>b;cout<<ab<<endl;return 0; } 用法2&#xff1a;接收一个字符串&#xff0c;遇“空格”、“TAB”、“回车”…

气导耳机有哪些品牌?市面上气传导耳机哪家好?

​随着人们对运动健康的重视&#xff0c;越来越多的人开始关注运动时佩戴的耳机。然而&#xff0c;传统的耳机在运动时往往会受到限制&#xff0c;而气传导耳机则可以避免这些问题&#xff0c;为用户带来更加舒适和便捷的使用体验。今天就来展开说说&#xff0c;市面上气传导耳…

【程序员必知必会3】ClickHouse和Hive究竟哪些区别

ClickHouse和Hive究竟哪些区别 ClickHouse和Hive都是用于大数据处理和分析的分布式存储和计算系统&#xff0c;但它们之间存在一些区别&#xff1a; 架构&#xff1a;ClickHouse采用列式存储和向量化执行引擎&#xff0c;可以实现亚秒级别的数据查询。而Hive采用基于Hadoop的数…

设置Linux CentOS7桥接模式连网

在虚拟机上安装centos7系统后&#xff0c;首要任务就是设置网络。 我们在文章《设置linux centos7连接网络》中讨论了如何设置NAT模式连网。本文讨论如何在设置好NAT模式后&#xff0c;调换为桥接模式。 仍采用图形化方式设置方法。 一、查看物理机网络 把虚拟机设置为桥接…

JDK源码解析-HashMap面试题

1. HashMap类 * HashMap底层数据结构(为什么引入红黑树、存储数据的过程、哈希碰撞相关问题)* HashMap成员变量(初始化容量是多少、负载因子、数组长度为什么是2的n次幂)* HashMap扩容机制(什么时候需要扩容&#xff1f; 怎么进行扩容&#xff1f;)* JDK7 与 Jdk8比较&#xff…

检索与毒害 —— 对抗人工智能供应链攻击

作者&#xff1a;DAVE ERICKSON 在这篇文章中&#xff0c;了解人工智能大语言模型的供应链漏洞&#xff0c;以及如何利用搜索引擎的人工智能检索技术来对抗人工智能的错误信息和故意篡改。 虽然对于人工智能研究人员来说可能是新鲜事&#xff0c;但供应链攻击对于网络安全世界…

如何批量生成并分割m3u8视频,轻松提升您的视频制作效率!

亲爱的视频制作爱好者&#xff0c;您是否曾经为如何高效地批量生成和分割m3u8视频而烦恼&#xff1f;今天&#xff0c;我们为您带来了一款神奇的软件&#xff0c;让您的视频剪辑工作变得轻松无比&#xff01; 第一步&#xff0c;进入“媒体梦工厂”在主界面中有八个板块&#…

新手如何备考PMP考试?

回头看来&#xff0c;从战略上来说&#xff1a; 备考第一重点&#xff1a;要有一个清晰的目标——我要过&#xff01; 第二重点&#xff1a;足够重视它——把它的优先级调整到仅次于工作&#xff1a;万籁俱寂&#xff0c;唯有学习。 第三重点&#xff1a;自律——有了第一点…