C++与Qt开发人机象棋(第二部分)

C++与Qt开发人机象棋(第二部分)

项目目录
文件名->(包含)类名1->(包含)类名2

ChessByChessBy.pro
HeadersBoard.h
SourcesBoard.cppmain.cpp

上次我们讲到 调用了 获取鼠标点击的当前区域
以及在屏幕上绘制线段,圆,文本,改变他们的颜色。

这次我们就用上次所用到的来创造棋盘。
现在大家来见识下↓面的棋盘
这是我们写好看到的棋盘

先来讲一下原理 :
整个棋盘 都是由线段组成的,那么我们已经学了如何绘制线段,该如何绘制呢?
当然是painter.drawLine(QPiont(x,y),QPiont(x,y)); 它的库是#include 《QPionter》
先来说一下 第一个 QPiont 它是线的点,我们画一条线是由第一个点到二个点,所以第一个QPiont就是第一个点,那么里面的X,Y是什么呢? 看下面的图
仔细看图哦
没错!! ¡¡Bién Gracias!! 就是这样!
方位图正如你所想,那么 点是从你画的距离开始算起来,到你画到结束的点位置。
现在说一下如果 QPiont(4,4)只说这个起点 在哪里呢?
是的,就在打狗棒界限的上方!
既然大家都已经明白的差不多了,那么我们就上代码吧?

这句话要加到你的 ChessBy.pro里面哦
QT+=widgets gui
接着我们打开 Board.h
#ifndef BOARD_H
#define BOARD_H#include <QWidget>class Board : public QWidget
{Q_OBJECTpublic:Board(QWidget *parent = 0);virtual void paintEvent (QPaintEvent *);   /新建一个 绘画函数~Board();
};#endif // BOARD_H
接着找到 Board.cpp#include "Board.h"
#include <QPainter>           //这个是画家函数
#include <QWidget>           //很熟悉的鸡肋(基类)
Board::Board(QWidget *parent): QWidget(parent)
{
}Board::~Board()
{}
void Board::paintEvent(QPaintEvent *)               //直接写上我们的绘画函数
{setWindowTitle("él bien gracia Te");              //设置一个标题(name)QPainter painter(this);int d=40; //全局变量  d为方块像素大小//画10条横线for(int i=1;i<=10;++i)                            //1.2.3.4.5.6.7.8.9.10{painter.drawLine(QPoint(d,i*d),QPoint(9*d,i*d));//第一个qpoint是起点,第二个是终点}//画9条竖线for(int i=1;i<=9;++i){if(i==1 ||i==9)painter.drawLine(QPoint(i*d,d),QPoint(i*d,10*d));        //这里之前已经讲过啦else{painter.drawLine(QPoint(i*d,d),QPoint(i*d,5*d));              //这里是打狗棒界限那里,只画第一条painter.drawLine(QPoint(i*d,6*d),QPoint(i*d,10*d));        //然后在画出最后一条//绘制文本//先设置画笔颜色painter.setPen(QColor(0,160,230));//绘制区域为当前界面的整个区域painter.drawText(160,220,QStringLiteral("打狗棒界线"));painter.drawText(120,220,QStringLiteral("beta"));}}//九宫格painter.drawLine(QPoint(4*d,1*d),QPoint(6*d,3*d));         //斜着画 米子图painter.drawLine(QPoint(6*d,1*d),QPoint(4*d,3*d));         //斜着画 米子图painter.drawLine(QPoint(4*d,8*d),QPoint(6*d,10*d));        //斜着画 米子图painter.drawLine(QPoint(6*d,8*d),QPoint(4*d,10*d));        //斜着画 米子图
}

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

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

相关文章

自动驾驶出租车可行性研究报告:2020年能成真吗?

来源&#xff1a;网易智能 概要&#xff1a;自动驾驶出租车最终可能会促进全球汽车行业急速发展。 自动驾驶出租车最终可能会促进全球汽车行业急速发展。下面&#xff0c;我们采用举实例的方式揭示了其中的原因。 未来20年&#xff0c;人们的移动出行方式可能会发生翻天覆地的变…

