自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(210)
  • 资源 (9)
  • 收藏
  • 关注

原创 ubuntu 部署go-vue-admin

【代码】ubuntu 部署go-vue-admin。

2024-03-29 19:52:30 78 1

原创 git 经典图

开局一张图,理清了git。

2023-08-08 07:14:27 139

原创 Apple 内购IAP

1:客户端传tradeid(商品ID)来服务器下单,下单成功之后服务器告诉客户端下单成功了,2:客户端拉起支付 支付成功之后 会收到票据,客户端把票据发给服务器,服务器再去苹果校验客户端是用的unity的插件收到的格式如下这个Payload就是已经base64之后的结果,这个发给服务器 服务器去校验就好了transid 是com.kx880.devilhunter.101XXXXX 根据返回结果中status判断是否成功..................

2022-06-16 17:28:29 1163 1

原创 orgin框架 笔记

记录一下

2022-06-09 14:22:15 287

原创 pear admin 运行报错

从pear admin 下载了golang版本的代码,按照要求都配置好了,mac下就是跑不起来,第一感觉是库里边的代码有问题,但是我又没有找到问题,后来我又在ubuntu上down了代码,ubuntu上可以跑起来,这时我才知道应该是mac的golang环境的问题。192:pear-admin-go sandy$ go run main.go {"level":"info","time":"2022-05-14 10:20:45.485","caller":"/Volumes/macHDD/go_pa

2022-05-14 11:01:26 815

原创 layuimini 笔记

不熟悉web开发,步步艰难!!!一:登录相关login.html原本内容<script> layui.use(['form'], function () { var form = layui.form, layer = layui.layer; // 登录过期的时候,跳出ifram框架 if (top.location != self.location) top.location = self.loc

2022-05-12 17:38:51 2660

原创 kcp-go 源码分析(二)

一:基础上一篇主要是分析kcp-go上层应用包装,这一篇再来分析kcp算法层面的东西。kcp是一个快速可靠协议,设计的目的就是解决在网络拥堵的情况下TCP协议网络速度慢这个问题。相比TCP而言,KCP增大了网络传输速率但是牺牲了部分带宽。有个形象的比如就是TCP是一条大河,大河里边的水流速慢但是能容纳的水多,而KCP就是小激流,水流速快但是少。 KCP并没有规定下层使用什么协议来传输数据,它只是对数据层进行包装。一般情况下下层是使用UDP作为传输协议,KCP层的数据包...

2022-04-29 16:23:58 927

原创 ubuntu 安装nodejs cnpm yarn vue-cli

一:安装nodejs下载 | Node.js 中文网ubuntu仓库里边的nodejs 比较旧cd ~curl -sL https://deb.nodesource.com/setup_12.x | sudo bash -sudo apt updatesudo apt install nodejs要安装 nodejs 最新版本,可以运行如下命令:cd ~curl -sL https://deb.nodesource.com/setup | sudo bash -sudo a

2022-04-29 13:49:12 1501

原创 kcp-go 源码分析(一)

项目中用的是"github.com/xtaci/kcp-go",这个仓库不仅仅实现了kcp算法,而且在kcp算法层面上又包装了一层,比如说提供了多种数据加密方式和FEC前向纠错,用起来非常方便。这一篇先分析kcp-go库对kcp算法包装这部分,先分析怎么用,怎么用都不知道去谈算法个人觉得没有意义,kcp算法层面的东西后面再分析。1:先分析服务器层面的func Listen(laddr string) (net.Listener, error) { return ...

2022-04-13 16:34:24 2247

原创 Go专家编程 timer、ticker

golang中timer和ticker 都属于time包timer是一次性定时器,执行完一次就结束了,ticker是周期性定时器,周而复始的执行。二者在数据结构上完全一样,都是一个对外的channel + 对内的runtimeTimer。type Timer struct { C <-chan Time r runtimeTimer}type Ticker struct { C <-chan Time // The channel on which the

2022-03-11 17:53:57 1146

原创 Go专家编程 反射

interface类型是有一个type和value的概念的,反射就是获取type和value的手段。go恰恰提供了这个功能。反射三定律:1:可以将interface变量转换成反射对象。var x float64 = 3.4t := reflect.TypeOf(x) //t is reflect.Typefmt.Println("type:", t)v := reflect.ValueOf(x) //v is reflect.Valuefmt.Println("value:", v

2022-03-10 11:55:03 157

原创 Go专家编程 mutex、rwmutex篇

互斥锁、Lock()、UnLock(),使用简单但是内部设计很巧妙一:数据结构type Mutex struct { state int32 sema uint32}locked:0/1 表示当前锁的状态。woken:是否有协程被唤醒,0没有1有。starving:是否饥饿状态。处于饥饿状态时 就不会自旋waiter:具体数字,表示阻塞等待锁的个数。协程解锁时根据这个来决定是否释放信号量二:自旋三:rwmutex读写互斥锁,mutex的升

2022-03-09 16:02:10 213

原创 Go专家编程 range篇

range用来遍历 数组、slice、map、channel,使用非常频繁一:可优化的地方func RangeSlice(slice []int) { for index, value := range slice { _, _ = index, value }}func RangeMap(myMap map[int]string) { for key, _ := range myMap { _, _ = key, myMap[key]

2022-03-09 15:27:27 214

原创 Go专家编程 select--case篇

select是golang在语言层面提供的IO多路复用机制,可以检测多个channel是否ready(可读、可写),相比较操作系统层面的IO多路复用还是方便很多。与select 配合使用的是case和default,default是一种特殊的case。一:case的数据结构type scase struct { c *hchan // chan kind uint16 elem unsafe.Pointer

2022-03-09 15:02:34 1587

原创 Go专家编程 defer篇

一:defer规则:1:延迟函数的参数在defer语句出现时就已经确定下来了2:延迟函数执行按后进先出顺序执行,即先出现的defer最后执行3:延迟函数可能操作主函数的具名返回值二:returnreturn不是原子操作,return i具体执行过程,1给返回值赋值(若有),2执行defer(若有),3执行跳转三:derfer实现原理type _defer struct { sp uintptr //函数栈指针 pc uintptr /

2022-03-09 11:47:22 197

原创 Go专家编程 map篇

详细参考Golang map分析_zhangdell的专栏-CSDN博客无序的基于key----value的结构map是引用类型,必须初始化才能使用。var m2 map[string]string//未初始化fmt.Printf("main11111m2 outer address=%p, m=%p,m=%v \n", &m2,m2,m2)//main11111m2 outer address=0xc00008c020, m=0x0,m=map[]从map的内部结构可知..

2022-03-09 11:13:23 283

原创 Go专家编程 slice篇

书上给了一道题package mainimport ( "fmt")func AddElement(slice []int, e int) []int { return append(slice, e)}func main() { var slice []int slice = append(slice, 1, 2, 3) newSlice := AddElement(slice, 4) fmt.Println(&slice[0]

2022-03-08 18:24:32 210

原创 twisted中使用agent来模拟http请求

直接上代码from twisted.internet import reactorfrom twisted.web.client import Agent, readBodydef cbRequest(response): print(response) print(response.__dir__()) print(response.version) print(response.code) print(response.phrase) d =

2022-03-06 17:34:19 1675

原创 twisted 实现UDP服务

由于没有连接,所以对于每个udp套接字我们只能使用一个对象,一个协议。然后使用已经定义的接口twisted.internet.interfaces.IReactorUDPclass IReactorUDP(Interface): """ UDP socket methods. """...

2022-03-04 21:52:11 2176

原创 twisted中的延迟(deferred)(二)

单个回调 我们在上一节已经说过了​​​​​​twisted中的延迟(deferred)(一)_zhangdell的专栏-CSDN博客1:deffered 延迟链from twisted.internet import deferdef myfun1(s): print("myfun1 s=",s) return "myfun1"def myfun2(s): print("myfun2 s=",s) return "myfun2" d = defer.De

2022-03-01 19:07:09 225

原创 twisted相关文档

twisted相关文档Twisted框架非阻塞程序代码示例_yueming-ChinaUnix博客

2022-03-01 18:56:20 162

原创 twisted中的延迟(deferred)(一)

twisted官方文档https://twistedmatrix.com/documents/current/index.htmldeferred 详细说明Deferred Reference — Twisted 21.2.0 documentation关于deferred的通俗理解1:deferred说“我是一个信号,只是通知你不管你刚才要我做的什么,结果还没有出来”2:你可以让Deferred在结果出来后执行你的回调函数Deferred关键之处:1:Deferreds将会

2022-03-01 14:36:03 293

原创 游戏中奖励配置问题

游戏中各种奖励比如金币 钻石 道具 体力等等都是策划配置在配置文件中的,程序不用关心具体配置的是什么内容,只要给策划指定好正确的配置格式就好,程序要做到的就是 奖励字符串的合并、翻N倍等等,这里边往往涉及到字符串的合并,现给出一种解决方案。class Item(object): def __init__(self,strs): its = strs.split("|") self.itemid = "|".join(its[:-1]...

2022-02-25 18:03:00 2917

原创 由邮件系统 引发的mysql 排序问题

前边我们介绍了游戏中的邮件系统-----游戏服务器---邮件系统_zhangdell的专栏-CSDN博客一:问题发现最近客户端更换引擎,所有的功能都得重新对接,在对接邮件功能时客户端反馈了一些异常问题,当时第一感觉是客户端自己的问题,因为这些功能已经在生产环境跑了2年的时间了,而且邮件这套逻辑 已经在另外一个项目当中跑了8年了,如果有问题应该早就出了。具体问题如下:CREATE TABLE `msg` ( `id` int(11) NOT NULL AUTO_INCREM...

2022-02-21 19:22:43 161

原创 tkinter+twisted

from Tkinter import *from twisted.internet import reactor, tksupportfrom twisted.internet.protocol import Protocol, Factoryclass MultiEcho(Protocol): def __init__(self, factory): self.factory = factory def connectionMade(self,*args):.

2022-02-19 11:49:10 95

原创 golang中的Mutex和RWMutex

Mutex互斥锁,对共享资源进行访问控制的主要手段,使用起来很方便,就Lock和Unlock(),使用简单不代表内部实现就简单,我们可以深入思考一下如果对Mutex重复解锁会出现什么情况?为什么会出现?一:Mutex数据结构src\sync\mutex.go// A Mutex must not be copied after first use.type Mutex struct { state int32 sema uint32}// A Locker represents

2022-02-14 18:35:20 693

原创 golang struct里面嵌入interface

最近在看context底层源码时发现了一个奇怪的用法:struct里边嵌入interface,struct又没有实现interface的所有接口直接上源码吧:src\context\context.gotype Context interface { Deadline() (deadline time.Time, ok bool) Done() <-chan struct{} Err() error Value(key interface{}) interface{}}typ

2022-02-14 17:24:30 1326

原创 Base64是一个好东西

开发过程中,碰到了一间事儿。服务器把字符串的内容zlib之后发给客户端,客户端通过zlib解压缩始终不正确,调试是一间很蛋疼的事情,比对二进制 眼睛都快瞅瞎了,有了Base64 就方便了很多。一:Base64原理:Base64要求把每三个8Bit的字节转换为四个6Bit的字节(3*8 = 4*6 = 24),然后把6Bit再添两位高位0,组成四个8Bit的字节,也就是说,转换后的字符串理论上将要比原来的长1/3。从严格意义上来说,BASE64编码算法并不算是真正的加密算法,它只是将源数据转码..

2022-02-11 17:32:51 239

原创 python 技能系统

游戏里边肯定少不了技能系统,技能系统做的好后边会省下很多事情,不然会被策划折磨死。。。sikll_file = { '降龙十八掌': ['DamageEffect(100)','DizzinessEffect(3)', 'LowerDeffence(30,3)'], '六脉神剑': ['DamageEffect(90)', 'Knockback(3)', 'LowerSpeed(30, 2)'], '北冥神功': ['Da.

2022-02-10 18:28:48 2441

原创 python中exec使用

动态的执行代码,可以执行储存在字符串或文件中的Python语句相比eval,exec可以执行更复杂的python代码,eval只是执行一个表达式原型:exec(expression, globals=None, locals=None)expression:必选参数,表示需要被指定的Python代码。它必须是字符串或code对象。如果expression是一个字符串,该字符串会先被解析为一组Python语句,然后在执行(除非发生语法错误)。如果expression是一个code对象,那么它只是被

2022-02-10 17:26:14 3851

原创 python中eval使用

一:使用环境前不久在写行为树框架的时候,有一个需求。比如某一个节点是判断node的各个数字的大小,根据判断结果做出决策,配置文件如下。需要获取当前执行节点的hp和attack的值 然后 格式化进args的value中,比如说hp是100,attack是100,那么代码里边就是要判断 100 > 50 and 100 < 50的值了,这个时候就要用到Python的eval了。二:eval使用说明eval是Python的内置函数,作用就是返回传入字符串的表达式的结果。

2022-02-10 15:47:54 3660

原创 facebook登陆授权 服务器接入记录

官方文档:http://developers.facebook.com/docs/reference/api/1:client 接入facebook的sdk后,登陆时app拉起facebook的授权页面,等用户授权登陆后,app通过sdk能拿到当前用户的facebook id和token,app把这个id和token发送给服务器,服务器再验证。这个过程跟微信登陆很类似,微信是拉起微信客户端获取wxcode2:服务器收到client app 发来的id和token,然后去facebook的后台验证,a

2022-01-17 18:35:14 1890 1

原创 ubuntu 安装 pybluez

python3 -m pip install pybluez把libbluetooth-dev 安装上就好了sudo apt-get install libbluetooth-dev再接着用pip安装就好了import库没有报错,表示安装成功

2021-12-24 14:31:22 963

原创 python 魔法函数(五) __call__

为了将类的实例对象变为可调用对象class People(object): def __init__(self): pass def __call__(self,name): print("People::__call__()",name)p = People()print(callable(p))p("mandy")p.__call__("mandy")p("mandy") 其实跟p.__call__("mandy")是一抹一样的

2021-12-21 17:44:27 197

原创 python 魔法函数(四) __iter__和__next__

迭代相关的魔法函数python中实现了__iter__方法的对象是可迭代的,实现了next()方法的对象是迭代器实际上要想让一个迭代器工作,至少要实现__iter__方法和__next__方法,很多时候使用迭代器完成的工作使用列表也可以完成,但是如果有很多值列表就会占用太多的内存,而且使用迭代器也让我们的程序更加通用、优雅、pythonic。class People(object): def __init__(self,data): self.data = data

2021-12-21 17:17:48 569

原创 python 魔法函数(三) __len__、__getitem__、__setitem__、__delitem__和__contains__

集合、序列相关的魔法函数class People(object): def __init__(self): self.change={'python':'This is python', 'php':'PHP is a good language'} def __len__(self): print("__len__") return len(self.change) def.

2021-12-21 16:45:11 334

原创 python 魔法函数(二) __str__()和__repr__()

函数str() 会调用__str__(),用于将值转化为适于人阅读的形式函数repr() 会调用__repr__(),用于将值转化为解释器读取的形式所以print展示的都是str的格式__repr__() 会返回和调用者有关的 “类名+object at+内存地址”信息test.pyclass People(object): def __new__(cls,*args,**kwargs): print("People::__new__()") .

2021-12-21 16:22:28 353

原创 python 魔法函数

列举了常用了的魔法函数

2021-12-21 15:39:52 282

原创 python 魔法函数(一) __new__()和__init__()

__new__() 是一种负责创建类实例的静态方法,它无需使用 staticmethod 装饰器修饰,且该方法会优先 __init__() 初始化方法被调用。直接上例子class Test(object): def __new__(cls,*args,**kwargs): print("Test::__new__()") return super().__new__(cls) def __init__(self): p..

2021-12-21 15:37:31 146

原创 python 中propery属性

上一篇文章 介绍了classmethodstaticmethod,这一次再介绍一下 property,他们都是属于Python自带的装饰器class Foo(object): def __init__(self): self._size = 100 @property def size(self,s): return self._size,200obj = Foo()ret = obj.sizeprint(ret)定义的时候...

2021-12-20 18:58:12 115

reactor.rar

python epoll reactor

2021-11-23

Final-fight-csharp-master.rar

最后一战服务端C#版-源码

2021-11-19

Python 十字链表法实现的AOI aoi2.py

Python 十字链表法实现的AOI

2021-06-03

Python实现的AOI aoi.py

Python实现的AOI

2021-06-03

vm-tools linux版本

下载各个版本的vm-tools

2017-05-31

LuaStudio7.23破解版本

LuaStudio7.23破解版本,破解版的哦,解压直接使用

2014-03-19

gawk-4.0.1.tar.xz

awk是一种编程语言,用于在linux/unix下对文本和数据进行处理。数据可以来自标准输入、一个或多个文件,或其它命令的输出。它支持用户自定义 函数和动态正则表达式等先进功能,是linux/unix下的一个强大编程工具

2013-12-10

游戏人工智能编程案例精粹.pdf

游戏人工智能编程案例精粹 pdf 游戏开发 lua

2013-11-19

空空如也

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

TA关注的人

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