簡介
Robocode是一種有趣的競賽性編程,使用幾行簡單的代碼,就能夠讓你創建一個活生生的機器人,一個真正的在螢幕上與其他機器人互相對抗的機器人。你可以看到它在螢幕上四處疾馳,碾碎一切擋道的東西。機器人配有雷達與火炮,選手在躲避對手進攻的同時攻擊對手,以此來較量得分的多少。Robocode可以讓你在娛樂的同時學習與提高Java技術。
使用技巧
在細究API之前,讓我們先來了解一些術語。機器人基本上是一些小型的坦克。這些坦克可以旋轉,向前或向後移動。它們的頂部有一個用於射擊的火炮。在火炮上面還有一個雷達系統,用於偵測其它機器人。機器人的底盤、火炮和雷達系統都可以獨立運動,也可以相互“鎖定”,一起移動。換句話說,如果將雷達向下鎖定,那么它將隨火炮一起移動;如果火炮向下鎖定,它將隨機器人的底盤一起移動。
下面是一些你在編寫機器人之初用的最多的方法函式:
ahead(), back() ——向前和向後移動
fire() ——開火
setAdjustGunForRobotTurn() —— 控制火炮是否向下鎖定
setAdjustRadarForGunTurn() ——控制雷達是否向下鎖定
turnRight(), turnLeft() —— 實現機器人的旋轉
turnGunRight(), turnGunLeft() —— 旋轉火炮
turnRadarLeft(), turnRadarRight() - 旋轉雷達反射鏡
特點
有人提議為對學習更多的XP方法學知識感興趣的開發人員構建一個工作間。把一群人湊到一起,分成小組研究該方法學。 然後要有一個經驗豐富的XP教練對工作間進行管理,幫助參加者理解其原理。而建議各小組採用的項目就是創建Robocode機器人。 其實我對機器人一直很感興趣。在我還是個孩子是時候,我記得Aplle Ⅱ上有一個程式,我們用它來編寫簡單的機器人程式,然後相互作戰。
Robocode就是這樣一個東西,但是更好一些。它是一個基於Java的機器人作戰遊戲。 其代碼的編寫和建模都不錯,玩起來也很有趣。
Robocode的API
Robocode是由IBM的Alphaworks 項目成員Matthew Nelson編寫的。從第一個版本開始,Matthew 已對該軟體的API做了相當多的改進,我以為該軟體為機器人的編寫提供了一套完美的框架。用於創建機器人的基類稱作Robot。你的機器人都繼承自這個類。 Robot類提供了所有與遊戲進行互動所需的方法函式。
新版本
Java機器人遊戲 -- Robocode 1.7.1 Beta 發布:
新功能包括:
添加getCurrentWorkingDir()+ getRobotsDir()robocode.control.RobocodeEngine。
請求[2446276]——排名小組應該可見當它被最小化。這個特性就被添加到它可以控制行為的普遍選擇的偏好與“不要隱藏排名當主視窗最小化”,這是默認啟用。
請求[2467545]——的命令行選項保存一個戰鬥記錄檔案。兩個新的命令行選項都增加了它,也就是說。——記錄和-recordXML。記錄下選擇戰鬥作為一個二進制和壓縮戰鬥記錄。這裡我建議指定的檔案名稱應該有點像記錄br。這個-recordXML下做同樣的選擇,但卻能戰鬥記錄作為一個XML檔案。在這裡,我建議你使用一個檔案名稱像記錄br xml。
請求[1749483]——加速重建資料庫所需的時間機器人。