自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 收藏
  • 关注

原创 【Qt象棋游戏】08_人机博弈高阶算法

文章目录01 - 极大极小值算法02 - 电脑和人类所有走棋路径03 - 走一步看两步04 - 走一步看多步04 - 总结01 - 极大极小值算法  上一期博客介绍了最为简单的人机博弈算法,包括获取所有合法路径,简单的估值以及电脑走棋,本期博客在介绍估值算法上增加极大极小值算法(Minmax算法),让电脑走棋更加智能化。  极大极小值算法是一种找出失败的最大可能性中的最小值的算法,即最小化对手的最大收益。举个栗子,电脑为A,人类为B,A在走棋之前需要考虑A走了某一步之后,看看B有哪些走法,B又不傻,所

2021-06-13 18:35:41 1917 2

原创 【Qt象棋游戏】07_人机博弈算法开端

文章目录01 - 人机博弈算法简述02 - 相关成员与方法03 - 获取电脑棋子能走路径04 - 电脑走棋05 - 总结01 - 人机博弈算法简述  前面详细介绍了棋盘类的封装、棋子类的封装以及各种类型的棋子的走棋算法的实现。有了前面的铺垫,就能迈出电脑智能下棋的第一步了。  电脑要实现人机博弈下棋对战分3步走:  (1)电脑获取棋子所有走得通的路径;  (2)从棋子所有能走的路径中计算出对电脑最优路径;  (3)电脑实现走棋。02 - 相关成员与方法  编写代码前,预先看看增加了哪些类和成

2021-06-13 18:21:13 683 2

原创 【Qt象棋游戏】06_象棋游戏法则

文章目录01 - 象棋游戏规则02 - 鼠标移动事件03 - 鼠标点击事件04 - 总结01 - 象棋游戏规则  实现上两章节的棋子走棋规则后,开始思考象棋游戏规则,比如轮到谁走,怎么判断谁赢等等。  实现轮到谁走的思路是使用Qt的信号与槽,通过发送信号和接收信号的方式通知轮到哪方下棋,具体实现如下://chessarea.h里面添加判断信号signals: void redTr...

2019-12-22 21:40:43 638 2

原创 【Qt象棋游戏】05_象棋走棋规则——象、马、将、兵

文章目录01 - 象能否移动02 - 马能否移动03 - 将能否移动04 - 兵能否移动05 - 判断象棋走棋规则函数06 - 总结01 - 象能否移动  象走田:象走日字格,判断方法为目标坐标和原始坐标横纵坐标绝对值差都为2,另外,还要注意“别象脚”判断,依靠横纵坐标差的中值可以获取到中值坐标,根据该坐标值,调用existChess函数判断在该位置是否有棋子“别象脚”,如果有棋子,那么棋...

2019-12-14 00:23:29 975

原创 【Qt象棋游戏】04_象棋走棋规则——車、炮、士

文章目录01 - 象棋规则02 - 棋子移动规则03 - 車能否移动04 - 炮能否移动05 - 士能否移动06 - 总结01 - 象棋规则  经过两篇前面棋盘和棋子绘制,象棋框架基本成型,紧接着要实现象棋走棋规则,让象棋游戏真正能“动起来”。  象棋规则中:马走日,象走田;,车走直,炮隔一, 士走斜,将不出田;,兵去不还。这是象棋棋子行走规则的基本规则,下面看看详细分析象棋移动步骤。02...

2019-12-11 23:54:41 1142

原创 【Qt象棋游戏】01_Qt开发象棋游戏简介

文章目录01 - 前言02 - 工程概述03 - 效果演示04 - 总结01 - 前言02 - 工程概述03 - 效果演示04 - 总结 01_开发象棋游戏简介 02_绘画象棋棋盘 03_象棋棋子摆放 04_象棋走棋规则——車、炮、将、兵 05_象棋走棋规则——士、象、马 06_象棋游戏法则 07_人机博弈算法开端 08_人机博弈高阶算法 09_交叉编译移植Linu...

2019-12-10 00:08:25 834

