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ī)器人了。
- package a11;
- import robocode.*;
-
-
-
-
- public class A11 extends Robot
- {
-
-
-
- public void run() {
-
-
-
- while(true) {
-
- ahead(100);
- turnGunRight(360);
- back(100);
- turnGunRight(360);
- }
- }
-
-
-
-
- public void onScannedRobot(ScannedRobotEvent e) {
- fire(1);
- }
-
-
-
-
- public void onHitByBullet(HitByBulletEvent e) {
- turnLeft(90 - e.getBearing());
- }
- }
看代碼中的英文注釋,理解上面的程序應(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技巧精粹