<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Picses' sky

    Picses' sky
    posts - 43, comments - 29, trackbacks - 0, articles - 24

    Robocode是Java編寫(xiě)的一款開(kāi)源的坦克游戲,與一般的游戲有著非常不同的玩法。游戲中的坦克不是由鍵盤(pán)、鼠標(biāo)或者游戲桿直接控制,而是通過(guò)你用Java對(duì)坦克機(jī)器人編程,給坦克機(jī)器人設(shè)計(jì)智能來(lái)指揮它戰(zhàn)斗。比如ahead(100)使機(jī)器人向前移動(dòng)100。你的程序指揮你的坦克攻擊對(duì)手,同時(shí)躲避來(lái)自對(duì)手的攻擊,以此來(lái)較量得分的多少。你可以下載別人的機(jī)器人,和你編寫(xiě)的機(jī)器人競(jìng)賽,如果你覺(jué)得你的機(jī)器人夠厲害,也可以上傳你機(jī)器人到Robocode的主頁(yè)和別人比賽。非常有意思,在娛樂(lè)的同時(shí)學(xué)習(xí)和提高你的Java編程能力。

    Robocode最新的版本是1.3.5,可在Robocode主頁(yè)上下載。下載完robocode-setup-1.3.5.jar,雙擊即可安裝Robocode游戲,需要JRE1.5+。安裝完成,啟動(dòng)程序,看到如下界面

       

    程序中已經(jīng)帶了一些坦克機(jī)器人,我們可以先用這些機(jī)器人學(xué)習(xí)如何開(kāi)始一場(chǎng)戰(zhàn)斗, 然后再學(xué)習(xí)如何編寫(xiě)你自己的機(jī)器人。

    點(diǎn)擊Battle/New菜單,或者按Ctrl+N新建一個(gè)戰(zhàn)斗。在彈出的New Battle對(duì)話框中選擇坦克機(jī)器人和戰(zhàn)斗的場(chǎng)數(shù)。比如選擇sample.MyFirstRobot,sample.RamFire和sample.TrackFire, 設(shè)置場(chǎng)數(shù)Number of Rounds為5場(chǎng). 點(diǎn)擊Start Battle按鈕開(kāi)始戰(zhàn)斗。

       

    戰(zhàn)斗場(chǎng)面
        

    編寫(xiě)一個(gè)機(jī)器人非常簡(jiǎn)單,雖然編寫(xiě)一個(gè)厲害的機(jī)器人很難。點(diǎn)擊Robot/Editor菜單,或者按Ctrl+E打開(kāi)機(jī)器人編輯窗口。選擇New/Robot菜單新建一個(gè)Robot,根據(jù)提示輸入Robot的名字和Package的名字。新建的Robot已經(jīng)包含如下代碼,其實(shí)這已經(jīng)是一個(gè)可用的坦克機(jī)器人,保存,編譯后,你就可以在New Battle對(duì)話框選擇新建的機(jī)器人了。

    1. package a11;   
    2. import robocode.*;     
    3.   
    4. /**  
    5.  * A11 - a robot by (your name here)  
    6.  */  
    7. public class A11 extends Robot   
    8. {   
    9.     /**  
    10.      * run: A11’s default behavior  
    11.      */  
    12.     public void run() {   
    13.         // After trying out your robot, try uncommenting the import at the top,   
    14.         // and the next line:   
    15.         //setColors(Color.red,Color.blue,Color.green);   
    16.         while(true) {   
    17.             // Replace the next 4 lines with any behavior you would like   
    18.             ahead(100);   
    19.             turnGunRight(360);   
    20.             back(100);   
    21.             turnGunRight(360);   
    22.         }   
    23.     }   
    24.   
    25.     /**  
    26.      * onScannedRobot: What to do when you see another robot  
    27.      */  
    28.     public void onScannedRobot(ScannedRobotEvent e) {   
    29.         fire(1);   
    30.     }   
    31.   
    32.     /**  
    33.      * onHitByBullet: What to do when you’re hit by a bullet  
    34.      */  
    35.     public void onHitByBullet(HitByBulletEvent e) {   
    36.         turnLeft(90 - e.getBearing());   
    37.     }    
    38. }  

    看代碼中的英文注釋,理解上面的程序應(yīng)該沒(méi)有問(wèn)題的。當(dāng)然如果你要戰(zhàn)勝別人,就需要修改上面的代碼,提高你的機(jī)器人的智能。下面的鏈接里有相關(guān)的文章介紹如何編寫(xiě)厲害的機(jī)器人的。

    Robocode帶的編輯器功能比較簡(jiǎn)陋,你也可以設(shè)置成用Eclipse編輯機(jī)器人代碼。具體的方法見(jiàn)http://robocode.sourceforge.net/help/ide/ide.html

    Robocode相關(guān)鏈接
              Robocode主頁(yè)
              Robocode技巧精粹

    Feedback

    # re: 玩Robocode游戲,學(xué)習(xí)Java[zz]  回復(fù)  更多評(píng)論   

    2007-11-11 21:32 by 曲強(qiáng) Nicky
    http://cpc.sjtu.edu.cn/contest/jsp/1/rules.jsp
    這個(gè)也不錯(cuò)~~呵呵

    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 亚洲欧洲日韩综合| 亚洲人成自拍网站在线观看| 99re6热视频精品免费观看 | 免费永久看黄在线观看app| 特级毛片aaaa级毛片免费| 亚洲色婷婷一区二区三区| 黄+色+性+人免费| 老妇激情毛片免费| 亚洲电影一区二区| 黄网址在线永久免费观看| a级毛片毛片免费观看久潮喷| 久久精品国产亚洲77777| 日本免费人成视频播放| a级毛片毛片免费观看久潮| 激情五月亚洲色图| 亚洲熟女一区二区三区| 在线观看AV片永久免费| 久久久久免费视频| 亚洲熟妇AV一区二区三区浪潮| 亚洲色一色噜一噜噜噜| 国产精彩免费视频| ssswww日本免费网站片| 亚洲日韩精品无码专区加勒比| 亚洲女久久久噜噜噜熟女| 日本免费v片一二三区| 99在线在线视频免费视频观看| 偷自拍亚洲视频在线观看| 亚洲成人黄色在线| 亚洲欧洲精品无码AV| 国产成人免费a在线资源| 91高清免费国产自产| 久久国产一片免费观看| 亚洲国产aⅴ成人精品无吗| 亚洲制服中文字幕第一区| 亚洲精品动漫人成3d在线| 欧美三级在线电影免费| 无码精品国产一区二区三区免费| 菠萝菠萝蜜在线免费视频| 亚洲无mate20pro麻豆| 亚洲综合国产精品| 国产l精品国产亚洲区在线观看|