自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 游戏算法之洗牌算法

洗牌算法作用实现Fisher_YatesInside_Outrandom_shuffle感想作用在游戏里面,常常会遇到要对一个序列进行随机打乱,例如斗地主的时候需要先对54张牌进行洗牌(随机打乱)。作用:对一个序列进行随机打乱。实现Fisher_Yates原始序列inputList和一个存放答案的序列ansList,每次随机从inputList当中选出一个数放到ansList末尾,并且把选中inputList里面元素踢出去。Inside_Out遍历数组inputArray从最后一个数开始,每

2020-10-10 22:10:17 19

原创 数据结构与算法——树(二)二叉树基本概念、常用算法

二叉树二叉树的基本概念二叉树的存储结构结构体数组链表二叉树的遍历先序遍历中序遍历后序遍历二叉树的基本概念二叉树:定义:满足树的定义,但每个结点最多两个子结点,二叉树是一个有序树。(区分左右子结点或者说左右孩子)容易混淆的概念:二叉树和度为2的有序树:二叉树可以为空树,但度为2的有序树至少有三个结点,以为度为2表示结点中最大的度为2;二叉树中的子结点始终都有左右之分,而度为2的有序树是相对的,也就是只有一个子结点的时候是不存在左右之分。满二叉树:定义:一颗高度为h的二叉树,且含有2^h

2020-09-11 22:39:54 67

原创 数据结构与算法——树(一)树的基本概念

树的基本概念

2020-08-13 17:51:13 68

原创 C#知识点(7)属性、索引器

