gr8vyguy@Blogjava

          玩Robocode游戲,學(xué)習(xí)Java

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

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

             

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

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

             

          戰(zhàn)斗場面
              

          編寫一個機(jī)器人非常簡單,雖然編寫一個厲害的機(jī)器人很難。點(diǎn)擊Robot/Editor菜單,或者按Ctrl+E打開機(jī)器人編輯窗口。選擇New/Robot菜單新建一個Robot,根據(jù)提示輸入Robot的名字和Package的名字。新建的Robot已經(jīng)包含如下代碼,其實這已經(jīng)是一個可用的坦克機(jī)器人,保存,編譯后,你就可以在New Battle對話框選擇新建的機(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)該沒有問題的。當(dāng)然如果你要戰(zhàn)勝別人,就需要修改上面的代碼,提高你的機(jī)器人的智能。下面的鏈接里有相關(guān)的文章介紹如何編寫厲害的機(jī)器人的。

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

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

          posted on 2007-07-22 01:14 gr8vyguy 閱讀(4061) 評論(8)  編輯  收藏 所屬分類: Java

          評論

          # re: 玩Robocode游戲,學(xué)習(xí)Java 2007-07-22 03:05 pass86

          very cool, good.  回復(fù)  更多評論   

          # re: 玩Robocode游戲,學(xué)習(xí)Java 2007-07-22 04:08 chenge

          不錯!  回復(fù)  更多評論   

          # re: 玩Robocode游戲,學(xué)習(xí)Java 2007-07-22 04:50 巧問網(wǎng)

          厲害呀。  回復(fù)  更多評論   

          # re: 玩Robocode游戲,學(xué)習(xí)Java 2007-07-22 05:40 Thomas

          太帥了!  回復(fù)  更多評論   

          # re: 玩Robocode游戲,學(xué)習(xí)Java 2007-07-22 16:07 go

          good...  回復(fù)  更多評論   

          # re: 玩Robocode游戲,學(xué)習(xí)Java 2007-07-23 01:53 lang

          注意的就是兩個,第一,自己想著去擴(kuò)展這個游戲
          第二,別為了一時的樂趣而拷貝別人的機(jī)器人  回復(fù)  更多評論   

          # re: 玩Robocode游戲,學(xué)習(xí)Java 2007-07-23 05:56 sitinspring

          有空弄個玩玩.  回復(fù)  更多評論   

          # re: 玩Robocode游戲,學(xué)習(xí)Java[未登錄] 2014-02-26 03:00 啊啊

          沒有了?????  回復(fù)  更多評論   

          <2014年2月>
          2627282930311
          2345678
          9101112131415
          16171819202122
          2324252627281
          2345678

          導(dǎo)航

          統(tǒng)計

          公告

        1. 轉(zhuǎn)載請注明出處.
        2. msn: gr8vyguy at live.com
        3. 常用鏈接

          留言簿(9)

          隨筆分類(68)

          隨筆檔案(80)

          文章分類(1)

          My Open Source Projects

          搜索

          積分與排名

          最新評論

          主站蜘蛛池模板: 云浮市| 南丰县| 修武县| 邵东县| 新宾| 兴海县| 普安县| 连山| 北流市| 怀化市| 赞皇县| 宁强县| 黄石市| 鱼台县| 霍邱县| 吉木乃县| 旺苍县| 炎陵县| 静海县| 湖北省| 马边| 拉萨市| 和林格尔县| 平谷区| 尤溪县| 阳东县| 普格县| 芦山县| 通江县| 南郑县| 南和县| 湖北省| 弋阳县| 缙云县| 汝阳县| 财经| 新和县| 三台县| 南陵县| 长治市| 乡城县|