- 博客(29)
- 资源 (3)
- 收藏
- 关注

原创 通过俄罗斯方块浅谈游戏中的AI(序)
近期写了一个带简单AI的俄罗斯方块小游戏,由于本人对AI方面的研究尚浅,希望通过一系列带AI的小游戏的开发,对AI设计进行一下简单汇总,起到交流和总结的作用.源代码本人一直在更新,也可以在俄罗斯方块那个文章中看到最新的下载位置.准备分几个小章节来说明这件事情,不过由于本人实战多于理论,可能与书本知识有些出入,希望学术派的大拿们可以给予指正.也希望跟读者们一起提高.
2010-07-25 22:06:00
4691
原创 微信传播如何使大家智商降低
最近经常看到微信里有一篇转来转去的文2017年 1月1日 2月2日 3月3日…12月12日 都是星期日 千年一遇 又说是多少年一遇润6月 不吉利 ABCDEFG几种属相的需要转发 我之所以看到很多次,就说明很多人转发。遇到好文章转发自然很好,这种扯淡的东西,为什么这么多人转呢?智商消失了,还是对自己的言论不在意了,还是随大流了?有人问我,你凭什么说是扯淡的? 我说,你先亲自看看日历! 我心里想
2017-06-19 13:22:59
764
原创 关于系统的一点思考
关于系统的一点思考本文是因为两个小故事引发的一些关于系统建设的思考,甚至我不清楚是系统完整性还是系统安全性的归属问题:故事1:飞机乘客不听劝告按了一下按钮就损失10多万故事1:飞机上的这个小动作可能让你赔10万!厦航这位女乘客被好奇心给害惨了…2017年6月12日中午11时50分,厦门航空一架757在北京首都国际机场过站短停期间,左侧翼上逃生滑梯被旅客误放。据悉,涉事乘客刚听完乘务员的提醒就想试试,
2017-06-14 16:11:06
766
原创 通过俄罗斯方块浅谈游戏中的AI(六)A*算法
开场:A*这个经典的最短路径搜索算法--很多人都用过它快速计算迷宫出路,也有人用来进行2d游戏的路径搜索。总之在搜索路径时大都第首先想到它。备注:我之前对A*算法的执行顺序上有认识上的误区,我是广度优先查找的,实际A*是类似深度优先方式查找的,在一定程度上,降低了遍历的次数,现在对本文进行进一步纠正.简述A*最短路径算法的方法:目标:从当前位置A到目标位置B找到一条最短的行走路径。方法:结构_路径点(MapPoint){当前位置坐标,到达当前位置的最小距离数 ,到达目标的理论最小距离数 ,理论到达最小值 =
2010-11-25 15:41:00
2708
原创 今天搞清楚了自然常熟e的现实意义
<br />很久很久前,好像在小学参加数学竞赛的时候,就听老师讲过自然常熟e,丫的当时小学竞赛有排列组合,<br />我在小学2年级的时候已经受到了C和P两位大仙的骚扰,倍感疲惫啊!!!<br /> <br />当时只知道是2.7左右,今天由于看了排序相关的内容,看到了LgN就想到了e,<br />于是乎再次翻开了google百度了一把,这才把e的价值搞清楚.<br /> <br />之前学计算机的时候,老师讲过,为什么用2进制,不用别的进制,实际如果是3进制会比2进制效率更高,<br />原因是因为3更接
2010-11-17 20:53:00
6956
3
原创 今天才搞清楚排序算法的O(N*logN)是什么意思
<br />以前光看了n多排序算法,知道仅通过比较的排序算法一共两种复杂度<br />O(N2)或O(N*lgN),<br />由于高数学的不好,之前一看到后者就放弃了思考,没有真正研究为什么会有个lgN,<br />这两天工作不是很忙,看了一下基础知识,有了一定的认识,算是初步搞清楚了原因.<br />写在这里算是一个记录,如果有问题也请大家指正.<br /> <br /> <br />说到N*lgN的算法大致上有几种:堆排序,归并排序,快速排序.<br />由于学习数据结构的时候老师讲过快速排序,(其实
2010-11-17 20:26:00
34288
1
原创 最近写的一个小软件
工具实现的功能很简单,实现查找指定文件夹(及其下属文件夹)的文件中包含指定字符串,或替换成其他字符串的功能.界面如下:其实写这个软件的目的是因为1.我正在看的一个电子书(非小说哈哈),中间都有大量网页信息广告信息的插入,非常不爽;2.日常操作经常想在一堆文件中找到以前的某个语法的例子,却苦于无现成工具.3.希望在自己的txt电子书中插入广告 哈哈哈.. 这个不是我的出发点啊 !!!暂时可以实现anti,utf-8,unicode,unicodebig几种格式的识别与替换(经过小规模测试,不敢100%确定)使
2010-11-16 17:10:00
1402
2
原创 一个小游戏的几个关键类(敌人的移动类型)
最近跟哥们一起做个flash的小游戏,这里把一些可以讨论的类贴出来供大家参考本节是敌人的移动类型:内容如下package game.object.actor.enemy{ import flash.display.MovieClip; /* 敌人移动方式类,表明敌人的不同移动可能 * 至少包含:a)移动方式类别(飞行,爬行,暂时不考虑其它,比如钻地什么的,到时候再说); * b)移动速度; c)移动动画;d)此类型下的防御力;e)此类型下的攻击力; * f
2010-08-22 09:57:00
777
原创 通过俄罗斯方块浅谈小游戏制作(序)
<br />“通过俄罗斯方块浅谈游戏中的AI”系列 从开始写,到现在也有一段时间了。随着一篇一篇文章的完成,俄罗斯方块小游戏的智能一点点提高,走到今天,它的表现已经很令我满意了,至少不枉做一次开篇作。<br />然而俄罗斯小游戏的开发却还欠缺很多内容,依然不能称之为一个完整的产品。<br />我认为一个游戏应该有一些常见的元素才可谓完整:保存功能、成绩记录、一定情节、一定的延续性。<br />为了不让这些欠缺一直延续,我准备再写一个新的系列,作为我完成其它部分功能的一个见证,也作为我不务正业的一份铁证。<
2010-08-12 20:52:00
1019
1
原创 通过俄罗斯方块浅谈游戏中的AI(八)发现
通过俄罗斯方块浅谈游戏中的AI(七)提升 一节并不是很好实施,在我还没有得到更好的可执行方案的情况下,我对于当前的评价体系部分有了新的发现。 话说最早的时候代码中有个bug,在判断连续两个方块下落的分数时,我使用总score=方块1引起的局势得到的score + 方块12联合引起的局势得到的score;很显然这是有问题的,12联合引起的局势是最终局势,仅方块1引起的局势无论如何都不影响总score。所以我改了这个bug =》总score= 方块12联合引起的局势得到的score;好像这样就解决了似的,但是这
2010-08-10 20:35:00
1999
3
原创 通过俄罗斯方块浅谈游戏中的AI(七)提升
开场随着前面我相对还比较会的技术渐渐用光,我一段时间非常满足,紧接着一段时间非常无力。本来我每天喜欢看几次电脑中间PK,看看电脑如何使用我不会用的招数,感觉到很满足;我再给同学玩,同时自己也挑战几把电脑,发现确实很难赢它,我又很满足;后来同学及自己均发现了一些评价上的不足,挑整后,感觉明显屏蔽了原来的问题了,又感觉很满足;电脑曾经玩出了11w多的高分,突破了速度9一万分,我满足的不得了......一切都好像很美好,总认为仅需要在评价这里挑战一下参数,整个水平就会提高不少......可是一切的美好在昨天凝滞了
2010-08-10 07:02:00
2115
2
原创 【从CSLA中学C#】4 泛型的使用
最开始我就搞混了‘模板类’和‘泛型’的概念,认为是一回事儿,可看了网上的一些说明,特别是MSDN的说明后,了解到他们还是不一样的。ps:C++的模板类曾经简单用过,没有深研究,这里的很多条目我根本看不懂,实在抱歉。4.1 我对泛型的理解在我看来,泛型和模板类本质是一样的,只是为了迎合C++和C#语言在更灵活或更安全的设计初衷的不同,而分别对其实现做了限定。毕竟C++还是更自由一些,C#融合了Java的安全性考虑。单一的泛型使用很容易,嵌套的泛型看起来很费劲,嵌套泛型中再嵌套委托,则是一般程序员的噩梦
2010-08-06 20:23:00
1847
1
原创 【从CSLA中学C#】3 序列化的使用
还是我学习的网文引用:http://www.cnblogs.com/firstyi/archive/2008/03/18/1111800.html以下两个仅作为补充参考,第一个看明白了就ok,本例子也以第一个做的例子为主要内容。http://www.yongfa365.com/Item/WinForm-TreeView-SerializeTree.htmlhttp://developer.51cto.com/art/200908/146598.htm1.1 我对序列化的理解序列化的作用:实体对象状态
2010-08-06 19:39:00
957
原创 【从CSLA中学C#】2 Attribute的使用
我最初使用这个属性,通常是为了以下两个目的:在开发态,处理控件可编辑信息的控制与状态刷新控制;引用外部的dll,api。CSLA中大量的使用了Attribute,于是我也学习了一下它的使用。1.1 我的学习总结网上有很多Attribute使用的网文,我是用这篇入门的,大家也可以看看:http://sifang2004.cnblogs.com/archive/2006/01/12/316313.html还有一篇关于Attribute编译以后的实际本质描述的文章:http://linhong006.b
2010-08-06 16:42:00
1674
原创 【从CSLA中学C#】1 多语言的微软默认解决方案:ResourceManager
根据后来从网上的资源查询,我发现特别是.net开发的web系统,有很多都是用这个作为多语言的解决方案;另一种常用方式是使用xml文件保存多语言内容,使用自定义的方法解析到界面层的方案。本文主要讨论直接使用微软提供的这个类来实现。为了配合这一节的讲解,我完成了一个小例子WinResourceManagerUsing,并总结了它的几个使用关键点。1.Resources.***.resx 中的***必须使用图表 1‑3中规定的内容;2.定义CultureInfo时使用***即可;
2010-08-06 15:06:00
2201
原创 从CSLA中学C#系列_序
最近学习了一个.net的框架CSLA,对于这个框架我就不想多说,微软牛人写了n年形成的一个框架,框架大量使用微软.net的各种技术,全方位支持微软的技术--WPF,Silverlight支持C/S开发和Web应用。微软人自己写的CS开发框架Csla确实凝聚了微软的.net编程的各种最初的思路。早一点了解这些,会让我们在.net开发中少走弯路。读到今天,我认为有以下几点可以总结一下:1. 多语言的微软默认解决方案:ResourceManager2. Attribute的使用3. 序列化的使用4.
2010-08-06 13:20:00
987
原创 订饭系统方案之‘选择谁在某天订饭’的算法
公司小,没有自己的食堂;夏天热,不愿出去吃饭;我们于是都订饭。。。。。我们订饭的人很多,最终有人准备做个订饭的系统,但是在如何选择谁在某天订饭的问题上出现了分歧!总让一个人订,不公平;轮,有人某些天不吃,不公平;每天订饭的所有人随机,比较公平,但依然不够公平;于是我写了以下的具体方案:【方案原始目标】让所有人公平地享用订饭系统;【解决方案原型】每一个人添加两个字段,n吃饭的总次数,亲自定饭的次数m前提:订饭的必须吃饭,不能光给别人订自己不吃,否则会影响最终结果。结论:1、n永远大于m;2、n-m 是别人服务
2010-08-06 11:37:00
1401
原创 公司终于又一次屏蔽了QQ
<br />很久以前屏蔽过一次,说只要违规就罚500元<br /> <br />后来由于很多客户服务需要远程连接,有很多人请示领导可否开通qq......渐渐地,很多人都可以上了......再渐渐的就不管了<br /> <br />最近又一次屏蔽,这次不是罚钱的问题了,是直接封了端口<br /> <br />我只好webqq中,但是不久的将来可能会封网址......<br /> <br /><br /> <br />但是这是所谓的管理?<br /> <br />舍本逐末而已!<br /> <br />工作有
2010-08-06 07:05:00
1585
1
原创 通过俄罗斯方块浅谈游戏中的AI(六)变化的A*算法
开场:A*这个经典的最短路径搜索算法--很多人都用过它快速计算迷宫出路,也有人用来进行2d游戏的路径搜索。总之在搜索路径时大都第首先想到它。------------------------------------------简述A*最短路径算法的方法:目标:从当前位置A到目标位置B找到一条最短的行走路径。方法:从A点开始,遍历所有的可走路径,记录到一个结构中,记录内容为(位置点,最小步数) 当任何第二次走到一个点的时候,判断最小步骤是否小于记录的内容,如果是,则更新掉原最小步数,一直到所有的
2010-08-05 22:01:00
8109
原创 通过俄罗斯方块浅谈游戏中的AI(五)疯狂提速之位运算
[写在最前]位运算曾经从C语言学习阶段,老师就一再强调:通过位运算可以提高CPU计算的速度。但是大多数学生依然不敢去使用这个看似很高级的技术,我就是其中一个。知道写好这个程序,才算我大规模使用位运算的第一个程序。 [位运算之我见]--高手赶紧跳过这节位运算之所以计算快,我的理解是它不需要进行值拷贝,可以完全在某个寄存器中一次把结果算完。比如 int i = 0x0345;i = i * 16; 和 i = i 第一种(0x0345 * 16)假设 '0x0345 ' 首先存储在 c寄存器 存储0x00000
2010-08-05 07:27:00
3436
原创 通过俄罗斯方块浅谈游戏中的AI(四)路点
前述:谈到“路点”大家想到的应该是cs中的bot waypoint,有waypoint的map可以使用bot,没有waypoint的map就不行。于是大家都去下载每个地图的“路点(WayPoint)”其实这两个游戏的路点虽然从规模上有较大差距,但从思想上还真差不多。我认为cs的路点实现:1、cs的路点并不会存储让bot如何瞄准,而只会记录当前位置和下一个可选位置的关系,以及按照什么路线走过去。好的路点文件可以让bot走的路线很不容易被人看到,一般的路点就会沿着大道中间走;2、bot在某个点上做某些动作的真正
2010-07-31 10:19:00
2977
原创 通过俄罗斯方块浅谈游戏中的AI(三)AI实现代码框架
长驱直入,本节介绍这个非常容易,但是也算是五脏俱全的小AI的组成框架,并会加入重要的实现代码本AI部分的程序体共包含了4个部分 评价参数定义部分:定义相关评价参数的数值,参数数值定义的越合乎逻辑,AI技术的效果越好评价函数实现部分:实现各种维度的评价,此处注意要使用定义参数的值,不能使用内部值,否则不易于以后微调。AI调用之前的处理部分:判断是否需要进入AI,以及AI前的一些处理变量的清理工作。AI实现部分:形成一个递归算法(本例可以不用递归,因为最多就两层)更好的AI程序框架 标准评价函数部分:定义几种标
2010-07-30 20:19:00
6126
原创 通过俄罗斯方块浅谈游戏中的AI(二)AI策略
本节具体谈我写俄罗斯方块AI的时候使用的策略,注重策略讲解,下一章节开始注重实现。上一节已经说过了,俄罗斯方块游戏的AI由于无法深层次递归,必须重单步策略,我列了一下几个考虑点进行问题展开 洞的维度:(越少越好)实洞:无论如何都无法通过任何移动消除的洞虚洞:可以通过左右移动消除,但是如果纯下落无法消除的洞高低关系的维度:是否有平台:连续2个以上一样高的为平台,越多越好;是否有1个高度差的高低台:左高右,右高左,至少各有一个,否则略微不好;是否有2个高度差的高低台:左高右,右高左,可以各有一个,再多了就不好了
2010-07-28 07:21:00
6440
1
原创 通过俄罗斯方块浅谈游戏中的AI(一)我眼中的小游戏AI
主题之前:我对于AI的认识不像很多科班出身的专家,各种理论一大套,我是本科毕业就离开了科班,很多知识还没有补充完备就离开了学校.而且很遗憾,我也不是个成功的学生,离开的时候甚至我没有带出我必须带出来的学位证.....残念.戴思达......我喜欢AI是因为它让人感觉神秘,好像真的有智能;我学习AI也是稍微看了点书,关键是练习;真正的练习我想才刚刚开始.进入主题:我眼中的小游戏AI 小游戏的AI和大型游戏的AI可能是相似的,理论基础上也是一致的,可惜我只能从更通俗的角度去说明它.我认为小游戏的AI分为3类:
2010-07-27 22:20:00
5604
原创 发现一个搞笑的微软官方MSDN解释
<br />今天查看msdn解释lambda表达式符合 => 时看到的搞笑文字:<br /><br />在它强调不要搞混的这句话中,他终于搞混了!<br /> <br />这不由让我想起今天看的另一个网页。。。。。。 <br /><br />
2010-07-23 15:03:00
819
原创 写了一个C#的俄罗斯方块的游戏,包含人工智能部分,源码可下载
用C#写了个俄罗斯方块的游戏,操作还可以,个人认为比较方便,其中包含几种不同的模式,下降的时候可以选择快速下降到底和加快下落模式游戏的过程可以选择都可以穿越的模式包含人工智能部分,可以与电脑玩,如果把两个控制器全部设置成iscomputer,也可以看他们互相pk智能算法中并没有太做处理,准备这两天集中处理一下,让他更厉害!代码现在还有很多问题,分层分得有问题,但是开发周期太短,并没有修改,正在处理中由于没有网络空间,我就放在qq的空间里,但是不知道是否一直可以用,好在7天内版本肯定升级了http://1.d
2010-07-19 16:18:00
3497
原创 对于新的想法,用不用写设计文档
我在做一个同步功能的升级 ,由于方案并没有完全定下来,在摸索的状态下进行,所以并没有一个设计文档支撑,但公司为了确定我的成果,非要提交个设计文档,我想就这个讨论一下,是不是真的需要呢?
2008-01-07 17:19:00
719
初具规模的AI俄罗斯方块对战小游戏
2010-08-08
可以跟电脑对战的俄罗斯方块游戏(请下最新的,这些都旧了)
2010-07-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人