属性、索引器属性(Property)属性的概念访问器抽象属性接口属性索引器(Indexer)索引器使用重载索引器属性和索引器的同异属性(Property)属性的概念字段:是在类或结构中直接声明的任意类型的变量。属性:使用访问器(accessors)读取或者操作字段,本身式不保存任何数据的。属性出现的范围:类(class)、结构(structure)和接口(interface)。本质上:属性其实也是方法,不过是用来读取操作字段的,反编译就可以看到set和get其实是方法。访问器访问器(a

2020-07-22 23:43:48 71

原创 C#知识点(6)泛型

泛型

2020-07-21 15:09:53 39

原创 C#知识点(5)接口、抽象类

接口、抽象类接口抽象类接口和抽象类的同异接口接口:一种约束,实现接口的类或者结构必须遵守该约定。声明:用interface 关键字声明。接口只能包括方法,但是不能实现它们。泛型接口和非泛型接口:泛型接口演示,泛型接口可以让方法普适性更强。 interface ICompare<T> { bool Compare(T obj); } public class Student : ICompare<Student> {

2020-07-20 15:26:05 49

原创 C#知识点(4)继承和多态、sealed关键字

继承和多态、sealed关键字继承继承概念注意点多态1.重载(Overload)2. 重写(Override)虚方法(virtual)抽象方法(abstract)抽象方法和虚方法的区别3. 覆盖/隐藏4. 三者区别sealed关键字继承继承概念继承:通过继承,可以创建新的类,以便重用、扩展和修改其他类中定义的行为。被继承的类称为“基类”,继承它的类称为“派生类”。限制:类只能被单一继承,但接口可以被多重继承。特点:可传递。注意点基类中的初始化,由于继承了基类的成员变量和成员方法,因此父类

2020-07-19 23:09:00 53

原创 C#知识点(3)访问修饰符、方法参数关键字“params、ref、in、out”

多线程多线程基本概念进程线程并行并发C#中的多线程多线程基本概念进程线程并行并发C#中的多线程

2020-07-17 23:01:28 85

原创 C#知识点(2)委托与事件

委托(Delegate)什么是委托委托:是存有对某个方法的引用的一种引用类型变量。用处:常用于实现事件和回调方法。声明委托声明委托:相当于声明一个类,委托在声明的时候就决定好了它可以引用的方法标签。例如下面的委托,它就只能引用带有两个int参数和返回一个int类型变量的方法public delegate int calculate(int a,int b);实例化委托实例化委托:委托对象必须使用 new 关键字来创建。public delegate int calculate(

2020-07-14 22:19:22 55

原创 C#知识点(1)拆箱与封箱

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar

2020-07-05 18:16:09 59

原创 unity2D学习(14)血条显示、Canvas中Render Mode的三种模式介绍
原力计划

1 血条显示2 代码控制

2020-03-16 17:24:57 356

原创 unity2D学习(13)PS绘制像素血条

1 PS绘制素材(以像素风血条为例,后面做游戏要用)2 导入unity

2020-03-14 16:01:05 150

原创 unity2D学习(12)角色发射子弹
原力计划

1 子弹2 枪口

2020-03-12 14:59:53 463

原创 unity2D学习(11)角色受伤弹开、用UI Text显示血量

1 角色受伤效果想法:角色如果碰撞到敌人,就会显示受伤动画。2 入门UI显示血量想法:角色受伤后会扣除一定的血量。

2020-03-05 18:27:02 694 2

原创 unity2D学习(10)创建敌人、为敌人编写简单的AI

1 创建敌人按照之前创建Player角色的方法,一样创建出敌人,并为角色添加刚体、碰撞、动画。(具体可以参考我之前的unity2D学习(4)(5))素材包里面有三种敌人,我选择crab来做示范动画状态转移,我把2为敌人设置简单ai敌人简单ai的想法:如果Player角色出现在某一范围内,敌人就会超玩家走去碰撞。3角色碰撞敌人受伤设置Player角色受伤状态的动画转换,然...

2020-03-03 16:03:31 1034

原创 unity2D学习(9)爬墙、跳跃修改、组织Inspector中的属性显示

1 爬墙我把cling看成了climb,所以做了个爬墙的代码。代码的思路:把角色分为在地上、在墙上、空中三种状态。在地上的时候,可以左右移动、如果碰到墙可以爬墙;在墙上的时候,可以上下爬;在空中的时候,碰到墙可以爬墙。伪代码:(这个思路有伪代码好理解一点)2 跳跃修改问题:之前写的跳跃,跳跃起来之后还能够左右移动,但是喜欢角色跳起来后不能左右控制。但是不能左右控制后,跳跃的横向...

2020-02-28 20:09:41 583

原创 unity2D学习(8)修复角色走路的卡顿、设置二段跳

1修复角色走路的卡顿之前编写的游戏试玩中总会出现角色在Tilemap(非末端的瓦片)上移动会有卡顿,其实就是因为两个都是方形的碰撞器容易卡住。解决方法:(3种)修改角色碰撞器Edge Radius变成胶囊碰撞器:Edge Radius是角色Box Collider 2D里面的一个参数,当Edge Radius大于零时,每个边缘的作用类似于带有圆形末端的“胶囊”形状。更换角色碰撞...

2020-02-22 21:54:52 984

原创 unity2D学习(7)动画状态切换、调整Tilemap碰撞点

1 补充角色动画2 动画状态切换

2020-02-17 18:22:19 1064

原创 unity2D学习(6)代码控制角色、摄像机跟随

1 代码控制角色

2020-02-14 15:23:06 311

原创 unity2D学习(5)为角色添加动画

1Animation介绍2 为角色添加动画

2020-02-14 15:22:47 178

原创 unity2D学习(4)建立角色、添加重力和碰撞器

1 用Sprite建立角色2 角色添加刚体赋予重力刚体Rigidbody 2D详细属性说明可以参考这篇大佬的总结:https://blog.csdn.net/NCZ9_/article/details/840357083 为角色添加碰撞器为角色添加配装器有:圆形碰撞器(CircleCollider2D)、盒子碰撞器(BoxCollider2D)、多边形碰撞器(Po...

2020-02-14 14:52:33 265

原创 unity2D学习(3)渲染层级以及背景拼接

1 图层layout2扩展背景

2020-02-07 23:35:11 203

原创 unity2D学习(2)Tilemap绘制地图

1 Tilemap介绍Tilemap(瓦片地图):unity中自带的快速构建2D场景的工具2Pixels Per Unit介绍需要先介绍一下Pixels Per Unit(每个单位的资源像素量),这个属性在你点击你的素材的时候会出现(如下图所示)。从左下的文件里面找到素材图片,然后单击,右上边就会出现素材图片的信息,就会看见Pixels Per Unit。Pixels Per...

2020-02-02 17:32:55 1537

原创 unity2D学习(1)新建2D项目并导入素材

1 unity新建项目:打开unity点击new可以进入下图页面进行新建项目template选择游戏类型为2Dproject name是项目名字location是项目的地址add assert package可以选择你之前从unity store导入过的本地素材但是你如果是第一次使用的话,是没有已经导入过的素材的最后点击create project,就可以创建u...

2020-01-30 16:10:13 1137

原创 acm专题学习之线段树(四)应用:求区间最大连续和

问题:求某个区间的最大连续和,例如序列4 -3 6 1 7 8,询问区间[2,5]中的最大连续和,也就是[-3 6 1]的最大连续和,肯定是7。(如果序列只有正数的话是不同考虑这么麻烦的,这里主要针对的是有正数也有负数)思路:对于这个问题,很容易想到n^2的暴力,再优化点也就是求前缀和找区间最大值和最小值,用最大值减去最小值就是答案(其中的最大最小值指的是前缀和,最大值的前缀和下标必须大于最小...

2019-07-30 19:48:47 126

原创 acm专题学习之数学(三)高斯消元+Gym - 100008E

题意:给你矩阵大小n×m,让你求出一个0/1矩阵,它的上下左右加上自己1的个数为偶数,且矩阵尽量不为全0。是多case。条件:上下左右加上自己1的个数为偶数 矩阵尽量不为全0思路:会发现只要知道了第一行的排列那么就可以推出剩下所有行,这个时候很容易想到之前学的翻转问题,利用第一行状压枚举,但是会发现m的范围40,2^40暴力是不可能的。这时候会发现既然能够推出下一行,且n+1行全为0,...

2019-07-24 22:58:25 38

原创 acm专题学习之STL(一)random_shuffle+CodeForces - 330E

题意:给你一个图,图满足每个点最多连两个边,不存在自环,两点之间不存在多个边。让后然你重新组合触一个新图,新图满足旧图的条件,但是不能存在旧图所拥有的边。问你新图是否存在?存在输出边,不存在输出-1。条件:每个点最多连两个边,不存在自环,两点之间不存在多个边 新图不能存在旧图所拥有的边思路:因为他说了最多连两条边,那么我们把所有的点都连成环,如下图。然后随机环上的点,如果换上组成边和旧...

2019-07-18 10:05:30 87

原创 acm专题学习之数学(二)康托展开+CodeChef - STFM

题意:给你一个公式F(x) = 1 × (1! + x) + 2 × (2! + x) + · · · + x × (x! + x),n个pi,计算F(p1) + F(p2) + · · · + F(pn),然后结果模m。康拓展开:X=a[n]∗(n−1)!+a[n−1]∗(n−2)!+...+a[i]∗(i−1)!+...+a[1]∗0!含义:设有n个数(1,2,3,4,…,n),可以有...

2019-07-14 11:27:44 71

原创 acm专题学习之博弈(三)实战+URAL - 2104

题意:Alice和Bob在玩一个游戏,这个游戏有个纸条,纸条的两面有相同长度且由AB组成的字符串。每次其中一个人可以对折一次纸条,直到不能再对折为止。如果最后纸条表面全是A则Alice获胜,如果全是B则Bob获胜,如果都不是则平局输出Draw。Alice为先手。思路:dfs搜索,但是这里也用到了博弈的知识。对折每次只有偶数才能对折,那么结束条件就是纸条长度为奇数的时候。这种两面对折,可以不用分...

2019-07-11 11:14:23 71

原创 acm专题学习之数学(一)分解质因数+URAL - 2102

题目:数字N(1e18),其分解后(N=a1^p1*a2^p2...),问幂的和(p1+p2+p3...)是否为20。思路:暴力+优化:通过观察1e6*1e6*2^18>2e18,会发现最多只有一个大于1e6的因子,那么可以只求1e6范围内的质因子,然后如果过了1e6后和的数量还为19,那么只需要判断除后剩下的是不是质数。 分解质因子+优化:套用分解质因子模板,在后面不可能再有20...

2019-07-11 00:15:57 311

原创 CF练习——Codeforces 1172B(组合数学)

题意:Nauuo有n个不同的点(从1到n),然后她想让n个点排列在圆上,并且满足这些点的连接关系满足一颗她给的树,点和点之间的连线不能够交叉。n个点排列在圆上顺时针的序列有多少种不同。条件:n个不同点排列在圆上 n个点之间的连接关系构成一个树 点之间连接的线不能够相交 n个点排列在圆上顺时针的序列有多少种不同样例来方便理解一下:思路:可以从样例出发,如果没有题目的限制...

2019-07-08 12:07:40 109

原创 acm专题学习之数据结构(一)划分树+POJ 2104

划分树:1 功能:查询区间第k大2 复杂度:logn3 思路:主要是两步,一个是建树,一个是查询。4 建树:找到序列的中位数,把大于中位数的扔到中位数的左边,小于中位数的扔到数的右边。这样就被分成了两个字区间,然后在子区间再重复相同的步骤,直到没有数字。(递归的过程)使用分层的二维数组tree[20][maxn](一般十万级别的数字20层足够)。建树前需要重新排一次序,因为划分...

2019-05-03 12:18:54 122

原创 acm专题学习之单调栈(一)单调栈入门+Max answer

单调栈:定义:栈里面保持一种单调性举例:栈里面的元素为1,2,5,6(6是栈顶) 插入一个元素7 7大于栈顶元素6,可以直接入栈,此时栈为1,2,5,6,7 插入一个元素4 4小于栈顶元素7,7出栈,栈为1,2,5,6 4小于栈顶元素6,6出栈,栈为1,2,5 4小于栈顶元素5,5出栈,栈为1,2 4大于栈顶元素2,可以直接入栈,此时栈为1,2,4遇到比栈顶元素大的就直...

2019-04-23 23:06:46 160

原创 acm专题学习之最短路(四)次短路+LightOJ - 1099

次短路定义:找出第二短的路径长,次于最短路。思路:求两次最短路,一个是到起点的最短路,一个是到终点的最短路。然后遍历每一条边,每一条边的两个点分别到终点和起点的最短路的和+边的长度,如果这个和大于最短路,就让ans取这些路中的最小值就好了。LightOJ - 1099题意:给你n个点,m条边,让你求出次短路(次短路的长度要小于最短路,相同的不算)思路:次短路的思路。代码:...

2019-04-07 10:50:27 108

原创 acm专题学习之二分图(一)二分图判定(染色)

二分图:二分图是什么:顶点集可分割为两个互不相交的子集,并且图中每条边依附的两个顶点都分属于这两个互不相交的子集,两个子集内的顶点不相邻。(边不能连接同一个子集的点)图示:二分图染色:情况:给一个图,没有自环,没有同一条边连着多个点有两种颜色给你染,相连的两个点不能染成不同颜色用途:可以用来判断是不是二分图对于连通图思路:bfs遍历,第一个点取一种颜色,遍历的时候看看会...

2019-04-03 21:42:52 419

原创 acm专题学习之字符串(三)AC自动机+HDU - 2222

AC自动机:与kmp的区别:AC自动机是多模式串匹配,kmp是单模式串匹配思想:字典树和kmp的结合,还是和字典树一样建树,但是要加入个fail指针来实现和kmp的next类似的回溯功能。fail指针的回溯:对下图的解释,每个结点都有编号(图中原点里面的就是编号),fail指针的指向(图中的虚线)。搞懂fail指针是指向的是什么,fail指针指向的是父节点相同的同值节点(根节点视为与任...

2019-03-31 17:18:23 75

原创 acm专题学习之字符串(二)字典树+Gym - 102020D

字典树(Trie树)使用情况:用在找出某单词是多少个单词的前缀理解思想:利用字符串的公共前缀来减少查询时间树图:单词ac ak day dad fall fine 构成的字典树模板题Gym - 102020D题目意思:给你一些单词,然后每个字母对应着手机上九宫格打字的数字,给你一些数字串,问你数字串是多少个单词对应数字串的前缀。字典树思路:把单词转化为数字,就是一道裸...

2019-03-31 01:01:13 141

原创 acm专题学习之字符串(一)kmp算法+kmp的next理解+CodeForces - 126B

kmp的next:1 next数组含义:除去第i个数,在一个字符串里面从第一个到第(i-1)字符串的前缀与后缀最长重复的个数。2 理解一下代码过程:(abacbaba为例)”“,i==1,前面没有字符,没有前后缀,next为0“a”,i==2,只有一个字母,没有前后缀,next为0(第1个数)“ab”,i==3,前缀为“a”,后缀为“b”,前后缀相同长度为0,next为0(第2...

2019-03-31 01:00:23 86

原创 acm专题学习之网络流(一)最大流+CSU2073: Tile Cut

网络流最大流问题网络流最大流问题:给定有向图,有两个特殊的源点s和汇点t,每条边有一定的容量,问满足从s到t的最大流量一些词汇的理解:流量flow,是指每条边实际流过的量 容量capacity,是指每条边可以通过的最大流量 残量residual,是指每条边的上的容量和流量之差最大流基本算法——增广路算法增广:从源点到汇点的某一条路,每条边的残量取最小值d,这个最小值就是这条路...

2019-03-30 23:51:01 101

原创 acm专题学习之动态规划(二)LIS最长上升子序列

最长上升子序列:一个序列,求出一段不断严格上升的部分,不一定要连续。(区别于子串:要求连续)求最长上升子序列有两种方法,一个是复杂度n*n,一个是复杂度n*log2n。复杂度n*n的算法:dp[i]对应为前i个的最长上升子序列。 for(int i=1;i<=字符串的长度;i++) { dp[i]=1;//前i个字符的最长上升子序列最少为1,就...

2019-03-23 10:30:21 77

空空如也

空空如也

空空如也

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

TA关注的人 TA的粉丝

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