- 浏览: 76233 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
rmn190:
多谢楼主这么详细的讲解!
用nmon监控Linux系统资源 -
669098238:
good
struts2总结之 OGNL表达式 -
javantsky:
memcached的 LRU 机制不会导致你的session命 ...
大型J2EE项目中的Web容器集群–Nginx+Glasshfish+Memcached+ServletFilter -
tdqing:
memcached服务器的并发控制会不会对拖慢应用的反应速度 ...
大型网站系统架构分析 -
netli:
有人做过,有个开源的memcached存储会话 ,在论坛帖子里 ...
大型网站系统架构分析
http://robowiki.net/wiki/Category:Open_Source_Bots
最近有一些国内的玩家给我发邮件询问和讨论一些robocode的信息,勾起了我当年的回忆,因此在给Aspirin的回信中一发不可收拾,写下了整个回忆录,发到这里,希望对喜欢robocode的朋友有所帮助,或者权当作一篇玩家故事小品文,一笑了之。</P></BLOCKQUOTE> | |
<P style="WIDOWS: 2; TEXT-TRANSFORM: none; BACKGROUND-COLOR: rgb(255,255,255); MARGIN-TOP: 1em; TEXT-INDENT: 0px; LETTER-SPACING: normal; FONT: 12px Verdana, Geneva, Arial, sans-serif; WHITE-SPACE: normal; ORPHANS: 2; MARGIN-BOTTOM: 1em; COLOR: rgb(51,51,51); WORD-SPACING: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">此信如下(稍有修改):</P> | |
<P style="WIDOWS: 2; TEXT-TRANSFORM: none; BACKGROUND-COLOR: rgb(255,255,255); MARGIN-TOP: 1em; TEXT-INDENT: 0px; LETTER-SPACING: normal; FONT: 12px Verdana, Geneva, Arial, sans-serif; WHITE-SPACE: normal; ORPHANS: 2; MARGIN-BOTTOM: 1em; COLOR: rgb(51,51,51); WORD-SPACING: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">Aspirin,</P> | |
<P style="WIDOWS: 2; TEXT-TRANSFORM: none; BACKGROUND-COLOR: rgb(255,255,255); MARGIN-TOP: 1em; TEXT-INDENT: 0px; LETTER-SPACING: normal; FONT: 12px Verdana, Geneva, Arial, sans-serif; WHITE-SPACE: normal; ORPHANS: 2; MARGIN-BOTTOM: 1em; COLOR: rgb(51,51,51); WORD-SPACING: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"> 如果我们早认识几年,我们可能会在一起并肩作战。:)</P> | |
<P style="WIDOWS: 2; TEXT-TRANSFORM: none; BACKGROUND-COLOR: rgb(255,255,255); MARGIN-TOP: 1em; TEXT-INDENT: 0px; LETTER-SPACING: normal; FONT: 12px Verdana, Geneva, Arial, sans-serif; WHITE-SPACE: normal; ORPHANS: 2; MARGIN-BOTTOM: 1em; COLOR: rgb(51,51,51); WORD-SPACING: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"> </P> | |
<P style="WIDOWS: 2; TEXT-TRANSFORM: none; BACKGROUND-COLOR: rgb(255,255,255); MARGIN-TOP: 1em; TEXT-INDENT: 0px; LETTER-SPACING: normal; FONT: 12px Verdana, Geneva, Arial, sans-serif; WHITE-SPACE: normal; ORPHANS: 2; MARGIN-BOTTOM: 1em; COLOR: rgb(51,51,51); WORD-SPACING: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"> 我已经差不多2年没有再玩过robocode了,最后一次,也就是差不多我离开PASoft的时候。</P> | |
<P style="WIDOWS: 2; TEXT-TRANSFORM: none; BACKGROUND-COLOR: rgb(255,255,255); MARGIN-TOP: 1em; TEXT-INDENT: 0px; LETTER-SPACING: normal; FONT: 12px Verdana, Geneva, Arial, sans-serif; WHITE-SPACE: normal; ORPHANS: 2; MARGIN-BOTTOM: 1em; COLOR: rgb(51,51,51); WORD-SPACING: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"> </P> | |
<P style="WIDOWS: 2; TEXT-TRANSFORM: none; BACKGROUND-COLOR: rgb(255,255,255); MARGIN-TOP: 1em; TEXT-INDENT: 0px; LETTER-SPACING: normal; FONT: 12px Verdana, Geneva, Arial, sans-serif; WHITE-SPACE: normal; ORPHANS: 2; MARGIN-BOTTOM: 1em; COLOR: rgb(51,51,51); WORD-SPACING: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"> 从我的robocode生涯的开始说起吧,大概在我大二快过完的时候,也就是大概2002年的样子,我和班上几个同学遇上了robocode,刚开始大家都很感兴趣,都在玩,也就是拿例子机器人改几个参数然后编译运行一下,这东西真正入门其实并不容易,那些离散的概念对于新手来说,不容易理解并掌握(比如fire和setFire的区别),最后坚持下来的,只有我和同班的Xiemin两人(这也是为什么我和他的机器人用cx包名的原因,c即是Chen Jing,我的真名,x即是Xiemin),我在robocode上花的时间最长,有时候是整个一个多月每天8个小时甚至有时候10多个小时的编写和调试程序,有时候晚上很晚上床睡了,睡着突然想到了改进方法,于是下床编写,编写好了肯定忍不住调试,肯定就要弄到天亮才会继续爬上床了:)。终于在大概半年多以后,我们学习到了很多技巧(当然很多是通过国外优秀机器人的源代码分析学习的),在第一次IBM全世界大赛的时候,我们的技术还很初级,没有任何高超的运动/瞄准算法,但是我们合作的机器人Chick还是获得了1v1第11名,没能晋级8强,很是遗憾。就在那次比赛之后不久,我们一次无意中的对国外一个小机器人的分析,学习到了模式匹配(Pattern Matching,见<A style="COLOR: rgb(163,103,177); TEXT-DECORATION: none" href="http://robowiki.net/cgi-bin/robowiki?PatternMatching">http://robowiki.net/cgi-bin/robowiki?PatternMatching</A>)算法,这种方法对于robocode的瞄准及其有用,其实在这之前Xiemin就研究出了模式匹配算法,它能几乎百发百中的射击Circle机器人,让我很是羡慕。他做的是全匹配方法,因此只对简单模式的机器人有用,比如直线,绕圈,固定S型运动模式的机器人,对于稍有变化的机器人(大多数机器都会有变化),效果不好。我认识到了模式匹配的威力,慢慢研究,Xiemin那时候有段时间没有玩了,我在继续,在一天晚上一个人在学校外的出租屋里抽烟的时候,我从嘴里吐出的烟圈突然想到一个算法,兴奋得我几乎没睡着觉,这个算法采用Wave(波,即烟圈,见<A style="COLOR: rgb(163,103,177); TEXT-DECORATION: none" href="http://robowiki.net/cgi-bin/robowiki?Wave">http://robowiki.net/cgi-bin/robowiki?Wave</A>)进行模式匹配并得到瞄准角度的算法,由此诞生了Cigaret(<A style="COLOR: rgb(163,103,177); TEXT-DECORATION: none" href="http://robowiki.net/cgi-bin/robowiki?Cigaret">http://robowiki.net/cgi-bin/robowiki?Cigaret</A>),我把这个算法精简,用很少的代码把它写成了一个mini-bot(<A style="COLOR: rgb(163,103,177); TEXT-DECORATION: none" href="http://robowiki.net/cgi-bin/robowiki?MiniBots">http://robowiki.net/cgi-bin/robowiki?MiniBots</A>),Cigaret一出来就在eternal-rumble上取得的不错的成绩,大概10多名,我持续调试,调试机器人是最费时间的,有时候改个小参数,就要跟若干个敌人各调试几百场,才能断定这个参数比原来的参数好还是坏,不长时间,Cigaret就跻身到了第二名,第一名是当时很出名的SandboxDT(<A style="COLOR: rgb(163,103,177); TEXT-DECORATION: none" href="http://robowiki.net/cgi-bin/robowiki?SandboxDT">http://robowiki.net/cgi-bin/robowiki?SandboxDT</A>),Cigaret以mini-bot的身份持续在第二名的位置(mini-bot中排第一)大概有一年左右的时间,并且在一次运动算法升级的时候,排到过第一名,但是很快就又降到了第二名。因为SandboxDT实在太强了,他的机器人是不开源的,因此很少人知道他具体的算法。我们的大部分机器人一直保持开源,当时Cigaret引起了世界各地玩家的关注,我们也参与到国外的讨论组和世界各地的玩家讨论,就是这里<A style="COLOR: rgb(163,103,177); TEXT-DECORATION: none" href="http://robowiki.net/">http://robowiki.net</A><SPAN class=Apple-converted-space> </SPAN>,这个wiki现在还运行着,还有不少玩家活跃在上面,因此你可以上去看看,上面也有排行榜。你们可以参与进去。几乎所有的robocode信息,算法技巧,排名历史,甚至robocode的发展历史,各阶段取得优良成绩的机器人历史,都在上面有记载。这里是目前全世界robocode玩家的聚集地:)</P> | |
<P style="WIDOWS: 2; TEXT-TRANSFORM: none; BACKGROUND-COLOR: rgb(255,255,255); MARGIN-TOP: 1em; TEXT-INDENT: 0px; LETTER-SPACING: normal; FONT: 12px Verdana, Geneva, Arial, sans-serif; WHITE-SPACE: normal; ORPHANS: 2; MARGIN-BOTTOM: 1em; COLOR: rgb(51,51,51); WORD-SPACING: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"> </P> | |
<P style="WIDOWS: 2; TEXT-TRANSFORM: none; BACKGROUND-COLOR: rgb(255,255,255); MARGIN-TOP: 1em; TEXT-INDENT: 0px; LETTER-SPACING: normal; FONT: 12px Verdana, Geneva, Arial, sans-serif; WHITE-SPACE: normal; ORPHANS: 2; MARGIN-BOTTOM: 1em; COLOR: rgb(51,51,51); WORD-SPACING: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"> 对了,这里要提一下RoboChina,(<A style="COLOR: rgb(163,103,177); TEXT-DECORATION: none" href="http://www.robochina.org/">www.robochina.org</A>) 是天翼·李建立的中国robocode网站和论坛,一度火热,并有比赛排行榜。PASoft的前身也是他发起,我和Xiemin加入成为开发人员。,那时候国内热心的玩家Arbow,Liuyang也写了不少不错的机器人,后来robochina域名过期没来得及续费,被国外无聊的域名公司抢注了,我们资金有限,没能买回来。后来用了ai-code.org域名,大量玩家流失。后来慢慢……没人了,哈哈,现在也想不清楚具体怎么回事了,反正就那样慢慢robochina在国内玩家心中淡漠消失了,robochina的玩家似乎也随即消失了……。</P> | |
<P style="WIDOWS: 2; TEXT-TRANSFORM: none; BACKGROUND-COLOR: rgb(255,255,255); MARGIN-TOP: 1em; TEXT-INDENT: 0px; LETTER-SPACING: normal; FONT: 12px Verdana, Geneva, Arial, sans-serif; WHITE-SPACE: normal; ORPHANS: 2; MARGIN-BOTTOM: 1em; COLOR: rgb(51,51,51); WORD-SPACING: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"> </P> | |
<P style="WIDOWS: 2; TEXT-TRANSFORM: none; BACKGROUND-COLOR: rgb(255,255,255); MARGIN-TOP: 1em; TEXT-INDENT: 0px; LETTER-SPACING: normal; FONT: 12px Verdana, Geneva, Arial, sans-serif; WHITE-SPACE: normal; ORPHANS: 2; MARGIN-BOTTOM: 1em; COLOR: rgb(51,51,51); WORD-SPACING: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"> 说到robowiki,那是另一个时期的来临,那个时候eternal-rumble已经不再更新了,你可以看到eternal-rumble最后一次的比赛是遥远的2003年。到了robowiki时期,机器人技巧经历了两次大的突破,在eternal-rumble时期,最牛的辉煌的广为人知的技术是模式匹配+随机运动(<A style="COLOR: rgb(163,103,177); TEXT-DECORATION: none" href="http://robowiki.net/cgi-bin/robowiki?RandomMovement">http://robowiki.net/cgi-bin/robowiki?RandomMovement</A>),很多优秀的机器人都采自的这种技巧(Cigaret是其中之一),之后,由于模式匹配算法的种种缺点,比如运算速度慢,所以不能分析太多的数据,否则机器人太慢会被disabled,太慢也造成调试很费时间,效率不高。后来SandboxDT的作者公布了他的minibot SandBoxMini(<A style="COLOR: rgb(163,103,177); TEXT-DECORATION: none" href="http://robowiki.net/cgi-bin/robowiki?SandboxMini">http://robowiki.net/cgi-bin/robowiki?SandboxMini</A>)机器人的算法,大家学习到了统计学算法,当时称为guess factor(<A style="COLOR: rgb(163,103,177); TEXT-DECORATION: none" href="http://robowiki.net/cgi-bin/robowiki?GuessFactor">http://robowiki.net/cgi-bin/robowiki?GuessFactor</A>)技术,我也开始尝试此项技术,enternal-rumble快关闭的时候我出的CigarteST就是对此的一种尝试,你从它最后一次比赛排行第二可以看出,效果很不错。后来就出现了david alves的经典机器人,一举打败了SandBoxDT的统治。在后来kawigi也推出了不少优秀机器人,很长一段时间,大家都是在这种机器人上不断的调优,由于robocode世界,大家都崇尚相互学习,大多机器人都是开源的,所以当前最好的技术,老玩家大家都熟悉,因此也就是比拼一些小的改进,一些实现方式的不同,所造成的不同成绩,大的思路大家都是相同的(当然很多新手也是停留在很初级的技巧上),robowiki的维护者瑞典的PEZ也推出了不少优秀的机器人,还有很多,我现在不能一一记起来。当然,在这个时期,还有一些不得不提的技术,比如Virtual Guns(<A style="COLOR: rgb(163,103,177); TEXT-DECORATION: none" href="http://robowiki.net/cgi-bin/robowiki?VirtualGuns">http://robowiki.net/cgi-bin/robowiki?VirtualGuns</A>)技术,因为流行的好的瞄准算法是模式匹配和统计学,大多机器人都是要么采用模式匹配,要么采用统计学,Virtual Guns技术就是,具体用一种方法的设计的时候,同时还虚拟(假设)用另外一种,由此统计,对于当前的敌人,哪种效果更好,因此下一次瞄准就采用哪种。我和Xiemin合作开发的Princess好像就用了这个技术,但是效果不是很好,PEZ大量使用了此技术,取得了不错的效果。但是,终究不是大的突破,所以很难有突出的机器人诞生。不久后,一个哪个国家的作者我忘记了,通过修改我和另一个国外人合作开发的机器人Sedan的源代码,发布了一个机器人,一举排到了排行的前几名,由于新手很难会有如此成绩的,所以引起了大家的关注,大家发现了他是通过修改Sedan而来,并且没有遵守开源协议(他的机器人修改自我们的开源机器人,但他没有开源,<A style="COLOR: rgb(163,103,177); TEXT-DECORATION: none" href="http://robowiki.net/cgi-bin/robowiki?RWPCL">http://robowiki.net/cgi-bin/robowiki?RWPCL</A>),受到了大家的谴责,我也比较气愤,因为他是通过我们的机器人改来的,我反编译他的代码,并发现了一个可能会有重大突破的改进思路,就是通过自己中弹的信息来调整自己的运动,因为在此前的时间里,大家都关注在瞄准算法上,运动算法没有什么突破,还是随机运动占主流,也是最好的运动,一个调优的好的随机运动,效果很好,既能让模式匹配难以匹配,也能让统计学统计的每个角度概率都差不多。但是随机运动毕竟是死的,它不能自我调节,不能像瞄准算法的模式匹配或者统计学那样的根据敌人的情况学习。由此,我试验出了Lacrimas,采用反统计学的思路,就是当自己中弹的时候,就认为中弹的那个角度,被敌人统计为最高概率的角度,因此调整这个运动概率,再次运动。一出来,取得了很好的效果,甚至可以打败SandBoxDT,SandBoxDT的作者Paul Evans很快推出了新版SandboxDT,维持住了他的统治地位。由此Lacrimas受到关注,但当时由于什么原因我现在忘记了,一段时间没有再继续改进。后来,我再上robowiki的时候,发现大家讨论起了WaveSurfer技术。此技术的思路和Lacrimas一样,就是反统计学,此技术的倡导者abc推出了得到巨大成绩突破的机器人Shadow,引起了大家的极大兴趣,并且abc公布了此技术的思路,于是Wavesurfer迅速得到推广,很快SandboxDT被推下了统治地位,并一去不复返,再也未能像以前那样每次被大败都能很快爬起来。我后悔自己当初放出Lacrimas的时候没有开源,当时想保密思路,改进得更牛逼了能稳居第一了再分享,因此没有人讨论,没能像abc那样发展成Wavesurfer,由此看来,在对待技术上,一定要开放,不要闭塞,否则自己发展很慢,我由于自己的狭隘,错失了一次坐上冠军宝座的机会,当时怎么就没能像当初开发出Cigaret和Wave技术时那样开放呢,我很为自己的封闭狭隘而遗憾了一段时间。Wavesurfer的思路和Lacrimas的运动是一样的,但是Wavesurfer的实现方法很科学,这也是WaveSufer这个名称的由来,它把敌人击中自己的信息统计下来,根据概率形成一个个角度范围颜色深度大小不同Wave波浪,在敌人发射炮当时,假设敌人发出了这样一个Wave,让自己的机器人在Wave上根据颜色深度而作冲浪运动(我们大多都采用一些辅助工具,比如RobocodeGL来实时绘制出这些图像信息,便于实时的观察和分析Wave变化, 后来还有更方便的可以替代RobocodeGL的工具我忘了叫什么了),也就是不断往颜色深度低的地方滑动,这点改进非常有效,比起Lacrimas的点到点运动(直线往颜色深度最低的点运动),优秀很多,因为它总表现为绕敌人圆周来回运动,因此敌人的模式匹配相当于也简化为统计学了,由此同时也有效的反了模式匹配。后来我和Xiemin合作开发了Pear(<A style="COLOR: rgb(163,103,177); TEXT-DECORATION: none" href="http://robowiki.net/cgi-bin/robowiki?pear">http://robowiki.net/cgi-bin/robowiki?pear</A>)机器人,采用此技术,由于此技术实现起来难度不小,我们用了差不多2个月时间开发和调优完成,代码量已经可以算是一个小程序项目大小,总共大概40多个类,Pear取得了不错的成绩,现在你到robowiki排行榜上还能看到它,已经是几年前的机器人了,现在还排在比较靠前的位置。直到现在,WaveSurfer仍是最好的运动策略,统计学瞄准,仍是最好的瞄准策略,目前排行榜前十的机器人大概都是采用的这两种技术,呵呵,后者是统计学,而前者是反统计学,虽然后来也出现了Anti-WaveSurfer瞄准策略,但是并不是什么革命性的突破,我想,老在统计学上面反来反去,不是什么好的方向,下一次重大突破,有待后来者们的努力,记住,要想登上冠军宝座,革命新的突破是唯一道路(以往的例子已证明)。</P> | |
<P style="WIDOWS: 2; TEXT-TRANSFORM: none; BACKGROUND-COLOR: rgb(255,255,255); MARGIN-TOP: 1em; TEXT-INDENT: 0px; LETTER-SPACING: normal; FONT: 12px Verdana, Geneva, Arial, sans-serif; WHITE-SPACE: normal; ORPHANS: 2; MARGIN-BOTTOM: 1em; COLOR: rgb(51,51,51); WORD-SPACING: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"> </P> | |
<P style="WIDOWS: 2; TEXT-TRANSFORM: none; BACKGROUND-COLOR: rgb(255,255,255); MARGIN-TOP: 1em; TEXT-INDENT: 0px; LETTER-SPACING: normal; FONT: 12px Verdana, Geneva, Arial, sans-serif; WHITE-SPACE: normal; ORPHANS: 2; MARGIN-BOTTOM: 1em; COLOR: rgb(51,51,51); WORD-SPACING: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"> 之后,我就再也没能玩robocode了,由于工作的繁忙,由于robocode机器人技术已经如此高深,现在要写一个能排到前十的机器人,就算是一个老手,没有两个月时间日以继夜的努力,也很难成功。</P> | |
<P style="WIDOWS: 2; TEXT-TRANSFORM: none; BACKGROUND-COLOR: rgb(255,255,255); MARGIN-TOP: 1em; TEXT-INDENT: 0px; LETTER-SPACING: normal; FONT: 12px Verdana, Geneva, Arial, sans-serif; WHITE-SPACE: normal; ORPHANS: 2; MARGIN-BOTTOM: 1em; COLOR: rgb(51,51,51); WORD-SPACING: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"> </P> | |
<P style="WIDOWS: 2; TEXT-TRANSFORM: none; BACKGROUND-COLOR: rgb(255,255,255); MARGIN-TOP: 1em; TEXT-INDENT: 0px; LETTER-SPACING: normal; FONT: 12px Verdana, Geneva, Arial, sans-serif; WHITE-SPACE: normal; ORPHANS: 2; MARGIN-BOTTOM: 1em; COLOR: rgb(51,51,51); WORD-SPACING: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"> 我们一直在等待IBM的下一次国际大赛,或者在中国举行大赛(其他很多国家都举行过),但是IBM一直没举行。</P> | |
<P style="WIDOWS: 2; TEXT-TRANSFORM: none; BACKGROUND-COLOR: rgb(255,255,255); MARGIN-TOP: 1em; TEXT-INDENT: 0px; LETTER-SPACING: normal; FONT: 12px Verdana, Geneva, Arial, sans-serif; WHITE-SPACE: normal; ORPHANS: 2; MARGIN-BOTTOM: 1em; COLOR: rgb(51,51,51); WORD-SPACING: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"> </P> | |
<P style="WIDOWS: 2; TEXT-TRANSFORM: none; BACKGROUND-COLOR: rgb(255,255,255); MARGIN-TOP: 1em; TEXT-INDENT: 0px; LETTER-SPACING: normal; FONT: 12px Verdana, Geneva, Arial, sans-serif; WHITE-SPACE: normal; ORPHANS: 2; MARGIN-BOTTOM: 1em; COLOR: rgb(51,51,51); WORD-SPACING: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"> 之前我介绍的,算是1v1的技术和历史,对于Melee还有Team的比赛,在我认为,从来没有过像1v1的模式匹配,统计学,WaveSufer(我和Xiemin称为反统计学)那样的辉煌技术突破,因此没有详细介绍,可以提到一些比较优秀并很有益的技术,比如反重力Anti-Gravitation,很有趣的技术,它的思路是这样的,由于在Melee混战中,你越跟大多数敌人混在一块,越死的快,因此跑到人烟稀少的区域,从远处射击人烟密集的地方,越能取得好成绩,因此Anti-Gravitation假设每个机器人都有排斥的力量,墙壁也是(避免装墙),每个tick都分析自己周围那个方向的磁力最低,因此往那个方向运动,由此,自己总能往人烟稀少的地方跑,这很有效。很多优秀的Melee机器人都采用了这种思路,虽然具体实现方式可能不同,但是都能取得不错的效果。此种思路,非常启发人,你可以从这个技术和WaveSurfer技术看到,模拟一个现实的物理现象(重力/磁力,波,冲浪),是多么的优美和有趣啊,并且总能获得很好的实战效果。还有更多的例子,我这里就不一一追述了。从生活中领悟,乃是技术突破的关键。在你编码和思考疲劳的时候,或许出去走走,你就会有更多的发现。</P> | |
<P style="WIDOWS: 2; TEXT-TRANSFORM: none; BACKGROUND-COLOR: rgb(255,255,255); MARGIN-TOP: 1em; TEXT-INDENT: 0px; LETTER-SPACING: normal; FONT: 12px Verdana, Geneva, Arial, sans-serif; WHITE-SPACE: normal; ORPHANS: 2; MARGIN-BOTTOM: 1em; COLOR: rgb(51,51,51); WORD-SPACING: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"> </P> | |
<P style="WIDOWS: 2; TEXT-TRANSFORM: none; BACKGROUND-COLOR: rgb(255,255,255); MARGIN-TOP: 1em; TEXT-INDENT: 0px; LETTER-SPACING: normal; FONT: 12px Verdana, Geneva, Arial, sans-serif; WHITE-SPACE: normal; ORPHANS: 2; MARGIN-BOTTOM: 1em; COLOR: rgb(51,51,51); WORD-SPACING: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"> Team的话,我没有深究,虽然也尝试写过,但是都仅限于一些是人都想得到的简单方式把几个Melee机器人和在一起组成一个团队而已。并且,其他玩家也很少有人深入发展Team,因此,也没有什么可值得提的好思路。</P> | |
<P style="WIDOWS: 2; TEXT-TRANSFORM: none; BACKGROUND-COLOR: rgb(255,255,255); MARGIN-TOP: 1em; TEXT-INDENT: 0px; LETTER-SPACING: normal; FONT: 12px Verdana, Geneva, Arial, sans-serif; WHITE-SPACE: normal; ORPHANS: 2; MARGIN-BOTTOM: 1em; COLOR: rgb(51,51,51); WORD-SPACING: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"> </P> | |
<P style="WIDOWS: 2; TEXT-TRANSFORM: none; BACKGROUND-COLOR: rgb(255,255,255); MARGIN-TOP: 1em; TEXT-INDENT: 0px; LETTER-SPACING: normal; FONT: 12px Verdana, Geneva, Arial, sans-serif; WHITE-SPACE: normal; ORPHANS: 2; MARGIN-BOTTOM: 1em; COLOR: rgb(51,51,51); WORD-SPACING: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"> 由于时间仓促,事先也没有准备,就介绍到这里,时隔我最后一次写机器人,也大概2年多了,很多以前知道的东西,现在也很模糊了,因此未能全面而详细,请见谅。更详细的各种信息,你可以通过浏览<A style="COLOR: rgb(163,103,177); TEXT-DECORATION: none" href="http://robowiki.net/">http://robowiki.net</A><SPAN class=Apple-converted-space> </SPAN>而得到。</P> | |
<P style="WIDOWS: 2; TEXT-TRANSFORM: none; BACKGROUND-COLOR: rgb(255,255,255); MARGIN-TOP: 1em; TEXT-INDENT: 0px; LETTER-SPACING: normal; FONT: 12px Verdana, Geneva, Arial, sans-serif; WHITE-SPACE: normal; ORPHANS: 2; MARGIN-BOTTOM: 1em; COLOR: rgb(51,51,51); WORD-SPACING: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"> </P> | |
<P style="WIDOWS: 2; TEXT-TRANSFORM: none; BACKGROUND-COLOR: rgb(255,255,255); MARGIN-TOP: 1em; TEXT-INDENT: 0px; LETTER-SPACING: normal; FONT: 12px Verdana, Geneva, Arial, sans-serif; WHITE-SPACE: normal; ORPHANS: 2; MARGIN-BOTTOM: 1em; COLOR: rgb(51,51,51); WORD-SPACING: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"> 最后,我不得不提一下在我毕业后和Xiemin还有Cairong创立的公司,PASost(<A style="COLOR: rgb(163,103,177); TEXT-DECORATION: none" href="http://www.ai-code.com/">http://www.ai-code.com</A>),后来天翼·李也加入了,我们开发了类似robocode这样的游戏平台,功能更强大,支持Java,C/C++,Delphi…多种语言编写机器人,并且提供了很好的机器人编写/调试环境。我们还开发了机器人足球平台,跟国内外现有的仿真平台不同,我们没有走完全仿真的思路,而是像robocode那样的简单有趣的模拟方式。但是由于市场推广困难,我们几人在去年和今年相继离开。此产品现在由投资我们的公司继续持有并运营。对于国内玩家,如果有兴趣组织发起此类游戏比赛的朋友,我非常推荐采用我们的平台,因为它用起来更简单,功能更强大,并且有完善的工具,支持更多的语言。非常希望看到国内能有此类活动的发展,可惜无奈,我已无能再投身此业。 |
- roboboot.rar (233.7 KB)
- 下载次数: 3
相关推荐
Robocode 是一个基于Java的开源项目,它提供了一个平台,让用户可以编写自己的智能机器人进行对战,其中"智能坦克"是这个环境中的主要参赛者。这个压缩包文件名为"Fremat",很可能包含了作者用于2002年Robocode ...
根据提供的文件信息,我们可以深入分析该段代码以及其在Robocode比赛中的应用策略和技术细节。 ### Robocode简介 Robocode是一款允许用户通过编程创建虚拟坦克机器人进行战斗的游戏平台。玩家可以利用Java语言来...
Robocode 是一个开源的编程游戏,它允许玩家编写自己的机器人进行虚拟战斗。在这个环境中,开发者通过编程来控制机器人的行为,与其他机器人进行对抗,目的是在比赛中得分最高。"robocode_the1990" 提供的是一个特定...
【蓝杰IBM-robocode平台资料】是一套关于使用IBM-robocode进行机器人开发的教育资源。这个平台基于Java语言,提供了丰富的工具和环境,让学习者可以构建、测试和竞赛虚拟机器人。IBM-robocode是一个开源项目,它为...
### IBM Robocode 人工智能机器人讲义 #### 1. 前言 在探讨IBM Robocode人工智能机器人讲义之前,我们需要明确一点:编程语言的学习不仅仅局限于语法层面,更重要的是理解和运用算法。对于初学者而言,往往会在...
### Robocode经典学习笔记知识点详解 #### 一、Robocode简介与环境搭建 **Robocode**是一款基于Java的编程游戏,玩家通过编写机器人程序来进行战斗。这款游戏不仅能够帮助程序员提高编程技能,还能够锻炼策略思维...
Robocode是一种开源的Java编程游戏,它允许玩家编写机器人程序,然后让这些机器人在虚拟战场上进行战斗。这个压缩包包含了Robocode的各种文档和1.8.3版本的最新安装包,是学习和参与Robocode的理想资源集合。 首先...
Robocode是一款开源、免费的机器人编程游戏,它允许玩家通过编写Java代码来创建虚拟坦克机器人,这些机器人在竞技场中相互战斗。游戏的核心是策略、算法优化以及对机器人行为的控制,这使得Robocode不仅是一种娱乐...
Robocode 是一个基于Java开发的开源游戏平台,它允许编程爱好者和初学者通过编写机器人代码进行虚拟战斗。这个"robocode-1.8.1.0-src.zip"压缩包包含了Robocode的源代码,为那些想要深入理解其内部机制、进行自定义...
《Robocode深度剖析》是由周磊撰写的一篇深入探讨Robocode这一开源机器人战斗游戏的论文。Robocode提供了一个平台,让开发者通过编写机器人程序来进行虚拟战斗,借此学习编程、算法和策略设计。本文将主要围绕...
Robocode 是一个开源的编程游戏,它允许程序员通过编写机器人代码来参与虚拟战斗。这个平台最初是用Java编写的,但随着技术的发展,C++版本的Robocode也逐渐被引入,为开发者提供了一个新的学习和实践C++技术的途径...
Robocode是2001年7月在美国IBM 的Web alphaWorks上发布的坦克机器人战斗仿真引擎。与通常玩的游戏不同的是:参赛者必须利用对机器人进行编程,给机器人设计智能来自动指挥它,而不是由键盘、鼠标简单地直接控制。...
Robocode 是一个基于Java平台的开源机器人战斗游戏,它允许用户编写自己的机器人程序,并在虚拟战场上进行对战。这个游戏的设计目的是教育和娱乐,通过编程竞赛的方式,帮助学习者提升编程技能,尤其是算法和策略...
Robocode是2001年7月在美国IBM 的Web alphaWorks上发布的坦克机器人战斗仿真引擎。与通常玩的游戏不同的是:参赛者必须利用对机器人进行编程,给机器人设计智能来自动指挥它,而不是由键盘、鼠标简单地直接控制。...
Robocode是2001年7月在美国IBM 的Web alphaWorks上发布的坦克机器人战斗仿真引擎。与通常玩的游戏不同的是:参赛者必须利用对机器人进行编程,给机器人设计智能来自动指挥它,而不是由键盘、鼠标简单地直接控制。...
**Robocode API 参考文档详解** Robocode是一款开源的机器人对战平台,它允许开发者用Java编程语言设计和编程机器人进行战斗。这个平台提供了一个丰富的API,使得开发者可以创建复杂的策略和战术,以实现机器人的...
Robocode 是一个开源的编程游戏,它允许玩家编写自己的坦克机器人进行战斗仿真。在这个环境中,开发者通过编程控制坦克的行为,从而实现策略对抗。这个引擎提供了一个完善的平台,让程序员能够学习和实践基本的编程...
资源名称:Java开发坦克机器人Robocode视频课程(61集)资源目录:【】001_[Robocode简介及创建第一个机器人].何足道【】002_[Robocode环境安装及机器人运动命令run简介].何足道【】003_[机器人运动控制的命令].何...
Robocode 是一个开源的Java项目,它提供了一个平台,让用户可以编写自己的机器人程序,并让它们在虚拟战场上进行战斗。这个项目对于学习编程、人工智能、策略优化以及Java编程语言都有着极高的教育价值。在这个名为...