<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[zz]

    Posted on 2007-07-23 09:34 Matthew Chen 閱讀(506) 評論(1)  編輯  收藏 所屬分類: Datastructure and Algorithem

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

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

       

    程序中已經帶了一些坦克機器人,我們可以先用這些機器人學習如何開始一場戰斗, 然后再學習如何編寫你自己的機器人。

    點擊Battle/New菜單,或者按Ctrl+N新建一個戰斗。在彈出的New Battle對話框中選擇坦克機器人和戰斗的場數。比如選擇sample.MyFirstRobot,sample.RamFire和sample.TrackFire, 設置場數Number of Rounds為5場. 點擊Start Battle按鈕開始戰斗。

       

    戰斗場面
        

    編寫一個機器人非常簡單,雖然編寫一個厲害的機器人很難。點擊Robot/Editor菜單,或者按Ctrl+E打開機器人編輯窗口。選擇New/Robot菜單新建一個Robot,根據提示輸入Robot的名字和Package的名字。新建的Robot已經包含如下代碼,其實這已經是一個可用的坦克機器人,保存,編譯后,你就可以在New Battle對話框選擇新建的機器人了。

    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. }  

    看代碼中的英文注釋,理解上面的程序應該沒有問題的。當然如果你要戰勝別人,就需要修改上面的代碼,提高你的機器人的智能。下面的鏈接里有相關的文章介紹如何編寫厲害的機器人的。

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

    Robocode相關鏈接
              Robocode主頁
              Robocode技巧精粹

    Feedback

    # re: 玩Robocode游戲,學習Java[zz]  回復  更多評論   

    2007-11-11 21:32 by 曲強 Nicky
    http://cpc.sjtu.edu.cn/contest/jsp/1/rules.jsp
    這個也不錯~~呵呵

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 在线观看永久免费视频网站| 久久综合国产乱子伦精品免费| 欧美大尺寸SUV免费| 亚洲欧洲日韩不卡| 久久不见久久见免费视频7| 亚洲AV日韩精品久久久久久久| 91网站免费观看| 色婷婷六月亚洲婷婷丁香| 野花香高清视频在线观看免费| 在线观看片免费人成视频播放| 国产亚洲精品无码成人| 日韩精品免费视频| 亚洲经典在线观看| 成人毛片免费视频| 羞羞视频免费观看| 亚洲区小说区图片区QVOD| 日韩免费在线视频| 亚洲精品第一综合99久久| 四虎影永久在线高清免费 | 中文字幕亚洲男人的天堂网络| 女人18毛片a级毛片免费| 特级无码毛片免费视频| 亚洲色精品88色婷婷七月丁香 | 亚洲国产精品一区二区三区在线观看| 野花高清在线电影观看免费视频 | 日韩毛片一区视频免费| 国产AV无码专区亚洲Av| 无码国产精品一区二区免费虚拟VR | a级毛片视频免费观看| 亚洲日韩乱码中文无码蜜桃臀 | XXX2高清在线观看免费视频| 亚洲av伊人久久综合密臀性色| 91成年人免费视频| WWW国产亚洲精品久久麻豆| 亚洲日韩中文无码久久| 手机看黄av免费网址| 免费精品国自产拍在线播放| 亚洲一区免费观看| 免费人成在线观看播放国产 | 亚洲最大福利视频网站| 国产高清免费在线|