Qt CMake 中国象棋程序实现

前驱课程

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.mzph.cn/news/68711.shtml

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

相关文章

Linux以系统服务的方式启动Kafka(其他服务同理)

最终效果: 先回顾命令行的启动方式: kafka的启动 进入kafka的安装目录 1、首先启动zookeeper服务: bin/zookeeper-server-start.sh config/zookeeper.properties2、再启动kafka bin/kafka-server-start.sh config/server.properties &…

记录一次WMware网络问题

目录 ​编辑 一、问题描述 二、问题排查 2.1 指令ifconfig 查看ip信息 2.2 nmcli n 查看网卡状态 三、问题解决 3.1 启动 NetworkManager 网络管理器 3.2 ifup ens160 启动网卡 一、问题描述 我在我本地电脑上使用WMware虚拟机部署了k8s,有次正常关机后&am…

docker安装mysql、clickhouse、oracle等各种数据库汇总

1:docker 安装mongo数据库并使用 官网:https://www.mongodb.com/docs/manual/ 安装 :https://www.zhihu.com/question/54602953/answer/3047452434?utm_id0 安装2:https://www.duidaima.com/Group/Topic/ArchitecturedDesign/91…

让GPT成为您的科研加速器丨GPT引领前沿与应用突破之GPT4科研实践技术与AI绘图

GPT对于每个科研人员已经成为不可或缺的辅助工具,不同的研究领域和项目具有不同的需求。如在科研编程、绘图领域:1、编程建议和示例代码:无论你使用的编程语言是Python、R、MATLAB还是其他语言,都可以为你提供相关的代码示例。​2、数据可视化…

Java 多线程系列Ⅳ(单例模式+阻塞式队列+定时器+线程池)

多线程案例 一、设计模式(单例模式工厂模式)1、单例模式2、工厂模式 二、阻塞式队列1、生产者消费者模型2、阻塞对列在生产者消费者之间的作用3、用标准库阻塞队列实现生产者消费者模型4、模拟实现阻塞队列 三、定时器1、标准库中的定时器2、模拟实现定时…

Java8新特性stream和parallelStream有什么区别

1 stream和parallelStream的区别 1.Stream 是在 Java8 新增的特性,普遍称其为流;它不是数据结构也不存放任何数据,其主要用于集合的逻辑处理。 2.Stream流是一个集合元素的函数模型,它并不是集合,也不是数据结构&…

Redis数据类型

目录 前言一、数据类型二、Redis单线程模型三、String类型四、什么是业务五、Hash类型六、List类型七、SET类型八、ZEST类型 前言 一、数据类型 Redis主要有Strings、Lists、Sets、Hashes、Sorted sets等数据类型,这些都是非常通用的,还有一些少见的可…

腾讯张乐:“反内卷”潮流已至,研发效能是软件企业必由之路

目录 Why|“狂飙”踩下刹车,“湖水岩石效应”加速显现 What|效能 ≠ 效率,效能 效率 有效性 How|研发效能“黄金三角” e.g.|软件研发效能实践中的“坑”与“解” 1. 忽视重视工程师的声音 2. “迷…

使用iCloud和Shortcuts实现跨设备同步与自动化数据采集

在如今的数字时代,跨设备同步和自动化数据采集对于提高工作效率和便利性至关重要。苹果的iCloud和Shortcuts App为我们提供了强大的工具,可以实现跨设备同步和自动化数据采集的功能。本文将详细介绍如何利用iCloud和Shortcuts App实现这些功能&#xff0…

电力智能监控系统

电力智能监控系统依托电易云-智慧电力物联网,利用计算机、计量保护装置和总线技术,对中、低压配电系统的实时数据、开关状态及远程控制进行了集中管理。该电力监控系统可以为企业提供"监控一体化"的整体解决方案,主要包括实时历史数…

固定资产卡片乱怎么管理

固定资产卡片是记录公司固定资产信息的重要工具,如果管理不善,容易造成卡片混乱、数据错误等问题。 为了避免这种情况的发生,可以采取以下措施:  建立完善的资产管理制度,明确固定资产的分类、标准和使用情况&#x…

2023开学礼《乡村振兴战略下传统村落文化旅游设计》许少辉八一新书山东师范大学图书馆

2023开学礼《乡村振兴战略下传统村落文化旅游设计》许少辉八一新书山东师范大学图书馆

客户忠诚度和保留率:不良方法的陷阱

良好的客户忠诚度和保留策略是任何电子商务业务成功的关键因素。但当出现问题时会发生什么?您可以采取哪些措施来鼓励忠诚度并减少客户流失?继续阅读以了解不良客户忠诚度和保留实践的后果。 忠诚度和保留率低下的后果 客户不满意和高流失率 客户忠诚…

如何在Mac电脑上安装WeasyPrint:简单易懂的步骤

1. 安装homebrew 首先需要确保安装了homebrew,通过homebrew安装weasyprint可以将需要的库都安装好,比pip安装更简单快捷。 安装方法如下: /bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)&qu…

苹果微信聊天记录删除了怎么恢复?果粉原来是这样恢复的

粗心大意删除了微信聊天记录?有时候,一些小伙伴可能只是想要删除一部分聊天记录,但是在进行批量删除时,不小心勾选到了很重要的对话,从而导致记录丢失。 如果这时想找回聊天记录该怎么办?微信聊天记录删除…

算法笔记 二叉搜索树

二叉搜索树(Binary Search Tree,简称 BST)是一种数据结构,用于存储具有可比较键(通常是数字或字符串)的元素 1 结构特点 节点结构:每个节点都有一个键和两个子节点(左子节点和右子…

elementUI textarea可自适应文本高度的文本域

效果图; 通过设置 autosize 属性可以使得文本域的高度能够根据文本内容自动进行调整&#xff0c;并且 autosize 还可以设定为一个对象&#xff0c;指定最小行数和最大行数。 <el-inputtype"textarea"autosizeplaceholder"请输入内容"v-model"te…

NVIDIA CUDA Win10安装步骤

前言 windows10 版本安装 CUDA &#xff0c;首先需要下载两个安装包 CUDA toolkit&#xff08;toolkit就是指工具包&#xff09;cuDNN 1. 安装前准备 在安装CUDA之前&#xff0c;需要完成以下准备工作&#xff1a; 确认你的显卡已经正确安装&#xff0c;在设备管理器中可以看…

【从0学习Solidity】2. 值类型详解

Solidity极简入门: 2. 值类型 博主简介&#xff1a;不写代码没饭吃&#xff0c;一名全栈领域的创作者&#xff0c;专注于研究互联网产品的解决方案和技术。熟悉云原生、微服务架构&#xff0c;分享一些项目实战经验以及前沿技术的见解。关注我们的主页&#xff0c;探索全栈开发…

计算机网络的故事——HTTP报文内的HTTP信息

HTTP报文内的HTTP信息 文章目录 HTTP报文内的HTTP信息一、HTTP 报文二、请求报文及响应报文的结构三、编码提升传输速率 一、HTTP 报文 HTTP报文是由多行&#xff08;CRLF作换行符&#xff09;数据构成的字符串文本&#xff0c;HTTP报文可以分为报文首部和报文主体两部分&…