Robocode是Java編寫(xiě)的一款開(kāi)源的坦克游戲,與一般的游戲有著(zhù)非常不同的玩法。游戲中的坦克不是由鍵 盤(pán)、鼠標或者游戲桿直接控制,而是通過(guò)你用Java對坦克機器人編程,給坦克機器人設計智能來(lái)指揮它戰斗。比如ahead(100)使機器人向前移動(dòng) 100。你的程序指揮你的坦克攻擊對手,同時(shí)躲避來(lái)自對手的攻擊,以此來(lái)較量得分的多少。你可以下載別人的機器人,和你編寫(xiě)的機器人競賽,如果你覺(jué)得你的 機器人夠厲害,也可以上傳你機器人到Robocode的主頁(yè)和別人比賽。非常有意思,在娛樂(lè )的同時(shí)學(xué)習和提高你的Java編程能力。
Robocode最新的版本是1.3.5,可在Robocode主頁(yè)上下載。下載完robocode-setup-1.3.5.jar,雙擊即可安裝Robocode游戲,需要JRE1.5+。安裝完成,啟動(dòng)程序,看到如下界面
程序中已經(jīng)帶了一些坦克機器人,我們可以先用這些機器人學(xué)習如何開(kāi)始一場(chǎng)戰斗, 然后再學(xué)習如何編寫(xiě)你自己的機器人。
點(diǎn) 擊Battle/New菜單,或者按Ctrl+N新建一個(gè)戰斗。在彈出的New Battle對話(huà)框中選擇坦克機器人和戰斗的場(chǎng)數。比如選擇sample.MyFirstRobot,sample.RamFire和 sample.TrackFire, 設置場(chǎng)數Number of Rounds為5場(chǎng). 點(diǎn)擊Start Battle按鈕開(kāi)始戰斗。
戰斗場(chǎng)面
編 寫(xiě)一個(gè)機器人非常簡(jiǎn)單,雖然編寫(xiě)一個(gè)厲害的機器人很難。點(diǎn)擊Robot/Editor菜單,或者按Ctrl+E打開(kāi)機器人編輯窗口。選擇 New/Robot菜單新建一個(gè)Robot,根據提示輸入Robot的名字和Package的名字。新建的Robot已經(jīng)包含如下代碼,其實(shí)這已經(jīng)是一個(gè) 可用的坦克機器人,保存,編譯后,你就可以在New Battle對話(huà)框選擇新建的機器人了。
- package a11;
- import robocode.*;
-
- /**
- * A11 - a robot by (your name here)
- */
- public class A11 extends Robot
- {
- /**
- * run: A11’s default behavior
- */
- public void run() {
- // After trying out your robot, try uncommenting the import at the top,
- // and the next line:
- //setColors(Color.red,Color.blue,Color.green);
- while(true) {
- // Replace the next 4 lines with any behavior you would like
- ahead(100);
- turnGunRight(360);
- back(100);
- turnGunRight(360);
- }
- }
-
- /**
- * onScannedRobot: What to do when you see another robot
- */
- public void onScannedRobot(ScannedRobotEvent e) {
- fire(1);
- }
-
- /**
- * onHitByBullet: What to do when you’re hit by a bullet
- */
- public void onHitByBullet(HitByBulletEvent e) {
- turnLeft(90 - e.getBearing());
- }
- }
。