日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Robocode教程2——你的第一个robo,取个好名字哦

發(fā)布時(shí)間:2025/3/15 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Robocode教程2——你的第一个robo,取个好名字哦 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

摘自:http://site.douban.com/widget/notes/7736245/note/210029011/

?

?你需要準(zhǔn)備的東西:
1.c語言的知識(shí)和一點(diǎn)點(diǎn)的java知識(shí),robocode意在學(xué)習(xí)java,不要要太深的java水平,你只要理解java和c的區(qū)別就可以了。
2.robocode API,這個(gè)以后會(huì)經(jīng)常用到,幾乎不能離開,相當(dāng)于方法字典,robocode的所有方法都在里面。下載地址:http://115.com/file/e765xcsb#javadoc.zip
網(wǎng)頁版:http://robocode.sourceforge.net/docs/robocode/

好了,興趣是最好的老師,我們先拋開那些繁瑣的參數(shù)、坐標(biāo)、算法,先建立一個(gè)簡單的robo試試。
打開robocode,選擇【Robot】->【Editor】,打開editor后,選擇【new】->【Robot】,給robo取個(gè)好名字吧,比如Tiny,那是因?yàn)槲彝鎑ota游戲喜歡小小,robo也很小,可是功能卻很強(qiáng)大的。

?


下面是輸入機(jī)器人的包,包是java中的一個(gè)概念,這里我們暫且把它當(dāng)成文件夾來看吧。我們就輸入自己的名字就ok了。

?


下面我分別對(duì)其默認(rèn)生成的代碼進(jìn)行解釋:
package cm;
import robocode.*; //cm就是我的包,import是告訴java你要在在你的工程中使用robocode
import java.awt.Color;

public class Tiny extends Robot //告訴java,我寫的這個(gè)是一種“Robot”,叫做“Tiny”
{
????????public void run() { //run()方法是戰(zhàn)斗開始時(shí)默認(rèn)調(diào)用的,我們?cè)谶@里寫自己的代碼
????????????????while(true) {
????????????????????????ahead(100);//向前100像素
????????????????????????turnGunRight(360);//把gun向右轉(zhuǎn)動(dòng)360度
????????????????????????back(100);//后退100像素
????????????????????????turnGunRight(360);//把gun向右轉(zhuǎn)動(dòng)360度
????????????????}
????????}
?/*以on開頭的方法都是事件觸發(fā)方法,熟悉單片機(jī)的同學(xué)可能知道,這相當(dāng)于單片機(jī)里面的中斷,每當(dāng)程序遇到一個(gè)觸發(fā)事件時(shí),將停止主方法的運(yùn)行而運(yùn)行觸發(fā)方法,運(yùn)行后再返回主方法。
*/
????????public void onScannedRobot(ScannedRobotEvent e) { //每當(dāng)雷達(dá)掃描到敵人
????????????????fire(1);
????????}
????????public void onHitByBullet(HitByBulletEvent e) {//每當(dāng)被子彈擊中
????????????????back(10);
????????}
????????public void onHitWall(HitWallEvent e) {//每當(dāng)撞墻
????????????????back(20);
????????}
}

package為機(jī)器人建立包“cm”,以后我這個(gè)機(jī)器人的源文件就存放在這個(gè)包里面了,然后導(dǎo)Robocode.* 這是編寫機(jī)器人必不可少的一句代碼。因?yàn)樗袡C(jī)器人都是在Robocode平臺(tái)下運(yùn)行,Robocode包為我們提供了所有編寫機(jī)器人的應(yīng)用程序接口。接下來被注釋掉的一句是導(dǎo)入java.awt.Color,當(dāng)你要為機(jī)器人設(shè)置顏色的時(shí)候:setColors(Color bodyColor,Color gunColor,ColorradarColor),它就必不可少,如果少了導(dǎo)入Color這一句,編譯是不會(huì)通過的。setColors參數(shù)有三個(gè),分別是指定車身,炮,雷達(dá)各自的顏色。public class Tiny extends Robot {...}機(jī)器人的名字是Tiny,代碼表明建立了一個(gè)公有類Tiny繼承Robot,必須建立公有的類,現(xiàn)在的Tiny是一個(gè)簡單機(jī)器人。而我們將要打造的不僅僅是繼承簡單機(jī)器
人,而是高級(jí)機(jī)器人(AdvancedRobot)。能夠高效率運(yùn)行的機(jī)器人都是繼承的AdvancedRobot,因?yàn)镽obot是線程阻塞式的,AdvancedRobot是線程非阻塞式的。他們的區(qū)別比較明顯,分析while(true){}里面的代碼來理解線程阻塞與非阻塞就比較容易了。

