亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

世界robocode機器人的四大運動方式分析

2019-11-18 13:12:10
字體:
來源:轉載
供稿:網友


  前言
  Robocode在短短的時間內風靡全球,全世界的robocode愛好者設計出了大量的優秀智能機器人,他們都擁有各自的運動方式,有的很輕易被擊中,有的卻很難射擊。設計一個好的運動方式是優秀robocode機器人取勝的要害。上屆世界中級組冠軍Fermat就是靠他讓敵人難以琢磨的運動躲過敵人一發發的子彈而取得勝利。(當然,他的優秀的瞄準射擊也是取勝的要害)怎樣的運動才能不被敵人擊中,讓敵人琢磨不透呢?這里我把常見的機器人運動方式分為4類來詳解。
  
  明顯有規律的主動運動
  剛開始玩robocode的很多都會有這種感覺,Samples里面Walls最強,誰都打不到他。Wall就是一種很典型的明顯有規律的主動運動,他總是直線繞墻走,如圖1:
  
 世界robocode機器人的四大運動方式分析(圖一)

  
圖1

  
  因為它幾乎總是在動,而Sample里面的機器人的射擊方法幾乎都是直接射擊敵人的當前位置,由于子彈到達目標需要一定的時間,當子彈飛過去的時候,Wall已經不在原來那個位置了,所以它們總是打不到它,因此在剛開始時它看起來是那么的強大。但是,Walls并不能算一個優秀的機器人,它僅是作為一個例子來介紹robocode機器人的制作方法,稍厲害一點的機器人都能很得心應手的射擊它,有的機器人甚至能槍槍必中的打它。他們大多運用了提前量的算法計算出子彈到達Walls的時候Walls大概走的距離,然后攻擊Walls下一步將要行走的地方。至于怎樣編碼實現,已經超出了這篇文章的范圍,你可以參考PRedictive targeting。
  
  采取這一類運動方式的機器人很多,它們規律很明顯,很輕易被把握,像SpinBot總是做圓周運動(圓周運動的射擊方法可以參見圓周瞄準),Corners總是躲在角落不動……你會發現它們都是很輕易對付的角色,是不是要寫出優秀的機器人就不能用這樣的策略呢?當然不是,在人眼看起來有規律的運動,機器人未必會認為有規律(這要取決于你的機器人的分析方法)。非凡是在群戰的時候,你要顧及大量的敵人,你不可能只關注一個敵人的運動,你要同時關注A或關注B的運動,因此即使A作了規律很明顯的運動,你也很難察覺。
  
  典型的例子就是David McCoy的PrairieWolf,你看它群戰的時候經常待在角落做一種繞角落往返運動,但是你卻未必能很輕易的射擊他,還有就是Paul Evans的SandboxLump,它不僅是在角落往返,而且還夾雜著很多的弧線運動,如圖2:
  
 世界robocode機器人的四大運動方式分析(圖二)

  
圖2

  
  即使是單挑的時候,你的機器人也很難分析出SandboxLump的具體規律,所以要擊中它并不輕易,確切地說那實在是太難了。這里我要重要介紹一種被廣泛采用的往返運動方式,如圖3:
  
 世界robocode機器人的四大運動方式分析(圖三)

  