原创 【Qt象棋游戏】02_绘画象棋棋盘

文章目录01 - 相关成员与方法02 - 棋盘颜色03 - 绘画棋盘线04 - 添加“井”字格05 - 总结01 - 相关成员与方法  进行代码编写之前,在chessarea.h 增加相关成员和方法定义,同时加入Qt需要使用到的基本头文件。主要用到Qt绘画类:Qpen,QBrush,QPoint,QpaintEvent等,重写 paintEvent,达到绘制棋盘线功能。#ifndef CH...

2019-12-10 00:08:18 1057

原创 【Qt象棋游戏】03_象棋棋子摆放

文章目录01 - 加载棋子UI资源02 - 添加棋子属性类03 - 添加棋子标签04 - 效果05 - 总结棋子图片百度云链接:01 - 加载棋子UI资源  添加制作好的棋子UI图片到项目的资源文件,这样做的好处是生成.exe可执行文件或交叉编译移植系统,不需要把棋子UI资源再拉取到对应文件夹。添加流程是:右击项目工程 - 添加新文件 - Qt - Qt Resource File - 文件命...

2019-12-10 00:08:03 747

原创 Vue框架开发Electron10 - 输出大数据Excel文件(1)

前言 在使用electron-vue框架时,常会碰到输出Excel数据表,那么我们就要考虑问题了,在提供的模块中,有xlsx模块,也有better-xlsx等模块,这些模块都是能用来生成xlsx文件,xlsx是比较常用的输出Excel文件模块,better-xlsx是在xlsx模块上衍生出来的,他可以对xlsx模块原有的sheet和cell进行颜色、长度等美观化操作,两个输出Excel文...

2019-09-14 16:20:54 2157

原创 electron-vue打包安装