在Robocode中每一個(gè)機(jī)器人都是一個(gè)獨(dú)立的線程,我們知道不管是extends Thread還是implementsRunnable 都要實(shí)現(xiàn)public void run()方法,這是必不可少的。為了保證機(jī)器人不斷的運(yùn)行自己的程序,所以線程中用了while(true)循環(huán)。在每一次循環(huán)中,ahead(100)機(jī)器人向前運(yùn)動(dòng)100象素,接著turnGunRight(360) 右轉(zhuǎn)炮360度,因?yàn)闆]有使用setAdjustRadarForGunTurn(true),所以雷達(dá)會(huì)隨著炮的轉(zhuǎn)動(dòng)而同步轉(zhuǎn)動(dòng),雷達(dá)在轉(zhuǎn)動(dòng)的時(shí)候自動(dòng)掃描周圍的敵人,如果發(fā)現(xiàn)敵人,那么ScannedRobotEvent事件發(fā)生。系統(tǒng)默認(rèn)寫好的代碼只有一句:fire(1)發(fā)射能量為1的炮彈,如果敵人在炮彈到達(dá)時(shí)還在原地,恭喜!命中目標(biāo)了。接下來,機(jī)器人就會(huì)執(zhí)行back(100)后退100象素,然后turnGunRight(360)掃描敵人。繼續(xù)下一次的循環(huán)。

最后這個(gè)機(jī)器人還寫了一個(gè)事件:onHitByBullet(HitByBulletEvent e)機(jī)器人被敵人的炮彈擊中后就發(fā)生了這個(gè)事件。turnLeft(90-e.getBearing())車身左傳一個(gè)角度,這個(gè)角度的值是90-e.getBearing(),e.getBearing()是獲得炮彈與車身的相對(duì)角度,左轉(zhuǎn)后,車身的角度會(huì)與炮彈飛來的直線成直角,這樣有利于躲避下一次的炮彈攻擊。

好了,我們的第一個(gè)robo就完成了,是不是很簡單呢?只要移動(dòng),掃描,發(fā)現(xiàn)目標(biāo),fire!

選擇【compiler】->【compile】編譯就ok了。

最后進(jìn)入戰(zhàn)斗界面,新建一個(gè)戰(zhàn)斗,看看我們的Tiny是不是在里面呢?Tiny,its your show time!

?

?

轉(zhuǎn)載于:https://www.cnblogs.com/KeenLeung/archive/2012/06/18/2553057.html

總結(jié)

以上是生活随笔為你收集整理的Robocode教程2——你的第一个robo,取个好名字哦的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日韩成人影视 | 亚洲人成人无码网www国产 | 日日夜夜天天干 | 青青草狠狠操 | 综合久久五月 | 日本青青草 | 精品中文字幕在线 | 97av超碰 | 国产噜噜噜 | 九九视频这里只有精品 | 日韩美女做爰高潮免费 | 91精品视频在线 | 亚洲精品资源在线 | 国产午夜视频在线观看 | 超碰在线cao | 日韩免费福利 | 国产不卡毛片 | 自拍偷拍国产精品 | 男女啪啪av | 娇妻被老王脔到高潮失禁视频 | 丁香花电影在线观看免费高清 | 91综合精品 | 国产精品香蕉在线 | 天天操天天摸天天干 | 国产福利在线播放 | 久久精品3 | 亚洲av无码一区二区三区人妖 | 日本天堂在线视频 | av在线天天 | 女人裸体又黄 | 天天都色| 裸体视频软件 | 91插插插永久免费 | 国产精品麻豆果冻传媒在线播放 | 亚洲av色区一区二区三区 | 一区二区在线视频免费观看 | 黄色日韩在线 | 国产一区二区在线视频 | 国产不卡在线视频 | 色综合天天色综合 | 超碰在线播放97 | 人与动物黄色片 | av国产一区二区 | 天堂网视频在线观看 | 日本国产一区二区 | 国产在线播放一区二区三区 | 性――交――性――乱睡觉 | 污片网站 | 午夜在线看片 | 日韩中文字幕 | 成人天堂噜噜噜 | 黑人黄色录像 | 色片免费观看 | 18禁网站免费无遮挡无码中文 | 日韩久久久久久久久久 | 好吊色一区二区三区 | 久久久不卡国产精品一区二区 | 海角社区在线视频播放观看 | 欧美一区二区福利视频 | 日韩精品一区二区三区国语自制 | 四虎永久在线精品免费一区二区 | 99精品视频在线观看免费 | 日本一级淫片免费放 | 人妻互换免费中文字幕 | 日本三级在线 | 91精品国产色综合久久不卡蜜臀 | 风流少妇一区二区三区91 | 无套内谢的新婚少妇国语播放 | 欧美黑人性猛交xxxx | 国产精品久久久久永久免费看 | 宅男视频在线免费观看 | 国产叼嘿视频在线观看 | 亚洲一卡二卡三卡 | 99国产揄拍国产精品 | 亚洲不卡在线观看 | 国产污视频在线观看 | 牲欲强的熟妇农村老妇女视频 | 欧美乱大交xxxxx潮喷l头像 | www.久久国产 | www麻豆| 国产色网站| 国产一区精品在线观看 | 亚洲a在线观看 | 日本毛片在线观看 | 91精品91久久久中77777老牛 | 亚洲精品久 | www.热久久| 国产伦视频| 日韩免费a | 日韩欧美中文字幕一区二区三区 | 黄色网页网站 | 中文字幕av无码一区二区三区 | 天堂精品视频 | 性一交一乱一区二区洋洋av | 小俊大肉大捧一进一出好爽 | 国产伦精品一区二区 | 久久久久毛片 | 高清乱码免费看污 | 好看的黄色网址 |