svn记住用户名和密码之后如何更改用户名和密码
2013-11-04 23:56
405 查看
前几天一直在敲代码。
作为一个本科生,花了将近一个星期的时间,我终于实现了“人机对弈的五子棋游戏”的初级代码。
这里面涉及到的人工智能算法搞得我很头疼。博弈树的问题我看了很久,也在网上找了很多的资料,可是直到现在我还是没有把这个问题搞透彻。
所以,在我的算法里面,仅仅是对双方各进行一次搜索,然后根据每种情况的优先级别的不同,对各种不同的棋局给定不同的权值。再选择权值最大的位置落点。最后把整个算法跟界面结合起来,实现了这个游戏的初步设计。
具体的做法如下:
搜索:在15*15的棋盘上,对每一个空格从四个方向进行搜索。找到这四个方向上的具体棋子分布;(实际上,搜索做了两次,分别是从己方和对方的角度来做搜索。)
估值:根据每种棋局的优先级将各种情况设定一个初始的权值,估值的原则就是使得最终的权值加起来符合优先级的要求;(例如:成5的优先级最高,其次是活4……)
落子:找到权值最大的点。
做完测试时,发现这样的棋力只能打败入门级的棋手。所以一直在找博弈树的相关资料,希望能够尽快实现游戏的升级,不说高手,最起码,智能算法要能应付普通的棋手吧。
但是事与愿违,几天来,几乎是丝毫没有进展。在图书馆里找了一个下午也没有找到博弈树的相关书籍,里面的人工智能算法大多是关于遗传算法的。网上的剪枝算法和博弈树的介绍也看得我很迷茫。哎,相信天道酬勤,但是依然是在郁闷中……
作为一个本科生,花了将近一个星期的时间,我终于实现了“人机对弈的五子棋游戏”的初级代码。
这里面涉及到的人工智能算法搞得我很头疼。博弈树的问题我看了很久,也在网上找了很多的资料,可是直到现在我还是没有把这个问题搞透彻。
所以,在我的算法里面,仅仅是对双方各进行一次搜索,然后根据每种情况的优先级别的不同,对各种不同的棋局给定不同的权值。再选择权值最大的位置落点。最后把整个算法跟界面结合起来,实现了这个游戏的初步设计。
具体的做法如下:
搜索:在15*15的棋盘上,对每一个空格从四个方向进行搜索。找到这四个方向上的具体棋子分布;(实际上,搜索做了两次,分别是从己方和对方的角度来做搜索。)
估值:根据每种棋局的优先级将各种情况设定一个初始的权值,估值的原则就是使得最终的权值加起来符合优先级的要求;(例如:成5的优先级最高,其次是活4……)
落子:找到权值最大的点。
做完测试时,发现这样的棋力只能打败入门级的棋手。所以一直在找博弈树的相关资料,希望能够尽快实现游戏的升级,不说高手,最起码,智能算法要能应付普通的棋手吧。
但是事与愿违,几天来,几乎是丝毫没有进展。在图书馆里找了一个下午也没有找到博弈树的相关书籍,里面的人工智能算法大多是关于遗传算法的。网上的剪枝算法和博弈树的介绍也看得我很迷茫。哎,相信天道酬勤,但是依然是在郁闷中……
相关文章推荐
- python脚本
- 设计模式(五)----- 原型模式(Prototype)----(JAVA版)
- C链式队列的实现
- poj2104 分桶法与平方分割 还有一些其他的感悟
- [Python] 实现基本数据结构——栈
- 继续看rt-thread
- 读《浪潮之巅》之后
- 关于vs2012中集成node.js开发调试环境
- Sqlserver列出所有数据库名,表名,字段名
- HDU 1022 栈的基本操作应用
- mysql升级后报Table 'mysql.servers' doesn't exist解决
- 一对多关系的表单提交到action中处理
- Oracle常用SQL语句记录单
- JS时间轴效果(类似于qq空间时间轴效果)
- JAVA程序的内存分配
- php即时(刷新缓存)输出内容
- 兴趣爱好
- 使用 Unity 製作紙娃娃換裝的方法
- HDU1573 X问题 解线性同余方程的应用
- 实现网站的RSS应用