算法
文章平均质量分 87
刘峰1011
....
展开
-
unity的迷宫生成算法
思路:定义一个二维数组,二维数组中奇数行列视为围墙,偶数为路径。 从起始点开始,随机从上下左右四个位置寻找周围没有被找到过的位置,找到后此点标记为1,并把此点与前一点之间的位置设置为1。 如果全部位置已经找到过,则退回到上一个点重复次逻辑,直到所有点都记录到或 退回到起始点且没有可用点。文章最后我会附上完整代码。下面我们来实现一下 新建一个迷宫生成类:MazeC原创 2018-02-01 11:48:04 · 9184 阅读 · 5 评论 -
关于int数据二进制位的一次实际应用
大部分游戏都有每日签到的系统,我们当然也不例外,这个签到数据需要记录玩家每个月里面每天的领取情况,就是哪天领过,哪天没领过,这个我们应该怎么记录呢,每天一个数据也太浪费资源了,于是就想到了使用一个int型数据中的没个二进制位来存储一个月中每一天的领取状态,这样一个月最多31天,而int型数据大部分情况下都是32位以上的,正好~~那如何对每个二进制位进行操作呢,很简单,二进制位的第几位就对应的第原创 2018-02-01 14:58:11 · 676 阅读 · 0 评论 -
根据Base24算法衍生的byte[]转字符串的方法
想要找一个可以使用任意长度编码表对二进制数据进行编码的算法,在网上找了很久没有非常适合的,后来想到Base24算法,于是参考Base24的算法自己实现了一个,这里分享一下。这个算法里每个byte固定使用2个字符表示,每个byte先与编码表的长度进行与操作作为第一个字符的索引,然后再进行除操作作为第二个字符的索引。因为每个byte的最大值为127,所以我们编码表的最小长度为(127/编码表长度 &l...原创 2018-02-09 21:41:22 · 1404 阅读 · 0 评论 -
大量兑换码的生成与验证方案(Java)
由于以前也做过很多兑换码的功能,但是也没有考虑过大量的兑换码的情况,所以这里尝试实现了一个生成与兑换的方案,分享出来。当然这不一定是最好的解决方案,这里仅供大家参考。有什么问题或可以优化的地方欢迎留言讨论。*此方案可以根据输入的兑换码数量以及兑换码的字符长度来生成兑换码,每次生成兑换码的最大数量为int的最大值,一般为2147483647,即21亿个。*此方案不需要数据库存储已生成的兑换码,直接使...原创 2018-02-10 17:14:45 · 46557 阅读 · 20 评论 -
unity 中实现的一个优先队列(堆结构)
之前在我写的关于A*寻路算法的一篇文章中,提到过可以对open列表进行优化,当时只是使用了List并在插入数据的时候进行排序,很明显这是一个典型的优先队列,所以这里我实现了一个优先队列的类,分享出来。文章最后我会给出完整代码,也可以到我的github中获取完整的算法以及测试代码:https://github.com/LiuFeng1011/Test/tree/master/Assets/Prior...原创 2018-02-26 11:06:21 · 1634 阅读 · 0 评论 -
unity中的一个简单易用的A*寻路算法类
以前项目中用到了寻路,就写了个A*寻路的算法类,感觉还不错,这里分享出来。这里有可运行的测试项目:https://github.com/LiuFeng1011/Test/tree/master/Assets/AStarA*算法的原理网上有很多,这里只简单说一下我这个算法的逻辑:*我的这个算法里面没有关闭列表,因为我会根据地图数据创建一个对应的节点数据的数组,每个节点数据记录自己当前的状态,是开启还...原创 2018-02-24 16:55:22 · 2564 阅读 · 0 评论