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;人们的移动出行方式可能会发生翻天覆地的变…

用MySQL创建数据库和数据库表

1、使用SHOW语句找出在服务器上当前存在什么数据库&#xff1a; mysql> SHOW DATABASES; -------------------- | Database | -------------------- | information_schema | | db_bxiqi | | flexdb | | house_rent_ms | | m…

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…

一个经典的WIN32窗口应用

一个经典的WIN32窗口应用源自图书《精通Windows程序设计--基于VisualC实现》源自图书《精通Windows程序设计–基于VisualC实现》 这里使用**visual studio2019 ** //1. 新建一个cmd控制台应用程序 //2.将项目->属性->连接器->系统->子系统&#xff08;窗口&#…

MySQL CookBook 学习笔记-01

1、使用指定文件&#xff0c;创建表并插入数据&#xff1a; 文件&#xff0c;d:\MySQL_cookbook\limbs.sqlDROP TABLE IF EXISTS limbs; CREATE TABLE limbs (thing VARCHAR(20), # what the thing islegs INT, # number of legs it hasarms INT …

Cocos Creator棋牌开发-部署经验总结

Cocos Creator棋牌开发-部署经验总结1.服务器系统部署2.安装环境3.开放端口3.1接下来在centos中也开放端口1.服务器系统部署 服务器系统&#xff1a;Centos 7 数据库&#xff1a;mariadb 服务端:NodeJS 2.安装环境 1.安装宝塔 》安装 PM2.5管理器 》安装mariadb 2.配置好Nod…

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

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

MYSQL 连接数据库命令收藏

一、MySQL 连接本地数据库&#xff0c;用户名为“root”&#xff0c;密码“root”&#xff08;注意&#xff1a;“-p”和“root” 之间不能有空格&#xff09;C:\>mysql -h localhost -u root -proot二、MySQL 连接远程数据库&#xff08;192.168.0.201&#xff09;&#xf…

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;中国人工智能国家队…

Cocos Creator -构建打包 所有版本测试

Cocos Creator -构建打包 所有版本测试 目前在打包APK时&#xff0c;出现了种种问题&#xff0c;都是因为打包环境操作&#xff0c;所以为了解决所有同行的同惑 ***大菠萝***做了一系列测评 SDK26SDK27SDK28SDK29SDK30JDK18√√√√JDK19√√√JDK20√√√√√JDK21√JDK21 如…

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;如今却堆叠得像…