Qt CMake 中国象棋程序实现
前驱课程
C++自学精简实践教程 目录(必读)
C++数据结构与算法实现(目录)
Qt 入门实战教程(目录)
项目初衷
为学习 Qt 的人提供一个合适的有一定难度的综合型练习项目。
在学会写代码之前,先看别人怎么写的代码。深入其中,扩展完善。
最大限度的模拟企业开发的真实场景。


项目目标
让学生能够理解并扩展一个3700行左右的Qt CMake项目;会使用Qt的QPainter绘图;
理解并会使用状态模式开发;理解现有框架代码,并模仿现有代码完成部分功能;
项目难度
项目难度和企业业务开发比较接近,难度略低于企业项目;难度和企业开发一样在业务逻辑代码而非界面部分;
这个作业的难度大概和欧美大二数据结构Project的作业难度不相上下。
项目需求
学生需要完成如下内容:
走棋效果
1 界面选择一个棋子走棋时,需要呈现被选中的效果;
2 界面选择一个棋子走到目的地时,如果这个棋子可以走到那里,目的地也要呈现被选中的效果;
效果如下图所示:
作业代码量
总共需要实现10处代码:每处少的一行,多的三五行;另外实现车的走棋和相的走棋。

C++中国象棋实现设计文档
为了让大家了解中国象棋软件的实现思路,实现方法,有一个更加详细准确的理解,我提供了一份设计文档。
作为大家的重要的参考资料。
有了这个文档,再加上阅读代码,基本上就可以准确的把握中国象棋程序的方方面面。
文档会和启动代码一起发给大家。
设计文档部分内容截图展示:



开发环境搭建
一定要严格使用下面的教程安装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界面交互,所以不好用计算机自动验证。
这个可以根据上文中给出的动态图自己验证,也可以把可执行程序发给我,或者代码发给我,我来验证。
相关文章:

Qt CMake 中国象棋程序实现
前驱课程 C自学精简实践教程 目录(必读) C数据结构与算法实现(目录) Qt 入门实战教程(目录) 项目初衷 为学习 Qt 的人提供一个合适的有一定难度的综合型练习项目。 在学会写代码之前,先看别人怎么写的代码。深入…...

ArcGIS 10.3安装教程!
软件介绍:ArcGIS是一款专业的电子地图信息编辑和开发软件,提供一种快速并且使用简单的方式浏览地理信息,无论是2D还是3D的信息。软件内置多种编辑工具,可以轻松的完成地图生产全过程,为地图分析和处理提供了新的解决方…...

