零基礎學程式設計003:在遊戲中學JAVA和C#
前面幾篇文章中主要用Python當例子,但在這些“線上程式設計環境”中,還支援其它程式語言,JAVA和C#也不例外。CodeCademy中提供了許多很短小的習題使人能夠快速瞭解關鍵語法,但還是有點枯燥,如果能夠在遊戲中學習程式設計就更好了。實際上,這種事情程式設計師們也早就想到了,robocode就是其中之一。
看看百度百科上的介紹:
Robocode是一種有趣的競賽性程式設計,使用幾行簡單的程式碼,就能夠讓你建立一個活生生的機器人,一個真正的在螢幕上與其他機器人互相對抗的機器人。你可以看到它在螢幕上四處疾馳,碾碎一切擋道的東西。機器人配有雷達與火炮,選手在躲避對手進攻的同時攻擊對手,以此來較量得分的多少。Robocode可以讓你在娛樂的同時學習與提高Java技術。
準確地說,這個robocode平臺中建立的並不是機器人,而是機器坦克。這種遊戲中,你不能用鍵盤和滑鼠去控制你的坦克,而是用事先寫好的程式碼,讓自己的坦克躲避、並攻擊敵人。最早這個專案只支援JAVA語言,後來才支援了C#。你需要不斷優化你的程式碼,從而學習基本的程式設計知識。但玩(或編碼)到一定程度後,你需要學習的內容將變為AI(人工智慧)領域了。
有關robocode資料,可以訪問:http://robowiki.net,全英文說明。該軟體最早釋出在ibm的web alphaworks上,現在已經搬到了sourceforge.net(github上也有)。很遺憾,如果沒有V**,sourceforge.net網站的訪問也不太穩定,光下載robocode都折騰死人。
國內網站上也可以找到一些robocode的教程,但都有點過時了。我今天下載了1.9.2.5版本,如果是零基礎的話,安裝還真不容易。
你需要闖過安裝V**、安裝java環境(要1.6版本以上)、安裝robocode程式、啟動robocode程式等幾大關,放上一堆坦克,然後才能見到下面的畫面。
如果沒人幫助,零基礎的朋友真無法完成上面的安裝任務,所以,如果你真是零基礎,還是先到codecademy上把基礎教程認真學完再說吧。
如果你已經具備了一定JAVA基礎,並且成功地安裝好了robocode,就可以開始寫自己的機器坦克的程式碼了,但我看了一下第一個源程式,真不適合零基礎的同學。
package man;
import robocode.*;
public class MyFirstRobot extends Robot {
public void run() {
while (true) {
ahead(100);
turnGunRight(360);
back(100);
turnGunRight(360);
}
}
public void onScannedRobot(ScannedRobotEvent e) {
fire(1);
}
}
此時你馬上遇到的是整合開發環境IDE的選擇、編譯器的設定等一系列障礙,想看到自己寫的坦克在螢幕上亂竄並不容易,所以說學程式設計的最佳辦法是互助式學習。
感興趣的朋友,可以點選“閱讀原文”看看robocode的官網。
--- END ---