圖3

  
  假如機器人R1在A,B之間作直線往返運動,某一時刻機器人R1和機器人R2在如圖所示位置,R1目前是直線運動。假如R1的擺幅小于R1到R2的距離,R2用直線提前量的射擊方法,射擊點在B點右邊的C點,它發射了子彈,但是R1運動到B點的時候忽然反向向A行駛,到達A后又返回向B行駛,如此反復,R2的子彈就總是打在A點偏左或者B點偏右的地方。這就是往返運動的迷惑性,哈哈,R1能迷惑敵人了,它很強了吧?不,假如R1的擺幅大于R1與R2的距離。如圖所顯假設R2在R2’的位置,它計算的射擊點C’在AB之間,這樣的話則可以擊中敵人,所以往返運動也不一定總能使敵人打偏,靠你比較近的敵人就顯得非常危險。還有優秀的機器人一般能識別往返運動的敵人,它能計算出你往返的距離,這樣你可能就被別人百發百中了。所以假如你要采用這樣的方法的話,可以添加一些其他因數,比如說弧線往返運動,往返運動隨機距離等等。
  
  隨機性很強的主動運動
  當你把握了對付Wall和SpinBot的射擊方法后,你是否又覺得Sample里面的Crazy也是個令人頭疼的家伙?你用分別用對付Corner,Walls和SpinBot的射擊方法跟他對戰,你會發現這三種方法都能打中他,但是命中率都沒有打Corner,Walls和SpinBot他們高,這里我做了個測試:分別用三種方法來對付Crazy,測試結果如下表1:
  
  子彈參數
  射擊方法             命中 未中 命中率
  對付Corner的當前位置射擊方法   5  40  %11.11
  對付Walls的直線提前量射擊方法   8  24  %25
  對付SpinBot的圓周提前量射擊方法  7  17  %29.16
  
  他雖然總是做弧線運動,但是這次弧線運動停止后又會開始另一個方向的弧線運動。可能你看了Crazy的源代碼后你會懷疑,代碼里面一個類似Math.random()的語句都沒有,怎么稱這種運動是隨機性很強的運動呢?這里的隨機性是相對于你的機器人的運動分析程序的:由于他總是時而轉動,時而停止換一個方向,時而向前,時而向后,撞到墻又會改變方向。一般的機器人都難以分辨這種改變,所以通常也稱它為隨機的運動。
  
  雖然他的隨機性很強,但是用對付SpinBot的圓周提前量射擊方法也達到%29.16的好成績,顯然這樣的運動也不是很理想。更明顯的隨機運動是在代碼里加入了類似ahead(Math.random()*200),turnLeft(Math.random()*360)這樣的代碼,這樣隨機性就更強,連此機器人的作者也不知道它的下一步會采取怎樣的運動,你又如何提前預知呢?那么……這樣運動的機器人是否就打不中呢?你從對付Crazy的射擊命中率表可以看出,雖然我采取對付另一種有規律運動方式的的射擊策略來對付一種我不知道的運動方式是不合理的,但是我卻往往也能打中它,而且命中率并不低。為什么呢?我舉個例子吧,假設我采取對付Wall的直線提前量射擊方法射擊Crazy,如圖4:
  
 世界robocode機器人的四大運動方式分析(圖四)

  
圖4

  
 世界robocode機器人的四大運動方式分析(圖五)

  
圖5

  
  我認為它走的是直線,這顯然是錯誤的,但是在我離它比較近的時候,雖然射擊的是如圖的B’點而R1運動到了C點,考慮到機器人有一定的高寬度,R2也仍然能打到它。
  
  對于另外一種直線隨機距離往返運動的機器人(前面提到過的一個建議Random),你可以看圖5。你計算到假如你射擊B的話,子彈到達B點的時候敵人R1也恰好到達B點處,但是R1隨時都有可能改變方向返回,這取決于random()方法。假如剛開始ahead(Math.random()*200)中Math.random()返回一個很大的值,大到足以使R1運動到B點甚至超過B點,那么你將擊中敵人;假如這個返回值很小,使R1還沒到達B處就返回了,這樣你這發子彈就浪費了。所以說你仍然有機會擊中它,它并不是難以把握的,只是什么時候能擊中什么時候不能擊中,誰都說不清楚。
  
  對瞄準有干擾性的主動運動
  看了上面兩種運動方式的分析,也許在你心頭有這樣的想法,我先以一種很明顯的規律運動,等敵人誤認為我是那種方式運動后馬上改變為另一種規律,然后等敵人意識到現在的運動規律后我又改變為原來那種,這樣敵人是否就被我迷惑了呢?呵呵,的確,這樣是一種很不錯的方法,許多優秀的機器人的運動有不同程度的干擾迷惑性。我還是先舉個例子來說說吧。假如一個機器人一開始不動,你會采取怎樣的射擊方法呢?一般都會用對付Corner的當前位置射擊方法吧?但是當你發射子彈后,它又開始直線運動了,這時假如你的炮管冷卻度為0的話,你采取第二次射擊,你怎么辦?用對付Corner的當前位置射擊方法?你顯然打不中它,因為它在動,但是假如用對付Walls的直線提前量射擊方法的話,你能肯定它不會在下一個周期(滴答)停下?這是一種典型的對瞄準有干擾性的主動運動,優秀的機器人Wolverine就是采用了這種方法,它能探測敵人什么時候發彈,在敵人發彈的一瞬間改變運動方式如圖6:(具體請見躲避子彈)
  
