Dijkstra及寻路算法
Dijkstra算法
基本Dijkstra
function Dijkstra(Graph, source, target):
create vertex set Q
for each vertex v in Graph: // 初始化部分
dist[v] ← INFINITY // 初始距离是正无穷
prev[v] ← UNDEFINED // 在最终路径上的前驱节点,初始是空
add v to Q // 通通加入未访问节点列表Q
...
负极大值算法
负极大值算法
维基页面
负极大值搜索是极大极小值搜索的一个变体,用于搜索二人零和游戏。
这个算法简化了极大极小值搜索,原理是基于以下事实:max(a, b) = −min(−a, −b)。准确地说,一个着法对玩家A的估值,等于其对玩家B的估值的相反数。因此,当前玩家要搜索的是一个 使其估值的相反数最大化 的着法——其后继的着法分数必须由对方评估——这句话无论对于当前是A还是B都适用,这也意味着,同一个过程可以无论对A还是B都适用。所以,负极大值是对极大极小值算法的简化,不需要对A返回极大值而对B返回极小值。
不要和 NegaScout 算法弄混,这个算法是对于 AlphaBeta 剪枝算法的一个巧妙应用,用于快速计算极大极小值或者负极大值,发现于1980年代——注意 AlphaB...
《游戏编程模式》笔记
《游戏编程模式》笔记
基本设计模式
命令模式:do/undo
享元模式:重复的实例可以共享
观察者模式:C#的event
原型模式:
单例模式: 避免使用单例的方法
作为参数传递
放在基类中
合并到其他全局变量里
服务定位器模式
状态模式:状态机、层次状态机、下推状态机
序列型模式
双缓冲:解决「一边访问一边修改」的问题
游戏循环:
Fix Your Timestep
Game loops
Unity 的游戏循环
更新方法
行为型模式
字节码:写游戏之前先设计个语言吧
子类沙盒:使用基类提供的操作集合来定义子类中的行为
类型对象:把继承改为组合,父...
数据结构与算法简要提纲
数据结构与算法简要提纲
数据结构
线性表
链表:单链表、双链表、循环链表
时间复杂度:
索引:O(n)
查找:O(n)
插入:O(1)
删除:O(1)
栈:push、pop、LIFO
时间复杂度:
索引:O(n)
查找:O(n)
插入:O(1)
删除:O(1)
队列:enqueue、dequeue、FIFO
时间复杂度:
索引:O(n)
查找:O(n...
如何把 java 转化成 smali
如何把 java 转化成 smali
最近研究 android 拆包,发现一个问题:拆包之后有新的 res 文件添加进来,特别是有新的 id ,需要根据重排的 public.xml 重新编译所有的 R.smali
前置任务:首先是资源合并要正确,没有重复id之类
然后拢共分四步:
根据重排的资源重建R.java
.java -> .class
.class -> .dex
.dex -> .smali
0. 前置任务
首先准备一个「加好资源的apk」,反编译到一个目录——姑且称为 TEMP_FOLDER——这个 apk 的资源ID是重排好的
如果只有一个apk和一堆要加的资源,那么做法是这样:
用 apkt...
AI博弈树基础笔记
AI博弈树基础笔记
基础问题
比特棋盘:基础中的基础,可以分类表示各种棋盘信息,比如所有棋子、所有红方的棋子、某个位置的象可到达的所有位置以及象眼位置
走法产生:跟特定棋类知识有关,可以用比特棋盘预存成表,产生顺序可以调整以配合剪枝
博弈树:与或树?极大极小值搜索,负极大值搜索
启发式搜索:固定深度,带静态估值函数(启发函数)
深度优先:内存方面最优,搜索速度不差
估值函数
棋子本身静态价值:车比马好,帅比车重要
棋子的动态控制力:过河兵和非过河兵
和其他棋子的关系:将军的马和被蹩腿的马,威胁和保护
特定棋形:连环马,围棋定势
棋子价值速查表 :[棋子,位置]->估值
搜索算法
Alpha-Beta 剪枝:基础中的基础...
Android 为TabHost添加标签页 报错
Android 为TabHost添加标签页报错
private void initTabView(){
TabHost tab = (TabHost) findViewById(R.id.th_main);
tab.setup();// <---这行wtf非常重要!
tab.addTab(tab.newTabSpec("tab_login").setIndicator("登录").setContent(R.id.tab_login));
tab.addTab(tab.newTabSpec("tab_sdk").setIndicator("SDK").setContent(R.id.tab_sdk));
tab.addTab(tab.new...
共计 45 篇文章,6 页。