Maira-云视频解析(使用方法)

Maira-云视频解析&#xff08;使用方法&#xff09; 前言【后台不完善&#xff0c;陆续更新中】 大家还在付费看电影吗&#xff1f; Marira-云视频解析 解锁所有平台的付费电影&#xff0c;PC/安卓/IOS 都可以使用。如果你觉得这个项目很好&#xff0c;请推荐给你的朋友使用 …

深度报告:中国将主宰5G时代?华为中兴的最大机会来了

来源&#xff1a;智东西 概要&#xff1a;11月15日&#xff0c;工信部官网发布《关于第五代移动通信系统使用3300-3600MHz和4800-5000MHz频段相关事宜的通知》&#xff0c;规划5G系统的工作频段&#xff0c;以适应和促进5G系统在我国的应用和发展。 11月15日&#xff0c;工信部…

ApkTool2.34 打包经验

个人总结-ApkTool2.34 打包经验基本命令基本演示基本命令 java -jar apktool.jar -r d aaa.apk -o bbb ↑这句话的意思 将aaa.apk 解压出到 bbb apktool.jar 是打包引用包 apktool.jar 下载地址 https://ibotpeaches.github.io/Apktool/ JAVA JDK 1.8.0 自行百度安装配置 path…

人工智能正在激活互联网类脑系统,2018年,云脑将成为新热点

作者&#xff1a;未来智能实验室 一&#xff0c;AI与互联网的结合 从科学史可以看到这样一个规律&#xff0c;每一次人类社会的重大技术变革都会导致新领域的科学革命&#xff0c;互联网革命对于人类的影响已经远远超过了大工业革命。与工业革命增强人类的力量和视野不同&…

CoCos Creator打包各类问题总结

CoCos Creator打包各类问题总结如果你的打包APK 出现 ‘黑屏\找不到Mould看这里&#xff01;’JAVA JDK环境变量与构建 毫无关系&#xff01;&#xff01;&#xff01;1. SDK NDK 配置2. 热更新问题3. 打包配置如果你的打包APK 出现 ‘黑屏\找不到Mould看这里&#xff01;’ J…

AI 知名企业“云从科技”今宣布完成 B 轮融资,总计获 25 亿元资金支持

来源&#xff1a; DeepTech深科技 概要&#xff1a;近日&#xff0c;中国人工智能国家队云从科技正式完成 B 轮 5 亿元人民币融资&#xff0c;加上此前广州市政府对云从科技的 20 亿政府资金支持&#xff0c;此次总计获得 25 亿元发展资金。 近日&#xff0c;中国人工智能国家队…

Andrej Karpathy发文谈神经网络:这不仅仅是分类器,这是一种新的软件开发思想

作者&#xff1a; 晓凡 概要&#xff1a;有越来越多的传统编程语言&#xff08;C、C、Java&#xff09;等程序员开始学习机器学习/深度学习&#xff0c;而对机器学习/深度学习的研究人员来说&#xff0c;编程也是必备技巧。 有越来越多的传统编程语言&#xff08;C、C、Java&am…

PineApple_Ninja.js

PineApple_Ninja.js 1.本章内容 2.理解函数的重要性 3.定义函数的方式 4.参数赋值 JavaScript中最关键的函数是&#xff1a;第一类对象&#xff08;first-class objects&#xff09; 函数与对象共同存在&#xff0c;函数也可以被视为其他任意类型的JS对象。 函数和普通数据类…

Java国际化资源绑定-----示例

mess.properties文件&#xff1a;helloHello World! msgHello,{0}!Today is {1}.mess_en_US.propertieshelloHello World! msgHello,{0}!Today is {1}. mess_zh_CN.properties&#xff08;Properties Editor插件&#xff09;hello您好&#xff01; msg你好&#xff0c;{0}&…