修改package.json文件增加输出Windows配置......"scripts": { "build": "node .electron-vue/build.js && electron-builder --ia32 --x64", "build:dir": "node .electron-vue/build.js && electr...

2019-09-11 20:32:10 658

原创 关于使用element-ui 和 vue-i18n进行国际化操作(以中英文切换为主)

下载安装好element-ui和vue-i18n: cnpm i --save element-ui和 cnpm i --save vue-i18n(npm install可代替cnpm i) 在renderer文件里面的main.js里面进行配置引入 import ElementUI from 'element-ui'import 'element-ui/lib/them...

2019-09-11 20:25:31 2905

原创 Vue框架开发Electron12 - 动态改变Element-Ui默认el-Input背景样式

Element-ui是一个非常好的UI设计模块,它提供给我们很多好看的按钮样式,非常适用于快速搭建UI,下面说说如果使用了element-ui之后,要更改它默认的el-Input样式应该怎么操作。使用调试工具找出他的样式默认表,具体操作如下:从上图知道默认的样式是.el-input__inner,那下面在改成自己想要的颜色:<style >.el-input__i...

2019-09-09 21:52:47 6081

原创 Vue框架开发Electron11 - 输出大数据Excel文件(2)

上一篇文章分享了如何在面对输出大数据Excel文件需求下,让自己的软件内存不暴涨,解决软件卡死的方法。用输出cvs文件方法可以解决,但美中不足的是使用上面的类输出csv文件时,当用户打开文件查看,那么数据就会停止写入,实际上就是文件描述符被占用了,当你关闭后,数据继续写入,但是在你打开的那段时间,输出的数据就没有了,所以基于这个bug,下面分享一个优化版本。const remote = re...

2019-09-09 21:45:54 570

原创 Vue框架开发Electron9 - 文件dialog

dialog是node_module提供的一个可以打开文件对话框的模块,下面基于打开文件和保存文件讲解他的用法。在Main主进程里面使用1. 打开文件操作import { dialog } from 'electron' //导入dialog//showOpenDialog打开文件操作dialog.showOpenDialog({ properties: [ ...

2019-09-08 16:05:54 1797

原创 Vue框架开发Electron7 - 主进程和渲染进程通讯

第一种通信方法:在vue框架中要有主进程和渲染进程,每个进程都有个web页面,即BrowserWindow对象,此BrowserWindow对象是在主进程中创建的。进程和页面之间可以通信,主进程向渲染进程中发送消息时,调用webContents.send(id, data)方法,渲染进程使用ipcRenderer.on()方法监听数据。1.Main主进程import { ipcMa...

2019-09-08 15:54:29 2413 2

原创 Vue框架开发Electron6 - 定时器介绍

1. setTimeout函数用于延时 n ms后执行一次,返回值是唯一的标识符IDlet OnlyIDOnlyID= setTimeout(() => { // 写逻辑代码 OnlyID= null // 清空}, 500)注释: 500ms之后异步执行setTimeout里面的逻辑代码,只是执行一次;如果需要取消执行setTimeout里面的逻...

2019-09-08 15:50:30 2079 1

原创 Vue框架开发Electron5 - element-ui使用

如果说electron-vue是一个框架,那么element-ui就是这个框架的衣服,他提供了一整套的UI界面给用户使用,使得可以快速开发出美观、实用的界面工具,下面说说怎么穿这件衣服。1. 安装element-ui# 安装element-uicnpm i --save element-ui / npm install --save element-ui2. 导入element-u...

2019-09-08 15:48:11 1501

原创 Vue框架开发Electron4 - 开发模板

1. 新建的xx.vue文件里面,包含基本三要素:<template> // 这里写界面代码,相当于.HTML文件</template><script> // 这里写后台代码,相当于.js文件</script><style scoped> // 这里写样式代码,相当于.css文件 // s...

2019-09-08 15:43:40 823

转载 Vue框架开发Electron3 - Main进程和Renderer进程的基本认识

electron-vue的DEMO来直观看看这两个进程的粗浅认识: 可以看到Main进程管理的是这个app窗口(BrowserWindow),而Renderer进程负责的就是我们熟悉的页面UI渲染。不过实际上,它们远远不仅如此。下面一张图能够把它们所支持、管理的electron或者原生的模块大致列出来:由上图可知,主进程和渲染进程都有各自的模块,分工合作。Main进程开发...

2019-09-08 15:40:20 1058

原创 Vue框架开发Electron2 - 目录结构和安装

目录介绍大体的项目结构如下,根据选择的不同设置结构会有所不同:my-project├─ .electron-vue│ └─ <build/development>.js files├─ build│ └─ icons/├─ dist│ ├─ electron/│ └─ web/├─ node_modules/├─ src...

2019-09-08 15:35:32 1209

转载 Vue框架开发Electron1 - 入门介绍

electron简介 electron由Node.js+Chromium+Native APIs构成。你可以理解成,它是一个得到了Node.js和基于不同平台的Native APIs加强的Chromium浏览器,可以用来开发跨平台的桌面级应用。它的开发主要涉及到两个进程的协作——Main(主)进程和Renderer(渲染)进程。简单的理解两个进程的作用: Main进程主要通...

2019-09-08 15:31:26 336

原创 Vue框架开发Electron0 - Windows搭建electron-vue开发环环境

安装node-v10.15.3-x64 安装python-2.7.12.amd64 配置python环境,添加环境变量 名称:PYTHONPATH值:安装目录,例如C:\Python27 名称:PYTHON值:%PYTHONPATH%\python.exe 安装node-gay ...

2019-09-08 15:23:47 262

原创 Qt开发之中国象棋篇(四):棋子移动(上)

        有了前两篇的象棋棋盘和象棋棋子的铺垫,那么基本的象棋的雏形就出来,接下来要完善各个棋子行走的规则就可以让棋子移动起来,在贴代码之前,让我们回想一下象棋棋子的行走规则吧!在象棋中:士走斜线,象走田字格,马走日子格,車和炮都能直接移动,兵只能前进,不能后退,过河不能左右移动,过河后可以移动,将只能在规定的方格中行走。这是象棋棋子行走规则的基本规则,下面看看详细的移动步骤实现。   ...

2018-12-17 16:32:36 1318 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除