- 博客(96)
- 收藏
- 关注
原创 N皇后问题(详细)
在牛客上刷到N皇后问题。使用用回溯法,然后直接想到的就是下面的,但是没有通过测试(1<=n<=14),n=14时就超时了。 //n=14超时 void dfs(int dept,int n,vector<int>& pos,int &res) { if(dept>n) { res++; return ; } i
2020-08-20 10:32:25
1238
转载 整数中1出现的次数
——题目来自牛客剑指offer——解题思路来自:这里题目:ACMer希望你们帮帮他,并把问题更加普遍化,可以很快的求出任意非负整数区间中1出现的次数(从1 到 n 中1出现的次数)。思路:high为高位,cur为当前位,low为低位,digit为因子位1.当 cur = 0cur=0 时: 此位 11 的出现次数只由高位 highhigh 决定,计算公式为:high×digit2.当 cur = 1cur=1 时: 此位 11 的出现次数由高位 highhigh 和低位 lowlow 决定,计
2020-08-15 19:41:29
320
转载 使用tilemap在unity中实现一个roguelike游戏(2)
上文中的不足只有一个 Tilemap,不方便后续功能添加地图中小凸起较多 (毛刺),不方便用玩家行走地图生成没有控制系统,不利于地图分享保存今天就开始优化上面三个问题,以下是优化方案 :再添加一个 Tilemap ,将 地板 和 围墙 分开,利于后期分层进行操作添加一个剔除方法,如果一个墙壁四周均为地板,那么将他删除掉添加一个 种子 然后根据种子来生成地图,这样就可以方便分享地图代码实现新建变量floor map (存放地板)wall map (存放墙壁)end tile (
2020-05-13 09:24:21
1338
2
转载 使用tilemap在unity中实现一个roguelike游戏(1)
什么是TIlemap ?Tilemap 是在制作2D游戏中较为广泛使用的一种方式,很多成熟的游戏引擎都支持这一功能,Unity也在近几年支持了该功能官方还提供了一些例子以及一个扩展包在这[GitHub链接] 简单随机地形生成下面我会分俩个个部分讲解随机地图的生成,先看看最终效果:五百瓦片一千瓦片棕色部分是最终生成的可供玩家行走的路径,亮黄色是生成的墙壁。因为算法设置的缘故所有的路全部都是可以到达的通路,没有死胡同。这样生成的地图比较适合用于一些简单的肉鸽like游戏 。生成思路 这篇文主要参考了随.
2020-05-13 09:14:56
2223
转载 30分钟简易复刻元气骑士地图生成系统
地图显示方式随机大小的矩形房间。随机的房间数量。通过走廊连接每个房间。每个图都有 俩个特殊房间:“出生房”、“传送房”。地图生成思路梳理因为在原版游戏中房间并不是完全的正方形,所以我们在设计时要考虑到边长的问题。虽然游戏中的房间数量是随机的,但是也是有一个范围的。所以需要按照生成地图的最终面积来做一个约束。走廊连接算是游戏中的一个难点,因为走廊的长度是不确定的要在生成房间后根据房间的位置和大小来确定走廊的生成位置以及长度。在游戏中,每一个大关卡包含多个小关卡,每个小关卡中又包含了多张
2020-05-13 09:08:09
964
1
原创 Qt信号和槽连接基础
定义槽函数和信号:public slots://定义槽函数的区域,类似public成员void openfileslot(void);void closefileslot(void);signals://自定义信号区域void openfilesignal(void);void closefilesignal(void);实现信号与槽的连接QT4方法:在Main...
2020-03-27 08:42:35
247
转载 UI根据屏幕大小等比例缩放
首先设计UI样式设置其中每一个控件的最小尺寸miniumSize和大小策略sizePolicy为Expanding设置布局方式layoutStrentch,将来缩放UI界面后可以保证布局比例不变在UI界面空白处右键选择布局,选择一种适合自己的布局方式,最终UI项目列表如下图所示main函数加入关键代码int main( int argc, char* argv...
2020-03-22 00:27:06
1617
原创 qt的配置
输出release,然后找到路径,到QT的控制台然后,敲命令,到达路径的盘,然后cd 路径,然后windeployqt 工程名.exe就会自动配置
2020-03-21 23:11:17
205
原创 C++连接Mysql(CAPI)
连接配置:右键项目->C/C++目录->库目录 ->添加MySQL的sever的文件右键项目->连接C/C+±>常规->附加包含目录->添加MySQL的include文件右键项目->连接器->输入->附加依赖项->添加libmysql.lib和libmysqld.lib,并且把这两个复制到项目目录。MySqlClie...
2020-03-14 15:09:21
547
原创 游标和条件处理
游标游标的基本概念在查询表时,会获得一个查询结果集,游标就是用来遍历这个结果集中每一条记录的,把查询结果集看作是一个容器,那游标就是类似于迭代器一样的东西,游标可以返回结果集中一行或多行数据,结果集是存在数据缓冲区里的,游标可以从数据缓冲区里读取相应的数据。游标只能用在存储过程和函数中,并且一次只能指向一条记录。游标类似于C语言中的指针,可以指向一块数据内存,然后通过这块数据进行访问,也...
2020-03-14 14:57:28
395
原创 事务和锁
事务事务的基本概念事务是作为单个逻辑单元所执行的一系列操作,如:新建一个数据库或表格,对表数据的插入、更新、删除,执行一个存储过程或函数等,都是一个事务。事务控制事务的控制有两种方法:隐式事务隐式事务是不用管理员手动写的,是指单独的insert、update、delete默认是隐式事务,由系统自动提交。显式事务显式事务就不是由系统自动提交的,是需要用户手动提交的。关闭隐式事务...
2020-03-14 14:42:56
284
原创 事件
事件事件的基本概念与触发器类似,都是在特定的条件执行相应的操作,但是不同的是,触发器是触发时执行任务,而事件是定时执行任务的。事件关键字:event基本作用:让数据库定时执行某些操作。#事件的创建格式#if not exists不存在就创建create event [if not exists] 事件名称 ON schedule #计划任务(定时操作:AT timestam...
2020-03-14 14:10:06
217
原创 触发器
触发器触发器的基本概念触发器是和表相关联的一个数据库对象,是一种特殊的存储过程。触发器关键字:trigger基本作用:通过对表进行数据的插入、更新或删除等操作来触发,用于执行某些操作的。触发器的创建创建语句格式:create trigger 触发器名 #[触发器名]触发时机 #触发时机:before|after触发条件 #触发条件:insert|update|deleteO...
2020-03-14 00:14:25
161
原创 数据库的存储过程和函数
存储过程参数可有可无,IN 表示数据传入,OUT 表示数据传出,INOUT 表示既可以传入又可以传出 。创建存储过程delimiter //##开始创建存储过程create procedure 存储过程名(in[out][inout] 参数名1 参数类型1,in[out][inout] 参数名2 参数类型2,……,in[out][inout] 参数名n 参数类型n)begi...
2020-03-13 23:44:37
173
原创 树与堆
树树的结构如下图,其实际是类似链表的结构,只不过后续连接的不止一个数据template <typename T>//树结构的定义(未包含实现功能)class Tree{ int size; //子节点数量public: T data; //数据 Tree **childs; //子节点 用数组指针来存放}这种形式画出来的连接图类似树状图而称为树结构,其...
2020-02-02 22:28:02
174
原创 C++实现A*寻路
A*寻路原理可查看之前的文章:游戏AI中的寻路算法(A*算法)上面的是C#,下面是用C++实现的Astart类(大致一样),main函数就要自己构造地图和随机://Astart.h//路径的节点 struct Node { int x; //坐标 int y; int G; //从起点到当前位置的值 int H; //从当前位置到终点预...
2020-02-02 02:48:00
798
原创 关联存储结构(辨认map,set)
pair使用map容器之前要知道pair是什么,pair是一种键值对的类型,key-value的形式,一个键代表一个值。map而map就是存储pair的容器,也可以理解为pair的数组。而key就是标识值的关键字(容器会以此来自动排序且不重复),我们简单理解为key为数组下标,value为值也行。setset是类似map但是其只是存储普通类型的容器,而不是存储键值对类型的容器...
2020-02-02 02:37:23
419
原创 顺序存储结构(理解vector,list,deque何时适用)
vector动态数组,取代C语言要自己手动申请数组,这是最常用的,在内存存储就是按照顺序的存放,简单就理解为数组,其特点也就是可以高效随机访问。list双向链表, 就是C语言理解的双向链表,在内存存储是随机存储,以链式结构连接,其特点是可以高效地随机插入deque双向队列,但是不是数据结构的队列,可以理解为动态数组和双向链表的结合,其有上面两者的特点,但是又没有其各自的高效,其存...
2020-02-02 02:15:44
896
原创 数组类的封装(泛型编程)
形式:template< class T>或者template< typename T>这个是提高代码的适用性,比如两个数相加,如果直接用普通函数那么,就要写几个不同参数的重载,如果用泛型编程,只需写一个。下面是类模板的应用数组类的封装:#pragma once #include <iostream>using namespace std;tem...
2020-01-18 17:34:10
353
1
原创 C++I/O流(打包和解包)
引用头文件#include<fstream>,使用对象来操作I/O流。创建文件操作对象fstream file(文件名,操作方式),ios::in(读取)、ios::out(写入) 、 ios::binary(二进制)利用I/O流来打包和解包这里打包和解包的格式要一致,要不然会出错,通常打包我们都会写一个索引表(类似书本的目录,方便我们取出内容),索引表格式为: 索引表大小(4个...
2020-01-18 12:53:55
1247
2
原创 C++异常处理(自定义错误类)
关键语句(没有finally)try{ //可能会throw出错误的代码块}catch(exception& e)//或者对应错误的类型{ //异常处理}自定义错误类继承exception并实现多态自定义错误类class Myexception :public exception//自定义错误类{public: Myexception(string s)...
2020-01-18 11:24:39
2001
原创 重载运算符
重载运算符的格式 返回值类型 operator 重载的预算符号(参数),其中this是一个对象参数,而且重载运算符必须符合原来的符号运输规则。比较普通的重载,比如+,对象相加,我们就要在类中写一个重载+的函数,使得这个+成立:class A{public : int age; int operator +(A const mya) { return this->age + ...
2020-01-10 14:50:17
207
原创 C++类的常量和静态
常量关键词:const 静态关键词:static类中使用这两个关键词,称常量成员,和静态成员。常量成员有常量属性和常量函数;静态成员有静态属性和静态函数。常量成员常量属性(在声明最前面加const):要在初始化列表初始化,然后不能再次更改其的值,也就是该属性为常量。常量函数(在声明最后面加const):属于this的所有数据成员都不能被修改,这是语法限定,相当于这个是读函数,不过形参,...
2020-01-10 12:52:00
990
原创 初始化列表
初始化列表:就是对类的成员(属性)进行初始化的操作。使用的原因:1.常量成员,因为常量只能初始化不能赋值,所以必须放在初始化列表里面,如const int a;2.引用类型,引用必须在定义的时候初始化,并且不能重新赋值,所以也要写在初始化列表里面,int &a;3. 没有默认构造函数的类类型,因为使用初始化列表可以不必调用默认构造函数来初始化,而是直接调用拷贝构造函数初始化。如...
2020-01-08 13:47:17
267
原创 浅拷贝与深拷贝
拷贝函数固定形式:ClassName(const &ClassName copy){}浅拷贝:缺省拷贝构造函数,这个大多数都会用到,其实就是把一个对象赋值给一个同类对象,而其原理就是把所有成员都以‘=’,也就是赋值的形式来完成。但是在涉及到动态内存方面的时候,这种浅拷贝就会出错,这时候就要用到深拷贝,如下类:class A{public : A() {} A(const cha...
2020-01-08 13:33:59
84
转载 【Unity】UGUI中RectTransform中Top和Bottom的设置,宽和高的设置,以及postion和锚点的设置
UGUI中RectTransform中Top和Bottom的设置,宽和高的设置,以及postion和锚点的设置using UnityEngine;using System.Collections;using UnityEngine.UI; /// <summary>/// 脚本位置:UGUI的图片/// </summary>public class test...
2020-01-02 22:22:41
2213
转载 Unity时间输出不同格式
dt.ToString();//2005-11-5 13:21:25dt.ToFileTime().ToString();//127756416859912816dt.ToFileTimeUtc().ToString();//127756704859912816dt.ToLocalTime().ToString();//2005-11-5 21:21:25dt.ToLongDateStri...
2020-01-02 18:01:33
623
原创 动态为Button添加带(动态)参数的点击事件
——个人笔记通常我们为Button添加事件都是在Unity面板中添加,带参数(一个)也一样,但是我们有时候需要添加带参数的事件,在生成这个Button之前不能确定,而在生成的时候才能确定那么就要用到动态添加事件,当然平时也可以动态添加(防止没了或者手动添加错误之类的问题)。方法可以点击参考,或者直接看下图(也是来自参考的地方):https://www.jianshu.com/p/e24ec59...
2020-01-01 23:40:27
2496
转载 UML建模——用例图
用例图主要用来描述角色以及角色与用例之间的连接关系。说明的是谁要使用系统,以及他们使用该系统可以做些什么。一个用例图包含了多个模型元素,如系统、参与者和用例,并且显示这些元素之间的各种关系,如泛化、关联和依赖。它展示了一个外部用户能够观察到的系统功能模型图。【用途】:帮助开发团队以一种可视化的方式理解系统的功能需求。 一、用例图所包含的的元素1. 参与者(Ac...
2019-11-24 13:33:58
582
原创 错手删除了office重新下载方法
我在下载profect,错手把office删除了,然后找到下面有效方法1、 打开网址https://stores.office.com/myaccount2、 使用已经绑定Office的微软账号登录。3、 点击界面右侧的“安装”,待安装完成后,Office已完成安装,不用重新激活。...
2019-11-15 11:30:09
4053
转载 机器学习
文章目录机器学习基本理论基本术语与方法特征选择概述多目标优化问题分类算法、经典算法分类算法NSGA2算法粒子群优化算法(PSO)聚类算法蚁群算法(ACO)其它算法前沿算法NSGA2算法前沿PSO算法差分分组算法其它算法演化计算算法协同进化/演化python机器学习深度学习神经网络特征选择算法点击上面的目录链接可快速定位所需内容,点击每个文章链接可全文查看。机器学习基本理论...
2019-11-09 13:22:03
260
转载 [easyx游戏开发]---实现透明背景效果
使用精灵图和掩码图制造透明效果。精灵图:就是你要绘制的图片,希望该图片某些区域透明。 掩码图:和精灵图对应,要显示的区域用白色,透明的区域用黑色。 实现步骤1.打开ps,新建一张图,宽高和图片大小一致,然后点编辑–>填充–>选黑色2.点击打开–>选择对应的图片点击左栏快速选择工具选取要裁剪的部分,Ctrl+C,点击原图,Ctrl+V,将原图移到...
2019-10-29 21:34:27
1427
2
原创 多种排序(C实现)
——个人笔记桶排序(计数排序):适用于范围小而且重复的数字多,其过程就是,重新开一个数组(桶,通常用数组下表来标志桶的有序),来对无序的数组来进行计数(不同的装在不同的桶里),然后再按照桶里的顺序排就行了。void BarrelSort(int arr[],int n,int k)//n为数组长度,k为桶的大小(0到k){ int *barrel = (int *)malloc(size...
2019-10-08 22:35:09
143
原创 为什么unity编译时gradle报错
——个人笔记这个对于我这种第一次弄就出错的人来讲,我完全不知道怎么处理,百度了结果,搜出来的第一二篇居然叫我把gradle改为internal,那根本就没解决问题。我无语,所以我记录下来我解决的方法,这两种的区别(如图)。那么怎么解决问题呢?方法:我们直接把错误信息复制到翻译器,看一下他的解释(这种操作,平时都可以用,顺便可以看一下关键词下次遇到就不用翻译了)。看一下是java jdk版本...
2019-10-02 23:42:58
678
原创 unity的 正射摄像机视口自适应(保证宽度都能看到)
——个人笔记unity的ui自适应,但是游戏物体(指的是2D3D的物体)的适应呢?unity会自动帮我们处理,不过他处理的方式是,保证高度能全部看到,而裁剪宽度。如果我们要保持宽度都能看到那么往下看,不需要则直接继续开干!那么写一个脚本,有一个公式实际视口=初始视口*初始宽高比/实际宽高比这个只对orthographic的投射有效。(透视摄像机就没办法)创建一个脚本:using Unit...
2019-09-26 01:03:48
764
原创 Unity的UI的自适应缩放
——个人笔记UI设置锚点设置,这个就是设置UI的四角的点与设置的锚点的距离固定着。通常是9个位置,但是也可以自己手动拖动。Canvas设置点击canvas,找到下面的组件,然后把UI Scale Mode 设置为图中的自适应模式Scale With Screen Size,这个是根据不同手机不同分辨率自适应缩放,Reference Resolution是你设置的最佳分辨率,Match就...
2019-09-26 00:38:43
7040
2
原创 unityRemote使用的设置
——个人笔记unity设置首先把平台设置为Android安卓然后点击Edit的Project Settings的Editor,去设置,Device设置为任何安卓平台,Compression为图压缩方式(随便一个都行),Resolution设置为Normal(正常)。如果会卡顿才设置为Downsize(降一个级别)。手机设置在设置中找到开发人员选项,然后打开开发人员选项,并且打开里面的...
2019-09-19 01:11:33
713
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人