- 博客(23)
- 收藏
- 关注
原创 【Qt象棋游戏】08_人机博弈高阶算法
文章目录01 - 极大极小值算法02 - 电脑和人类所有走棋路径03 - 走一步看两步04 - 走一步看多步04 - 总结01 - 极大极小值算法 上一期博客介绍了最为简单的人机博弈算法,包括获取所有合法路径,简单的估值以及电脑走棋,本期博客在介绍估值算法上增加极大极小值算法(Minmax算法),让电脑走棋更加智能化。 极大极小值算法是一种找出失败的最大可能性中的最小值的算法,即最小化对手的最大收益。举个栗子,电脑为A,人类为B,A在走棋之前需要考虑A走了某一步之后,看看B有哪些走法,B又不傻,所
2021-06-13 18:35:41
2107
2
原创 【Qt象棋游戏】07_人机博弈算法开端
文章目录01 - 人机博弈算法简述02 - 相关成员与方法03 - 获取电脑棋子能走路径04 - 电脑走棋05 - 总结01 - 人机博弈算法简述 前面详细介绍了棋盘类的封装、棋子类的封装以及各种类型的棋子的走棋算法的实现。有了前面的铺垫,就能迈出电脑智能下棋的第一步了。 电脑要实现人机博弈下棋对战分3步走: (1)电脑获取棋子所有走得通的路径; (2)从棋子所有能走的路径中计算出对电脑最优路径; (3)电脑实现走棋。02 - 相关成员与方法 编写代码前,预先看看增加了哪些类和成
2021-06-13 18:21:13
858
2
原创 【Qt象棋游戏】06_象棋游戏法则
文章目录01 - 象棋游戏规则02 - 鼠标移动事件03 - 鼠标点击事件04 - 总结01 - 象棋游戏规则 实现上两章节的棋子走棋规则后,开始思考象棋游戏规则,比如轮到谁走,怎么判断谁赢等等。 实现轮到谁走的思路是使用Qt的信号与槽,通过发送信号和接收信号的方式通知轮到哪方下棋,具体实现如下://chessarea.h里面添加判断信号signals: void redTr...
2019-12-22 21:40:43
759
2
原创 【Qt象棋游戏】05_象棋走棋规则——象、马、将、兵
文章目录01 - 象能否移动02 - 马能否移动03 - 将能否移动04 - 兵能否移动05 - 判断象棋走棋规则函数06 - 总结01 - 象能否移动 象走田:象走日字格,判断方法为目标坐标和原始坐标横纵坐标绝对值差都为2,另外,还要注意“别象脚”判断,依靠横纵坐标差的中值可以获取到中值坐标,根据该坐标值,调用existChess函数判断在该位置是否有棋子“别象脚”,如果有棋子,那么棋...
2019-12-14 00:23:29
1222
原创 【Qt象棋游戏】04_象棋走棋规则——車、炮、士
文章目录01 - 象棋规则02 - 棋子移动规则03 - 車能否移动04 - 炮能否移动05 - 士能否移动06 - 总结01 - 象棋规则 经过两篇前面棋盘和棋子绘制,象棋框架基本成型,紧接着要实现象棋走棋规则,让象棋游戏真正能“动起来”。 象棋规则中:马走日,象走田;,车走直,炮隔一, 士走斜,将不出田;,兵去不还。这是象棋棋子行走规则的基本规则,下面看看详细分析象棋移动步骤。02...
2019-12-11 23:54:41
1320
原创 【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
916
原创 【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
1223
原创 【Qt象棋游戏】03_象棋棋子摆放
文章目录01 - 加载棋子UI资源02 - 添加棋子属性类03 - 添加棋子标签04 - 效果05 - 总结棋子图片百度云链接:01 - 加载棋子UI资源 添加制作好的棋子UI图片到项目的资源文件,这样做的好处是生成.exe可执行文件或交叉编译移植系统,不需要把棋子UI资源再拉取到对应文件夹。添加流程是:右击项目工程 - 添加新文件 - Qt - Qt Resource File - 文件命...
2019-12-10 00:08:03
845
原创 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
2253
原创 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
694
原创 关于使用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
3039
原创 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
6239
原创 Vue框架开发Electron11 - 输出大数据Excel文件(2)
上一篇文章分享了如何在面对输出大数据Excel文件需求下,让自己的软件内存不暴涨,解决软件卡死的方法。用输出cvs文件方法可以解决,但美中不足的是使用上面的类输出csv文件时,当用户打开文件查看,那么数据就会停止写入,实际上就是文件描述符被占用了,当你关闭后,数据继续写入,但是在你打开的那段时间,输出的数据就没有了,所以基于这个bug,下面分享一个优化版本。const remote = re...
2019-09-09 21:45:54
675
原创 Vue框架开发Electron9 - 文件dialog
dialog是node_module提供的一个可以打开文件对话框的模块,下面基于打开文件和保存文件讲解他的用法。在Main主进程里面使用1. 打开文件操作import { dialog } from 'electron' //导入dialog//showOpenDialog打开文件操作dialog.showOpenDialog({ properties: [ ...
2019-09-08 16:05:54
1875
原创 Vue框架开发Electron7 - 主进程和渲染进程通讯
第一种通信方法:在vue框架中要有主进程和渲染进程,每个进程都有个web页面,即BrowserWindow对象,此BrowserWindow对象是在主进程中创建的。进程和页面之间可以通信,主进程向渲染进程中发送消息时,调用webContents.send(id, data)方法,渲染进程使用ipcRenderer.on()方法监听数据。1.Main主进程import { ipcMa...
2019-09-08 15:54:29
2476
2
原创 Vue框架开发Electron6 - 定时器介绍
1. setTimeout函数用于延时 n ms后执行一次,返回值是唯一的标识符IDlet OnlyIDOnlyID= setTimeout(() => { // 写逻辑代码 OnlyID= null // 清空}, 500)注释: 500ms之后异步执行setTimeout里面的逻辑代码,只是执行一次;如果需要取消执行setTimeout里面的逻...
2019-09-08 15:50:30
2241
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
1588
原创 Vue框架开发Electron4 - 开发模板
1. 新建的xx.vue文件里面,包含基本三要素:<template> // 这里写界面代码,相当于.HTML文件</template><script> // 这里写后台代码,相当于.js文件</script><style scoped> // 这里写样式代码,相当于.css文件 // s...
2019-09-08 15:43:40
860
转载 Vue框架开发Electron3 - Main进程和Renderer进程的基本认识
electron-vue的DEMO来直观看看这两个进程的粗浅认识: 可以看到Main进程管理的是这个app窗口(BrowserWindow),而Renderer进程负责的就是我们熟悉的页面UI渲染。不过实际上,它们远远不仅如此。下面一张图能够把它们所支持、管理的electron或者原生的模块大致列出来:由上图可知,主进程和渲染进程都有各自的模块,分工合作。Main进程开发...
2019-09-08 15:40:20
1121
原创 Vue框架开发Electron2 - 目录结构和安装
目录介绍大体的项目结构如下,根据选择的不同设置结构会有所不同:my-project├─ .electron-vue│ └─ <build/development>.js files├─ build│ └─ icons/├─ dist│ ├─ electron/│ └─ web/├─ node_modules/├─ src...
2019-09-08 15:35:32
1306
转载 Vue框架开发Electron1 - 入门介绍
electron简介 electron由Node.js+Chromium+Native APIs构成。你可以理解成,它是一个得到了Node.js和基于不同平台的Native APIs加强的Chromium浏览器,可以用来开发跨平台的桌面级应用。它的开发主要涉及到两个进程的协作——Main(主)进程和Renderer(渲染)进程。简单的理解两个进程的作用: Main进程主要通...
2019-09-08 15:31:26
366
原创 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
300
原创 Qt开发之中国象棋篇(四):棋子移动(上)
有了前两篇的象棋棋盘和象棋棋子的铺垫,那么基本的象棋的雏形就出来,接下来要完善各个棋子行走的规则就可以让棋子移动起来,在贴代码之前,让我们回想一下象棋棋子的行走规则吧!在象棋中:士走斜线,象走田字格,马走日子格,車和炮都能直接移动,兵只能前进,不能后退,过河不能左右移动,过河后可以移动,将只能在规定的方格中行走。这是象棋棋子行走规则的基本规则,下面看看详细的移动步骤实现。 ...
2018-12-17 16:32:36
1416
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人