- 博客(35)
- 收藏
- 关注
原创 C# 使用笔记
各种"?"用法a ?b:c : 判断a为真返回b,否则ct? :声明可空类型ta??b: a 为真返a, 否则ba?.c : a 为真,返回其属性c, 否则是空的可空类型a?[i] : a 为真,返回索引i的值,否则是空的可空类型int i = 23 > 12 ? 23 : 12;Debug.Log(string.Format("23 > 12 ? 23 : 12: {0}", i));TestInfo info = new TestInfo();int? ii = inf
2022-03-31 22:37:24
963
原创 Ai相关总结
本文为个人多年项目的理解,如有不对,请指出概述Ai一般与玩法相关,在玩家的感管上就是,非玩家角色表现得是否“足够的聪明”及“良好的交互”。Ai一般分为“规则型”与“学习型”。“规则型”指AI是由固定的行为,并通过不同组合产生出所谓的AI。“学习型”当然是指现在流行的“机械学习”,产生出所谓的AI。“规则型”是固定的,比较适合在强调“数值型”的游戏,而“学习型”更适合于“竞技对抗型”的游戏。当然,他们的界限不是绝对的,“规则型”是“学习型”的基础,而“学习型”又产生出新的“规则型”结果。常.
2022-03-28 22:01:58
4048
原创 关于帧同步系统(一)
本概述都是基于自己经历的项目见解,不一定是正确的。这是一个系列总结,以后会补充更多帧同步的概述帧同步,其实是基本帧更新的同步方式,但并不是要求每一帧都同步数据,而要求多端,他们执行在指定的帧号上,而且每一帧,多端运行结果都是一致的一般而言,所谓的“帧”不是真实时间的帧(虽然也会受真实时间影响),而叫做作“网络帧”,由“服务器”决定能不能执行下一帧,并广播到多端上驱动更新“帧”。这个是最简单的方式,实质上项目为了效果好,不会这么老实等待驱动事件“网络帧”更新一般很慢,主要执行“逻.
2022-03-27 20:05:54
2286
原创 【作业】文本左右对齐
题目题目来自leetcode有N个单词的句子,要求每行限制在M个字符中显示,最左单词要向左对齐,最右单词向右对齐,空格要求平均分,不能时最左边的显示最多的空格结论输入:“This”, “is”, “a”, “max”,“word”, “line”, “test”, “,”,“which”, “is”, “a”, “test”,“of”,“leetcode”代码#pragma#include <vector>#include <iostream>#
2022-03-26 22:46:09
635
原创 部分优化总结
想到了会再补充运行效率通用优化部分很复杂的逻辑,较通用的是,使用并行化处理,开多线程也可以通过分帧处理,一段处理,分开到多帧里处理算法或结构的改进脚本优化脚本往更快的语言搬相同的逻辑一般语言速度对比 C++ > C# > lua > python脚本减少对低层接口的调用,或脚本一次性收集后,再统一调用。低层接口一般是为了调用一些与引擎相关的功能,引擎一般是使用更快的语言编写,故脚本与引擎语言存在box与unbox流程,即两种语言间的数据处理频繁的数.
2022-03-10 15:36:27
649
原创 成员函数相关问题
关于类成员函数类的大小本身不会包含类成员函数的指针地址,class TestASize { int id = 444;};class TestBSize {public: int id = 232; void test1() {} void test2() {}};int main(){ TestBSize b; TestASize a; std::cout << "a size: " << sizeof(a) << std::en
2022-03-09 17:15:57
212
原创 重写allocate
allocate重写简要一般STL库里的容器都会使用allocator来分配内存实现自己的allocator可以达到让容器使用自身的内存管理实现allocator不必重载allocator类,随便开一个新类即可allocator有五个必须有的函数allocate: 用于开辟内存,功能类似operator newdeallocate: 回收内存,功能类似operator deleteconstruct: 调用构造函数destroy: 调用释构函数重绑用的拷贝函数template
2022-03-08 15:42:40
366
原创 关于C++ 11的右值
右值的概念右值,较简单地认为,是指没有变量名的数据(这说法当然不是很准确)C++11 新增处理“右值”的类型,允许指向右值,并用“Ty&&”声明这里不计划对右值概念展开说,以下主要谈谈“右值”的使用右值的使用右值应用的一般是为了解决一些临时数据拷贝问题做法一般也是直接拷贝右值的内存地址,不做深度拷贝,并放弃右值对该内存引用移动拷贝:其实就是使用以上方法构造一个新对象例如,我们需要从结构里拷贝有字符串与数组class MoveConClass {public:
2022-03-01 19:30:04
619
原创 【作业】八皇后问题
题目在nxn的格子里,放入N个皇后棋,并使他们相互之间无法攻击皇后可攻击的方向都为“米”字型, 八方向直线攻击,如图其中这是一种解决方法:4.请输入n的数目,并返回所有可能的结果,例如如下:input: 4find res count: 2[0,1,0,0,0,0,0,1,1,0,0,0,0,0,1,0][0,0,1,0,1,0,0,0,0,0,0,1,0,1,0,0]代码由于是NxN个格子,每一行必定有一人棋子,这里我每行都找一个可放位置,然后再递归遍
2022-02-14 14:04:03
148
原创 【作业】串联所有单词的子串
题目给一个字符串s 和一些长度相同的单词words, 在s 里找到所有words按任意顺序组成的子字符串,并返回这些子字符串的起始位置例如: s = “barfooothefoobarman” words = [“foo”, “bar”]返回 [0, 10]结论:s: “barfooothefoobarman”words: [“foo”, “bar”]res: [0, 10]s: “wordgoodgoodgoodbestword”words: [“word”, “good”, “b
2022-01-21 13:59:19
160
原创 C++ 使用备忘
C++ 11decltype 获取变量的类型C++ 17optional 获得选择值#include <optional>std::optional<int> test_optional(int i) { if (i > 120) return std::optional<int>(200); return std::nullopt;}std::cout << "test_optional()" &
2022-01-19 17:00:05
661
原创 【作业】数独
#include #include #include #include #include <time.h>#include <assert.h>#include class Sudoku {public:static const int ONE_LINE_COUNT = 3;static const int LINE_TOTAL_COUNT = ONE_LINE_COUNT * ONE_LINE_COUNT;static const int ONE_MAT_CO
2022-01-18 14:10:32
353
原创 K个一组翻转链表
题目一个链表,每个K个节点一组翻转,返回翻转后的链表例如链表为{1, 2, 3, 4, 5 }K = 2翻转后 {2, 1, 4, 3, 5}结果list: 1, 4, 7, 10, 56, 23, 23, 2, 87K = 3reverse:7, 4, 1, 23, 56, 10, 87, 2, 23list: 7, 4, 1, 23, 56, 10, 87, 2, 23K = 2reverse: 4, 7, 23, 1, 10, 56, 2, 87, 23代码#include
2022-01-13 22:53:20
179
原创 [作业]合并K个升序链表
题目该题来自leetcode合并K个升序链表结果1, 4, 7, 103, 89, 111, 1206, 12, 21, 30, 32merge result:1, 3, 4, 6, 7, 10, 12, 21, 30, 32, 89, 111, 120代码不考虑效率的话,最简单方法是一个一个链表合并,前面合并后,再合并后面的,假设各链表长是n, 有k个链表,总遍历数为 2n + (3n) + …+ k*n∑m=2km∗n\displaystyle \sum_{m=2}^{k
2021-12-08 23:15:24
188
原创 [作业]实现正规表达式中的“.“及“*“的功能
题目实现正规表达式中的".“及”*“的功能,其中”."表示匹配一个任务字符,“ * ”则重复前一字符任意数量(包括零)结果str =“aa”, exp =“a”RES: 0str =“aa”, exp =“a*”RES: 1str =“ab”, exp ="."RES: 1str =“aab”, exp ="cab"RES: 1str =“mississippi”, exp ="misisip."代码目前是先分析正则表达,再一个个匹配字符的做法,只针对 “*”做了结束循环的判断
2021-12-02 22:56:37
462
原创 【作业】恢复二叉树
题目一个升序的二叉树里,其中有两个结点的数据被误交换了,现需要找出这个两结点,交换回来结论注意,数组表示的二叉树,顶层从0开始,其中结点里的零表示空结点,n层从 2n 开始,像【1,3, 0, 0,2】,顶层是1, 第二层是3, 0,第三层左到右,0, 2, 0, 0before:lst: 1 3 0 0 2tree: 0 3 2 1 0resultlst: 3 1 0 0 2tree: 0 1 2 3 0before:lst: 3 1 4 0 0 2tree: 0 1 0 3
2021-12-01 20:45:54
253
1
原创 【作业】寻找两个正序数组中的中位数
题目题目来源leetcode有两个数组,长度各为m, n,且数组内数据排序是正序(由小到大),合并这两个数组成新的正序数组,并求出他们的中位数。要求O(log(m+n))结果merge two list:1 4 89 12340 3 999 1000res: 0 1 3 4 89 999 1000 1234middle num: 46.5merge two list:1 4 89 12340 3 1000res: 0 1 3 4 89 1000 1234middle num
2021-11-30 19:46:56
524
原创 【作业】两个很简单的题目
前计划把一些太简单的题还是放到一起说好了题目1边长a, b, c, n 组成一直角三角形,其中他们关系为 (a+b) x (a+b)+ c x c = n x n, 且a+b < c问有a,b, c, n有多少种组合结论input n:551, 32, 442, 31, 443, 30, 444, 29, 445, 28, 446, 27, 447, 26, 448, 25, 449, 24, 4410, 23, 4411, 22, 4412, 21, 441
2021-11-30 04:05:06
167
原创 【作业】难倒小学生的问题?
题目妹的,完全是标题党所谓难题观察以下计算,发现有什么规律?1 + 1 = 01 + 6 = 16 + 6 = 28 + 1 = 28 + 6 = 3其实,就是数字的圈数计算,1 有零圈,6有一个, 8有两其实是考图形?那么按0,1填充m,n 的表格,1表示填充,组成图案1,6或8,并识别出他的数字结果row: 7, col:70 0 0 0 0 0 00 0 1 1 1 0 00 0 1 0 1 0 00 0 1 1 1 0 00 0 1 0 1 0 00 0 1
2021-11-27 18:48:37
516
原创 【作业】最小路径
题目一个m * n的列表中,每格上有一个数,找到从左上角到右下角的路径,经过所有格的数之和最少。注意,每次位移只能向右或向下。结果下面path里的编号,是指从上到下,从左到右的格子编号。131151421the path is: 0 1 2 5 8the values is: 1 3 1 1 1total: 7123456the path is: 0 1 2 5the values is: 1 2 3 6tot
2021-11-27 00:47:19
346
原创 [作业] 六角填数问题
题目题目来自csdn每日一刷如上图六角星,有12个孔,每个孔按上面编号,各填入不重复的1~12个数,并使每条线的上的总和相等。要求输入前3个数字后,生成剩余的数字。结果input 3 nums:1 8 2FIND the res:1 8 2 9 7 11 10 12 3 5 6 4each line num is:26 26 26 26 26 26input 3 nums:5 9 1FIND the res:5 9 1 4 5 3 6 10 2 3 4 5each line n
2021-11-25 00:25:30
1388
原创 【作业】报数游戏
题目来源CSDN每日题目有n个人,每人一数,且最从小到大排成数列,叫m次,每次叫的数t, 让数列中第一个大于t 的人报出其数结果input join game player count: 5input round count: 6every player’s num:107 136 2491 3440 23380nums for calling31295 3435 10003 14278 10010 1416result:23380 3440 23380 23380 23380 2
2021-11-24 00:03:29
2883
原创 【unity3d】GUI 图像自动适配屏幕大小
目的图像大小是固定,直到屏幕的大小小于这个图像大小时,图像在保持自身长宽不变的情况下,缩小到可以在这个屏幕中可以完整观看。结果目前需要跑运行模式,而且要作为该图的组件对象设置组织:background的Canvas设置Panel设置为填满Image 加入"AutoUiSize"的组件(下面有代码),设置为居中代码using System.Collections;using System.Collections.Generic;using UnityEngine;
2021-11-23 23:46:06
4059
原创 【作业】外观数列
题目给定正整数n, 输出外观数列的第n项结果:input a num: 4res: 1211input a num: 5res: 111221input a num: 6res: 312211input a num: 1res: 1input a num: 2res: 11input a num: 3res: 21input a num: 4res: 1211input a num: 5res: 111221代码事实证明,做题目不要过分考虑内存问题,下面为了
2021-11-22 20:10:27
410
原创 【作业】水滴问题
问题假设水滴长宽都是1,柱子宽是1,那么给了这个柱子的二维高度图后,在下雨后,柱子间能容纳多少水滴例如:1代表柱,0代表水滴11000110110110111111其高度列为0, 1, 0, 2, 1, 0, 1, 3, 2, 1, 2, 1结果为 611000011001011101111101114, 2
2021-11-21 23:14:40
677
原创 C++ 小结构的使用注意
小结构的使用注意小结构,主要是指struct或class,其声明的属性的总大小很少,一般就只有几个基本类型的大小这些小结构作为函数的参数或返回值声明的,建议直接让他们拷贝进去, 不要用指针或引用类型了这个问题与CPU寄存器有关,引用与指针类型只有引用地址进入寄存器,具体数据还在内存,导致每次调用时,CPU还得去内存取一次值以下进行测试,每种方式调用测试10万次,clock计时,结果是test_fun1 “const TestDat&” cost: 1785test_fun2 “co
2021-11-20 20:44:58
225
原创 C++调用lua的基本环境建立
目的在C++中建立lua运行环境,可以跑基本的lua脚本执行以下lua代码print("hello world")输出结果hello world准备lua库直接去lua.org 下lua源码如果不用makefile转成vs工程话,也可以直接创建新vs项目,把文件拖进去就可以了,注意项目中声明宏LUA_BUILD_AS_DLL在自己的工程里引lua.lib, 头文件目录也设置到src目录由于lua是C生成了,为了不让其他文件引用麻烦,并为隐藏lua的调用,建议lua调用都在
2021-11-20 19:51:46
451
原创 求一个3位是否为水仙花数
题目求一个3位是否为水仙花数水仙花数指一个数上各位上的数的立次方后的和,等于原来这个数例如 371 = 33+73+13= 1 + 343 + 27结果All the narc nums:153370371407Begin test371The num '371’IS Narc!!443The num '443’is NOT Narc!!代码#include <iostream>#include <sstream>#include <ve
2021-11-20 16:01:14
352
原创 计算阶乘的和
题目计算 1!-2!+3!-4!+5!-6!+7!-8!+9!-10!, 输出结果结果+1!-2!result: -1+1!-2!+3!result: 5+1!-2!+3!-4!+5!-6!+7!-8!+9!-10!result: -3301819代码int CalFactorialRes(int num) { int cur = 0; int cur_fac = 1; for (int i = 1; i <= num; ++i) { std::cout <<
2021-11-19 13:49:48
534
原创 用递归求第N项的值
题目用递归求,数列1, 2, 4, 2, 3, 6, 12, 6, 3 … 求第n项值结果1, 2, 4, 2, 3,res:31, 2, 4, 2, 3, 6, 12, 6, 7, 14, 28,res:281, 2, 4, 2, 3, 6, 12, 6, 7, 14, 28, 14, 15, 30, 60, 30, 31, 62, 124, 62, 63, 126, 252, 126, 127, 254, 508, 254, 255, 510, 1020, 510, 511, 1022,
2021-11-18 20:13:08
1189
原创 C++ 字符串连接速度测试
C++ 字符串连接速度测试测试函数strcpy, sprintf, string::operator+, std::stringstream测试结果连接10万次,使用是clock,单位应该是毫秒======test begin=strcpy cost:450sprintf cost:510string::operator+=() cost:21stringstream cost:35======test end=测试函数``c++std::cout <<std::en
2021-11-18 14:00:25
601
原创 Blender 法线贴图的创建方法
这里记录一些法线贴图的做法1.比较适合一些单面的物件做法:(1)建立正则建立,垂直地拍向物件(2)分出镜头窗口调整为法线模式镜头观测(3)制作完物件后,保存viewport图 使用view->viewport render image...
2020-07-10 14:00:57
1797
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人