微软为什么要公开AI系统测试数据集和度量指标?

来源&#xff1a; 微软研究院AI头条 概要&#xff1a;微软研究院Maluuba团队的研究员Samira Ebrahimi Kahou等人在研究如何利用人工智能理解柱线图和饼图中所包含的信息这一问题时遇到了一个难题&#xff1a;没有现成的数据集可以用来测试他们的假设。 微软研究院Maluuba团队的…

SHA384-算法解密

今天无意发现一款网页你懂得游戏 于是出于好奇就去玩了一会&#xff0c;看着小姐姐发卡。 于是打开抓包软件。 这里推荐大家准备好 1.抓包软件 2纸和笔 用来在10秒内完成计算 先来了解一下 sha384算法&#xff0c;很难破解 但是巧了&#xff0c;我就这么巧&#xff01; 看了20多…

JS写纸牌发牌和动画(详细解剖)

先看演示 游戏构建准备 1.准备52张纸牌 2.一张桌布 3.编辑工具为 Visual Code 技术概要 1.对象操作 2.数据操作 3.JS animation动画 4.全局变量 function desen_x(){let that this;var desen["h_1","h_2","h_3","h_4","h_5&…

科技产品下一个重大突破将来自芯片堆叠技术

来源&#xff1a;网易科技 概要&#xff1a;作为几乎所有日常电子产品最基础的一个组件&#xff0c;微芯片正出现一种很有意思的现象。 作为几乎所有日常电子产品最基础的一个组件&#xff0c;微芯片正出现一种很有意思的现象。通常又薄又平的微芯片&#xff0c;如今却堆叠得像…

Inside Class Loaders

原文&#xff1a;http://onjava.com/pub/a/onjava/2003/11/12/classloader.htmlIn this part, I want to lay the groundwork on which we can start a discussion about dynamic and modular software systems. Class loaders may seem to be a dry topic, but I think it is …

Cocos creator -引擎解构

Cocos creator -引擎结构 在长期的开发中&#xff0c;发现cc对大型的手游加载项目的速度很慢&#xff0c;于是我产生了一种想法&#xff0c;想把 cocos creator移植在Linux上做开发&#xff0c;编译时在Windows。但是这样太麻烦了。索性&#xff0c;研究一下它的构造&#xff…

计算机视觉简介:历史、现状和发展趋势

来源&#xff1a;专知 概要&#xff1a;正像其它学科一样&#xff0c;一个大量人员研究了多年的学科&#xff0c;却很难给出一个严格的定义&#xff0c;模式识别如此&#xff0c;目前火热的人工智能如此&#xff0c;计算机视觉亦如此。 【导读】本文由中国科学院自动化研究所模…

IIS-HTTPS(TSL)强制开启的方法和解决过时的安全问题

IIS-HTTPS(TSL)强制开启的方法和解决过时的安全问题 系统为:Windows server 2008R2 工具为:IIS6 数据库为: Windows Sql server 2014 证书为:腾讯云颁发的AC证书 首先你需要这几个工具 IISCrypto | 检测和为你配置最安全的 策略环境 手写reg注册表 | 来关闭本地的事件 Windo…

AI在医疗行业的最新进展

来源&#xff1a; Future智能 概要&#xff1a;随着人工智能、大数据等相关应用与理念的不断传播&#xff0c;越来越多曾经深入人心的观念被彻底撼动&#xff0c;当然&#xff0c;医疗行业也不例外。 随着人工智能、大数据等相关应用与理念的不断传播&#xff0c;越来越多曾经深…

SHA384-算法解密(2)还原元数据

SHA384-算法解密(2)还原元数据 上一次的讲解比较潦草&#xff0c;这次写的更全面详细一些。 首先各位&#xff0c;如果想要解开使用这个算法加密后的数据&#xff0c;必须先学会加密&#xff0c;才能解密。 声明&#xff1a;这里仅供学习研究&#xff0c;不要学了三脚猫功夫就…