世界robocode機器人的四大運動方式分析(圖六)

  
圖6

  
  這樣的運動方式通過代碼已經很難把握它的具體變化規律,因此在Wolverine剛出來的時候沒有幾個機器人能打敗Wolverine。后來優秀的機器人不斷進展,有的能計算敵人停留了多久就會動,動了多遠又會停止,雖然不能很精確,但是總能時而擊中它了。
  
  更先進的干擾運動有先小距離往返運動,然后走一段比較長的距離(比如xieming的CX1.33,文件名為cx.MinixHT_1.33);還有先往一個方向直線運動,估算敵人子彈快要擊中自己的時候改變運動方向,下一個子彈快擊中時又改變方向(如Glyn Davies的Mooserwirt2)等等。很多優秀的機器人都采用了類似的運動方式,怎樣才能不被干擾?怎樣才能識別干擾?沒有一種識別所有干擾的萬能方法,因此只能針對特定一種或某一類干擾進行處理,比如CX1.33的干擾,你可以記下它的較長運動距離平均(這里用L表示)是多少?當他運動距離超過了小距離往返運動的那個距離的時候,你就不要以為他還會掉頭回去或者就一直走下去,它應該大概在走了L距離后返回。對于眾多的運動方式,怎樣識別一個干擾又是一個難題,所以在射擊優秀的機器人時,命中率一般不會太高。
  
  怎樣讓別人不斷的被干擾成為設計一個優秀運動的重點,也是樂趣所在。當你設計的運動方式不斷的迷惑敵人的時候,你是否有種嬉笑歡快的感覺呢?。海?br />  
  依據對方發彈或者運動而采取的被動運動
  
  前面我們講到的Wolverine在敵人發彈后才開始運動,是否他也屬于這一類呢?的確,它的運動方式也應該同時屬于依據對方發彈或者運動而采取的被動運動。
  
  還有一些優秀的機器人很類似Wolverine,它們也是在敵人發彈后才開始運動,但是他們又有很多不同,假如

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩av中文字幕在线| 国产精品国产三级国产aⅴ9色| 日本午夜精品理论片a级appf发布| 亚洲剧情一区二区| 91亚洲精品在线| 亚洲视频第一页| 欧美激情videos| 亚洲欧美制服第一页| 少妇高潮久久77777| 91精品久久久久久| 欧美三级欧美成人高清www| 成人黄色免费在线观看| 久久手机免费视频| 国产欧美最新羞羞视频在线观看| 精品亚洲精品福利线在观看| 亚洲国产精品视频在线观看| 国产丝袜高跟一区| 国产成人精品av在线| 欧美激情一区二区三区成人| 国产精品一区二区三| 久久视频中文字幕| 亚洲色图美腿丝袜| 深夜福利一区二区| 国产精品色午夜在线观看| 久久久欧美一区二区| 欧美性高潮床叫视频| 精品久久久久久久久久久久久| 国产91精品网站| 最近2019免费中文字幕视频三| 日韩欧中文字幕| 97成人超碰免| 国产福利精品视频| 色偷偷偷亚洲综合网另类| 91国产美女视频| 插插插亚洲综合网| 色无极影院亚洲| 91久久精品国产91久久| 国产精品一区二区三区免费视频| 色诱女教师一区二区三区| 国产精品嫩草影院一区二区| 国产做受69高潮| 国产精品久久久久久久av电影| 国产亚洲精品久久久优势| 日韩一区av在线| 欧美成人全部免费| 久久精品国产综合| 91在线观看免费观看| 日韩美女主播视频| 日韩视频免费在线观看| 日韩精品免费在线视频观看| 亚洲深夜福利视频| 日韩精品在线观看网站| 国产成人精品免费视频| 亚洲欧洲日产国码av系列天堂| 91情侣偷在线精品国产| 欧美老女人性生活| 亚洲在线视频观看| 亚洲无亚洲人成网站77777| 成人网在线免费观看| 欧美国产日产韩国视频| 国产一区二区日韩| 久久精品国产一区二区电影| 欧美日韩中文字幕在线| 亚洲三级 欧美三级| 国产成人91久久精品| 日韩精品免费视频| 欧美日韩国产丝袜美女| 亚洲最大福利视频网| 国产精品户外野外| 黑丝美女久久久| 亚洲国产成人久久综合| 日韩av中文在线| 亚洲乱码国产乱码精品精| 亚洲石原莉奈一区二区在线观看| 久久久国产精品视频| 国产福利精品av综合导导航| 国产欧美精品一区二区三区介绍| 国产精品视频久久久久| 91久久久久久久| 91久久久久久久久久久久久| 亚洲精品国精品久久99热一| 国产玖玖精品视频| www.美女亚洲精品| 国产成人在线一区| 国产精品久久综合av爱欲tv| 91精品视频免费观看| 国产精品天天狠天天看| 91极品视频在线| 91成人国产在线观看| 亚洲最大成人网色| 亚洲国产成人精品电影| 91国偷自产一区二区三区的观看方式| 日韩精品免费在线| 久久99精品视频一区97| 91po在线观看91精品国产性色| 日韩av电影中文字幕| 亚洲电影免费观看高清| 最近2019中文字幕一页二页| 欧美日韩国产一中文字不卡| 国产一区二中文字幕在线看| 精品久久在线播放| 久久99久久99精品中文字幕| 欧美香蕉大胸在线视频观看| 国产日韩在线亚洲字幕中文| 性欧美xxxx| 在线观看国产欧美| 欧美激情综合亚洲一二区| 日韩av不卡电影| 波霸ol色综合久久| 国产视频精品一区二区三区| 精品中文字幕在线| 亚洲欧美日韩中文在线制服| 国产欧美日韩中文| 国产一区二区三区视频在线观看| 国产精品毛片a∨一区二区三区|国| 性金发美女69hd大尺寸| 欧美成人精品xxx| 亚洲精品美女在线| 91青草视频久久| 国产精品网址在线| 亚洲精品视频在线播放| 日韩在线观看电影| 97香蕉久久超级碰碰高清版| 欧美亚洲激情视频| 欧美高清理论片| 91国产在线精品| 久久精品久久久久久| 日韩av在线精品| 成人免费自拍视频| 国产午夜精品视频免费不卡69堂| 国产亚洲在线播放| 国产一区二区三区四区福利| 亚洲国产日韩欧美在线99| 国产欧美一区二区三区在线看| 成人免费视频网址| 97久久精品人人澡人人爽缅北| 国产91在线播放| 国产91av在线| 91沈先生在线观看| 亚洲免费av网址| 日韩久久精品成人| 亚洲最大福利网| 久久免费精品日本久久中文字幕| 欧美美女操人视频| 亚洲精品一区av在线播放| 国产精品久久久久久超碰| 国产一级揄自揄精品视频| 国产精品黄视频| 日韩av在线免播放器| 国产一区香蕉久久| 欧美激情视频播放| 中文字幕亚洲一区| 欧美一级片一区| 欧美一区在线直播| 欧美一级成年大片在线观看| 欧美性少妇18aaaa视频| 成人精品福利视频| 久久躁日日躁aaaaxxxx| 亚洲美女喷白浆| 欧亚精品中文字幕| 国产亚洲精品日韩| 欧美日韩久久久久| 国产亚洲综合久久| 青草成人免费视频|