在Eclipse下開發Robocode

來源:互聯網
上載者:User

    如果您還不知道什麼是Eclipse,請參考這篇文章http://www.loujing.com/Article/ShowArticle.asp?ArticleID=30,或者網上相關資料。
    如果您還不知道什麼是Robocode,請參考這篇文章http://www.loujing.com/Article/ShowArticle.asp?ArticleID=32,或者網上相關資料。

    雖然Robocode裡內建了一個Robot的編輯器,不過功能略顯不足,正好最近在研究Eclipse,我們就來看一下如何在Eclipse建立一個自己的機器人。
    本文的開發環境:Windows XP Professional SP2 + J2SDK1.4.2_10 + Eclipse 3.1.1 + Robocode 1.0.6,請首先確保您的機器上安裝了相關的開發包。

    一、 Eclipse的相關設定:
    首先介紹一下,我機器上Eclipse的Workspace為E:/mywork/Java/Exercise/Eclipse;我機器上Robocode的安裝路徑為C:/Program Files/robocode。

    (1) 建立項目:啟動Eclipse後,我們單擊菜單”File”-----“New”-----“Project”,啟動嚮導,我們選擇”Java Project”,項目名為”MyRobocode”。

    (2) 在項目中建立package:然後我們在”Package Explorer”(包瀏覽器)處按右鍵”MyRobocode”項目,選擇”New”-----“Package”,建立一個新包,如所示:

圖1

    包的名字為”com.loujing”,如所示(Java建議,為了建立一個全世界獨一無二的包,請將您的網域名稱反轉做為包名,且全為小寫,我的網域名稱為loujing.com):

圖2 

    這裡需要建立包的原因是:您編寫的機器人需要和全世界其他程式員編寫的機器人對戰,所以您機器人的名字必須是唯一的。Robocode採用”包名+機器人類名”來做標識,以便區分。

     (3) 匯入Robocode類庫:因為Robocode工具包中已替你寫好了大部分的代碼,如果您想建立自己的機器人,就必須將類庫加入到項目中來,我們在”Package Explorer”處按右鍵”Robocode”項目,選擇”Properties”(屬性),如所示:

圖3

    在開啟的對話方塊中,我們在左邊選中”Java Build Path”,右邊選擇”Libraries”頁,單擊”Add External JARs…”按鈕,然後找到Robocode的安裝路徑(我機器上是C:/Program Files/robocode),選中”robocode.jar”,確定即可,如所示:

圖4

 

    (4) 建立自己的機器人:一切具備,終於開始寫機器人的代碼了。我們在”Package Explorer”中找到”MyRobocode”項目中”com.loujing”包,單擊右鍵,選擇”New”-----選擇”File”,如所示:

 

圖5

    在彈出的對話方塊中,我們輸入檔案名稱”AIRobot.java”(人工智慧機器人-----酷吧),如所示:

圖6

    然後,我們在AIRobot.java中鍵入如下代碼:

package com.loujing;
import robocode.*;  //匯入包

public class AIRobot extends Robot  //繼承自Robot類
{
 public void run() {  //必須的方法,確定機器坦克的基本行為
  while(true) {
   turnGunRight(360); //右轉炮管360
  }
 }

 public void onScannedRobot(ScannedRobotEvent e) { //當掃描到其它機器坦克時
  ahead(100);   //前進100
  turnLeft(90);  //機器坦克左轉90
 }
}

    是不是出乎意料的簡單,我們幾乎沒寫幾行代碼吧,一個基本的架構就好了。另外,在Eclipse裡,當您把滑鼠移到某個標識符上面時,會即時顯示Robocode的API協助,比如就顯示了onScannedRobot方法說明:

圖7

    二、 Robocode的相關設定:
    當我們把AIRobot.java編譯之後,AIRobot.class就產生了,下面我們來看看如何在Robocode裡調用到您的*.class檔案呢,您有兩種方法:

    (1) 將產生的*.class的檔案複製到Robocode安裝路徑下的robots下,比如我會將AIRobot.class拷貝到C:/Program Files/robocode/robots下即可。

    (2) 其實還有一種更簡單的方法,Robocode對Eclipse的支援很好,我們可以直接在Robocode裡設定好路徑。啟動Robocode,選擇”Option”菜單-----單擊” Preferences”,在開啟的對話方塊中選擇”Development Options”頁,把您之前建的Eclipse項目的路徑填入,單擊”Finish”按鈕即可(我剛才建的項目路徑是E:/mywork/Java/Exercise/Eclipse/MyRobocode),如所示:

 

圖8

    另外,在”View Options”頁,有一個複選框” Visible Scan Arcs”,您可以把它選上,這樣,機器人掃描時就可以看到射線狀的雷達了,很酷啊。

    三、測試自己的Robot:一切準備就緒了,現在我們來測試一下我們寫的那個弱智機器人吧。
    啟動Robocode,選擇”Battle”菜單-----單擊”New”(建立一個戰鬥),開啟的對話方塊如所示:

圖9

    在Packages列表中,我們看到所有的包,其中有我們之前建立的com.loujing包;在Robots列表中,會列出所有的機器人,其中也有我們建立的AIRobot。我們利用Add按鈕增加兩個AIRobot(當然您也可以多增加幾個機器人進去,如果您只選擇一個,系統會提示您不能戰鬥,您就只能觀察一個機器人的運動了),在Selected Robots列表中出現的就是您現在選擇參加戰鬥的機器人了。
    Number of Rounds表明戰鬥的回合數,預設是10回合;當一切選好,我們單擊”Start Battle”按鈕,您就會看到如所示:

 

圖10

    中間地區就是站場,下面的按鈕可以隨時暫停、恢複、停止比賽。您可以仔細觀察一下這兩個AIRobot,是不是如我們之前所寫,開始時先右轉炮管360度,而當掃描到另一個機器人的時候,就先往前走100,然後向左轉90度,所有的行動都是事先由您編程實現的。

    現在,您可以修改一下原來的AIRobot.java了,比如在onScannedRobot方法裡增加一句” fire(1);”,意思顯而易見,當掃描到其它機器人的時候,就開火。
    您可以到Robocode的安裝路徑下的robots檔案夾下,去開啟*.java檔案,看一下別人的機器人程式是怎麼寫的,或者去網上下載;如果對庫函數有疑問,您可以單擊Robocode程式的Help菜單,選擇”Robocode API”,或者直接雙擊安裝路徑下的javadoc/index.html開啟協助。您需要重點關心的是Robot類,看一下其中有哪些控制機器人的方法,以及該如何使用它們,如所示:

 

圖11

    怎麼樣,您是不是也來了興趣了,也來建立自己的第一個機器人吧,如果您能夠在特定時刻讓機器人做出正確的反應,比如左右躲避、開火、遇牆回頭等等,那麼也算有人工智慧了吧,呵呵。
    女友去海南了,今天早上4點回來,不知不覺都1點了,今天大年夜了啊。

2006-01-28 大年夜淩晨
樓競  http://www.loujing.com 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.