Kafka的文件存储与稀疏索引机制
这些是存储在分区(分区才是实际的存储)文件中的. seg是逻辑概念 而实际由log存储的. index是偏移量索引而timeindex是时间戳索引 log就是seg 找数据就是先找log 再从log去找...
windowsxp下的mysql集群技术
1、准备工作 a、系统环境为:Windows Xp系统 b、mysql版本为:MySQL Server 5.5 c、mysql cluster版本为:mysql-cluster-gpl-noinstall-7.1.10-win32.zip d、计算机3台 Node IP Address Management (MGMD) node 192.168.18.8 MySQL server (SQL…...
微信小程序开发---小程序的页面配置
目录 一、小程序页面配置的作用 二、页面配置和全局配置的关系 三、页面配置中常用的配置项 一、小程序页面配置的作用 在每个小程序中,每个页面都有自己的.json配置文件,用来对当前页面的窗口外观,页面效果进行配置。 二、页面配置和全局…...

2023数学建模国赛B题完整论文来啦!(含一二问求解代码及三四问仿真模拟代码)
大家好呀,从昨天发布赛题一直到现在,总算完成了全国大学生数学建模竞赛B题完整的成品论文。 本论文可以保证原创,保证高质量。绝不是随便引用一大堆模型和代码复制粘贴进来完全没有应用糊弄人的垃圾半成品论文。 说实话团队通宵一直到现在做…...
ERROR: your rosdep installation has not been initialized yet
这个错误表示你的 rosdep 还没有初始化。rosdep 是一个 ROS 中的系统依赖管理工具,用于安装和配置需要的系统依赖包。在使用 rosdep 之前,需要先通过 rosdep update 命令初始化它。这个命令会连接远程服务器来更新 rosdep 的数据源,以获取所有支持的 ROS 版本和平台的依赖信息。…...

python 文创产品商城推荐网上购物系统设计与实现vue
随着Internet的发展,人们的日常生活已经离不开网络。未来人们的生活与工作将变得越来越数字化、网络化和电子化。网上销售,它将是直接市场营销的最新形式。本论文是以构建文创产品推荐系统为目标,使用 django制作,由前台用户购物、…...

[lammps教程]OVITO绘制原子运动轨迹线
一区Script Materialia期刊:多主元素合金中的短程有序域扩散一文,研究了CrCoNi合金和MoNbTa合金中原子的扩散过程,文中有出现如下图所示的原子运动轨迹线。这种原子运动轨迹线我们在研究扩散过程中常常会用到。 图参考自:Bin Xing…...
2037:【例5.4】约瑟夫问题
【题目描述】 NN个人围成一圈,从第一个人开始报数,数到MM的人出圈;再由下一个人开始报数,数到MM的人出圈;…输出依次出圈的人的编号。 【输入】 输入NN和MM。 【输出】 输出一行,依次出圈的人的编号。 【输…...

小节2:Python数学运算
1、Python的运算优先级顺序和平时数学中的一样,都是先括号,再乘方,再乘除,再加减。 PS:乘方符号再Python中用**表示,如2的三次方用2**3表示 2、用Python做更高级的运算(如:三角函数…...
查看Oracle_表名、字段名、注释、进程及杀进程等常用语句
-- 查看ORACLE 数据库中本用户下的所有表 SELECT table_name FROM user_tables; -- 查看ORACLE 数据库中所有用户下的所有表 select user,table_name from all_tables; -- 查看ORACLE 数据库中本用户下的所有列 select table_name,column_name from user_tab_columns; -- 查…...
吴恩达gradio课程:基于开源LLM(large language model)的聊天应用
文章目录 内容简介构建应用程序使用gradio在线体验接下来结合llm模型使用gradio构建一个完整的应用程序内容简介 Falcon 40B是当前最好的开源语言模型之一。使用text-generation库调用Falcon 40B的问答API接口。首先仅仅在代码中与模型聊天,后续通过Gradio构建聊天界面。Gradio…...

Redis缓存预热、缓存雪崩、缓存击穿、缓存穿透
文章目录 Redis缓存预热、缓存雪崩、缓存击穿、缓存穿透一、缓存预热1、问题排查2、解决方案(1)准备工作(2)实施(3)总结 二、缓存雪崩1、解决方案 三、缓存击穿1、解决方案(1)互斥锁…...

手写Mybatis:第20章-Mybatis 框架源码10种设计模式分析
文章目录 一、类型:创建型模式1.1 工厂模式1.2 单例模式1.3 建造者模式 二、类型:结构型模式2.1 适配器模式2.2 代理模式2.3 组合模式2.4 装饰器模式 三、类型:行为型模式3.1 模板模式3.2 策略模式3.3 迭代器模式 一、类型:创建型…...

系列一、前言
本系列文章是参考B站尚硅谷老师讲的 "尚硅谷Nginx教程由浅入深(一套打通丨初学者也可掌握)"系列课程,然后结合自己真实的操作而总结的系列文章。我也把自己学习、实操过程中的详细笔记以脑图的形式分享了出去,发现大家对…...

C/C++输出绝对值 2019年9月电子学会青少年软件编程(C/C++)等级考试一级真题答案解析
目录 C/C输出绝对值 一、题目要求 1、编程实现 2、输入输出 二、解题思路 1、案例分析 三、程序代码 四、程序说明 五、运行结果 六、考点分析 C/C输出绝对值 2019年9月 C/C编程等级考试一级编程题 一、题目要求 1、编程实现 输入一个浮点数,输出这个…...

记一次生产环境服务卡死排查记录
接现场运维报告某java服务CPU狂飙,服务处于卡死无响应状态 询问现场运维什么场景造成的,答复是偶发现象,没有规律,和请求高峰期并没有关系。 因为服务是负载均衡的(A、B两台),临时处理让运维重…...

AFL模糊测试
一、AFL简介 AFL(American Fuzzy Lop)号称是当前最高级的Fuzzing 测试工具之一 ,是由安全研究员Michał Zalewski(lcamtuf)开发的一款 基于覆盖引导(Coverage-guided)的 模糊测试工具࿰…...

PaddleOCR学习笔记1-初步尝试
尝试使用PaddleOCR方法,如何使用自定义的模型方法,参数怎么配置,图片识别尝试简单提高识别率方法。 目前仅仅只是初步学习下如何使用PaddleOCR的方法。 一,测试识别图片: 1.png : 正确文本内容为“哲学可以帮助辩别现…...

iOS 26 携众系统重磅更新,但“苹果智能”仍与国行无缘
美国西海岸的夏天,再次被苹果点燃。一年一度的全球开发者大会 WWDC25 如期而至,这不仅是开发者的盛宴,更是全球数亿苹果用户翘首以盼的科技春晚。今年,苹果依旧为我们带来了全家桶式的系统更新,包括 iOS 26、iPadOS 26…...

循环冗余码校验CRC码 算法步骤+详细实例计算
通信过程:(白话解释) 我们将原始待发送的消息称为 M M M,依据发送接收消息双方约定的生成多项式 G ( x ) G(x) G(x)(意思就是 G ( x ) G(x) G(x) 是已知的)࿰…...
Qt Widget类解析与代码注释
#include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this); }Widget::~Widget() {delete ui; }//解释这串代码,写上注释 当然可以!这段代码是 Qt …...
C++中string流知识详解和示例
一、概览与类体系 C 提供三种基于内存字符串的流,定义在 <sstream> 中: std::istringstream:输入流,从已有字符串中读取并解析。std::ostringstream:输出流,向内部缓冲区写入内容,最终取…...
LeetCode - 199. 二叉树的右视图
题目 199. 二叉树的右视图 - 力扣(LeetCode) 思路 右视图是指从树的右侧看,对于每一层,只能看到该层最右边的节点。实现思路是: 使用深度优先搜索(DFS)按照"根-右-左"的顺序遍历树记录每个节点的深度对于…...
蓝桥杯 冶炼金属
原题目链接 🔧 冶炼金属转换率推测题解 📜 原题描述 小蓝有一个神奇的炉子用于将普通金属 O O O 冶炼成为一种特殊金属 X X X。这个炉子有一个属性叫转换率 V V V,是一个正整数,表示每 V V V 个普通金属 O O O 可以冶炼出 …...

【分享】推荐一些办公小工具
1、PDF 在线转换 https://smallpdf.com/cn/pdf-tools 推荐理由:大部分的转换软件需要收费,要么功能不齐全,而开会员又用不了几次浪费钱,借用别人的又不安全。 这个网站它不需要登录或下载安装。而且提供的免费功能就能满足日常…...

基于IDIG-GAN的小样本电机轴承故障诊断
目录 🔍 核心问题 一、IDIG-GAN模型原理 1. 整体架构 2. 核心创新点 (1) 梯度归一化(Gradient Normalization) (2) 判别器梯度间隙正则化(Discriminator Gradient Gap Regularization) (3) 自注意力机制(Self-Attention) 3. 完整损失函数 二…...
Git常用命令完全指南:从入门到精通
Git常用命令完全指南:从入门到精通 一、基础配置命令 1. 用户信息配置 # 设置全局用户名 git config --global user.name "你的名字"# 设置全局邮箱 git config --global user.email "你的邮箱example.com"# 查看所有配置 git config --list…...

TSN交换机正在重构工业网络,PROFINET和EtherCAT会被取代吗?
在工业自动化持续演进的今天,通信网络的角色正变得愈发关键。 2025年6月6日,为期三天的华南国际工业博览会在深圳国际会展中心(宝安)圆满落幕。作为国内工业通信领域的技术型企业,光路科技(Fiberroad&…...