日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

robocode_摇滚,袜子,Robocode!

發(fā)布時(shí)間:2023/12/10 编程问答 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 robocode_摇滚,袜子,Robocode! 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Robocode是一個(gè)易于使用的機(jī)器人戰(zhàn)斗模擬器,可在支持Java 2的所有平臺(tái)上運(yùn)行。您可以創(chuàng)建一個(gè)機(jī)器人,將其放置在戰(zhàn)場(chǎng)上,并使其與其他開(kāi)發(fā)人員創(chuàng)建的對(duì)手機(jī)器人進(jìn)行激烈的戰(zhàn)斗。 Robocode帶有一組預(yù)制的對(duì)手,可以幫助您入門,但是一旦超出對(duì)手,您就可以與世界上最好的聯(lián)盟中的世界上最好的聯(lián)盟對(duì)抗,進(jìn)入自己的創(chuàng)作。

每個(gè)Robocode參與者都使用Java語(yǔ)言的元素來(lái)創(chuàng)建自己的機(jī)器人,從而使各種開(kāi)發(fā)人員(從高級(jí)初學(xué)者到高級(jí)黑客)都可以參與其中。 入門的Java開(kāi)發(fā)人員可以學(xué)習(xí)以下基礎(chǔ)知識(shí):調(diào)用API代碼,閱讀Javadocs,繼承,內(nèi)部類,事件處理等。 高級(jí)開(kāi)發(fā)人員可以在全球性挑戰(zhàn)中調(diào)整其編程技能,以構(gòu)建同類最佳的軟件機(jī)器人。 在本文中,我們將介紹Robocode,并通過(guò)構(gòu)建您的第一個(gè)Robocode機(jī)器人開(kāi)始征服世界。 我們還將窺視使Robocode流行的迷人的“幕后”機(jī)制。

下載并安裝Robocode

Robocode是Mathew Nelson(IBM高級(jí)技術(shù),Internet部門的軟件工程師)的創(chuàng)意。 首先,進(jìn)入Robocode頁(yè)面。 在這里,您將找到Robocode系統(tǒng)的最新可執(zhí)行文件。 下載完發(fā)行版(位于獨(dú)立的安裝文件中)之后,可以使用以下命令來(lái)將軟件包安裝在系統(tǒng)上(假設(shè)您的計(jì)算機(jī)上已預(yù)先安裝了Java VM(JDK 1.3.x)) , 當(dāng)然):

java -jar robocode-setup.jar

在安裝過(guò)程中,Robocode會(huì)詢問(wèn)您是否要使用此外部Java VM進(jìn)行機(jī)器人編譯。 另一種選擇是作為Robocode發(fā)行版的一部分提供的Jikes編譯器。

安裝后,您可以從外殼程序腳本(robocode.sh),批處理文件(robocode.bat)或桌面上的圖標(biāo)啟動(dòng)Robocode系統(tǒng)。 此時(shí),戰(zhàn)場(chǎng)將出現(xiàn)。 在這里,您可以使用菜單調(diào)用機(jī)器人編輯器和編譯器。

Robocode系統(tǒng)的組件

激活Robocode時(shí),您將看到兩個(gè)相互關(guān)聯(lián)的GUI窗口,它們構(gòu)成Robocode的IDE:

  • 戰(zhàn)場(chǎng)
  • 機(jī)器人編輯器

圖1顯示了戰(zhàn)場(chǎng)和實(shí)際的機(jī)器人編輯器。

圖1. Robocode IDE

戰(zhàn)場(chǎng)是機(jī)器人之間進(jìn)行戰(zhàn)斗的地方。 它包含主要的模擬引擎,并允許您創(chuàng)建,保存和打開(kāi)新的或現(xiàn)有的戰(zhàn)斗。 您可以使用舞臺(tái)上可用的控件來(lái)暫停和繼續(xù)戰(zhàn)斗,終止戰(zhàn)斗,銷毀任何單個(gè)機(jī)器人或獲取任何機(jī)器人的統(tǒng)計(jì)信息。 此外,您可以從該屏幕激活機(jī)器人編輯器。

機(jī)械手編輯器是一個(gè)自定義的文本編輯器,用于編輯構(gòu)成機(jī)械手的Java源文件。 它在菜單中集成了Java編譯器(用于編譯機(jī)器人代碼)和自定義的Robot包裝程序。 使用“機(jī)器人編輯器”創(chuàng)建并成功編譯的所有機(jī)器人都位于戰(zhàn)場(chǎng)上隨時(shí)可以部署的位置。

Robocode中的機(jī)器人由一個(gè)或多個(gè)Java類組成。 這些類可以存檔到JAR包中。 Robocode的最新版本提供了一個(gè)“ Robot Packager”,可以從戰(zhàn)場(chǎng)GUI窗口中激活它。

Robocode機(jī)器人的解剖

在撰寫本文時(shí),Robocode機(jī)器人是一個(gè)圖形坦克。 圖2說(shuō)明了典型的Robocode機(jī)器人。

圖2. Robocode機(jī)器人的解剖

請(qǐng)注意,機(jī)器人具有旋轉(zhuǎn)槍,并且在槍的頂部是旋轉(zhuǎn)雷達(dá)。 機(jī)器人車輛,槍支和雷達(dá)都可以獨(dú)立旋轉(zhuǎn):在任何時(shí)候,機(jī)器人車輛,槍支和雷達(dá)都可以朝不同的方向旋轉(zhuǎn)。 默認(rèn)情況下,這些項(xiàng)目是面向車輛運(yùn)動(dòng)方向?qū)R的。

機(jī)器人命令

Robocode機(jī)械手的命令集全部記錄在Robocode API的Javadoc中。 您會(huì)發(fā)現(xiàn)它們是robocode.Robot類的公共方法。 在本節(jié)中,我們將按類別介紹每個(gè)可用的命令。

移動(dòng)機(jī)器人,槍支和雷達(dá)

讓我們從移動(dòng)機(jī)器人及其配件的基本命令開(kāi)始:

  • turnRight(double degree)和turnLeft(double degree)將機(jī)器人旋轉(zhuǎn)指定的度數(shù)。
  • ahead(double distance)和back(double distance)將機(jī)器人移動(dòng)指定的像素距離; 如果機(jī)器人撞到墻壁或其他機(jī)器人,則完成這兩種方法。
  • turnGunRight(double degree)和turnGunLeft(double degree)使噴槍轉(zhuǎn)動(dòng),與車輛的方向無(wú)關(guān)。
  • turnRadarRight(double degree)和turnRadarLeft(double degree)將雷達(dá)置于槍支頂部,與槍支的方向(以及車輛的方向)無(wú)關(guān)。

這些命令在完成之前不會(huì)將控制權(quán)返回給程序。 此外,當(dāng)車輛轉(zhuǎn)彎時(shí),槍支(和雷達(dá))的方向也會(huì)移動(dòng),除非通過(guò)調(diào)用以下方法進(jìn)行另外說(shuō)明:

  • setAdjustGunForRobotTurn(boolean flag) :如果該標(biāo)志設(shè)置為true,則在車輛轉(zhuǎn)彎時(shí),噴??槍將保持相同方向。
  • setAdjustRadarForRobotTurn(boolean flag) :如果該標(biāo)志設(shè)置為true,則在車輛(和機(jī)槍)轉(zhuǎn)彎時(shí),雷達(dá)將保持相同方向。
  • setAdjustRadarForGunTurn(boolean flag) :如果該標(biāo)志設(shè)置為true,則在槍支轉(zhuǎn)動(dòng)時(shí)雷達(dá)將保持相同方向。 它也將像已調(diào)用setAdjustRadarForRobotTurn(true)一樣起作用。

獲取有關(guān)機(jī)器人的信息

存在許多獲取有關(guān)機(jī)器人的信息的方法。 以下是常用方法調(diào)用的簡(jiǎn)短列表:

  • getX()和getY()獲取機(jī)器人的當(dāng)前坐標(biāo)。
  • getHeading() , getGunHeading()和getRadarHeading()以度為單位獲取車輛,槍支或雷達(dá)的當(dāng)前航向。
  • getBattleFieldWidth()和getBattleFieldHeight()獲取當(dāng)前回合的戰(zhàn)場(chǎng)尺寸。

觸發(fā)命令

掌握了如何移動(dòng)機(jī)器人及其相關(guān)武器后,現(xiàn)在就可以考慮發(fā)射和控制傷害的任務(wù)了。 每個(gè)機(jī)器人都以默認(rèn)的“能量級(jí)別”開(kāi)始,并且當(dāng)其能量級(jí)別降至零時(shí)被視為已銷毀。 發(fā)射時(shí),機(jī)器人最多可以使用三個(gè)單位的能量。 提供給子彈的能量越多,它將對(duì)目標(biāo)機(jī)器人造成的傷害越大。 fire(double power)和fireBullet(double power)用于以指定的能量(火力)發(fā)射子彈。 調(diào)用的fireBullet()版本返回對(duì)robocode.Bullet對(duì)象的引用,該對(duì)象可在高級(jí)機(jī)器人中使用。

大事記

每當(dāng)機(jī)器人移動(dòng)或轉(zhuǎn)動(dòng)時(shí),雷達(dá)始終處于活動(dòng)狀態(tài),并且如果檢測(cè)到其范圍內(nèi)的任何機(jī)器人,都會(huì)觸發(fā)事件。 作為機(jī)器人的創(chuàng)建者,您可以選擇處理戰(zhàn)斗中可能發(fā)生的各種事件。 基本的Robot類具有所有這些事件的默認(rèn)處理程序。 但是,您可以覆蓋所有這些“不執(zhí)行任何操作”默認(rèn)處理程序,并實(shí)現(xiàn)自己的自定義操作。 以下是一些更常用的事件:

  • ScannedRobotEvent 。 通過(guò)重寫onScannedRobot()方法來(lái)處理ScannedRobotEvent ; 當(dāng)雷達(dá)檢測(cè)到機(jī)器人時(shí),將調(diào)用此方法。
  • HitByBulletEvent 。 通過(guò)重寫onHitByBullet()方法來(lái)處理HitByBulletEvent ; 當(dāng)機(jī)器人被子彈擊中時(shí),將調(diào)用此方法。
  • HitRobotEvent 。 通過(guò)重寫onHitRobot()方法來(lái)處理HitRobotEvent ; 當(dāng)您的機(jī)器人撞擊另一個(gè)機(jī)器人時(shí),將調(diào)用此方法。
  • HitWallEvent 。 通過(guò)重寫onHitWall()方法來(lái)處理HitWallEvent ; 當(dāng)您的機(jī)器人撞到墻壁時(shí),將調(diào)用此方法。

這就是我們創(chuàng)建一些非常復(fù)雜的機(jī)器人所需的全部知識(shí)。 您可以在Javadoc中找到其余的Robocode API,可以從戰(zhàn)場(chǎng)的幫助菜單或機(jī)器人編輯器的幫助菜單中進(jìn)行訪問(wèn)。

現(xiàn)在是時(shí)候運(yùn)用我們的知識(shí)了。

創(chuàng)建一個(gè)機(jī)器人

要?jiǎng)?chuàng)建新的機(jī)器人,請(qǐng)啟動(dòng)機(jī)器人編輯器,然后選擇文件 -> 新建 -> 機(jī)器人 。 系統(tǒng)將提示您輸入機(jī)械手的名稱,該名稱將成為Java類名稱。 在此提示符下輸入DWStraight 。 接下來(lái),系統(tǒng)將提示您輸入一個(gè)唯一的縮寫,該名稱將用作機(jī)器人(及其相關(guān)Java文件)所在的軟件包的名稱。在此提示符下輸入dw

機(jī)器人編輯器將顯示您需要編寫以控制機(jī)器人的Java代碼。 清單1是您將看到的代碼示例:

清單1. Robocode生成的機(jī)器人代碼
package dw; import robocode.*;/*** DWStraight - a robot by (developerWorks)*/ public class DWStraight extends Robot {... // <<Area 1>>/*** run: DWStraight's default behavior*/public void run() {... // <<Area 2>>while(true) {... // <<Area 3>>}}... // <<Area 4>>public void onScannedRobot(ScannedRobotEvent e) {fire(1);} }

突出顯示的區(qū)域是我們可以添加代碼來(lái)控制機(jī)器人的地方:

1區(qū)
在此空間中,我們可以聲明類作用域變量并設(shè)置其值。 它們將在機(jī)器人的run()方法以及您可能創(chuàng)建的任何其他幫助程序方法中可用。

2區(qū)
戰(zhàn)斗管理員調(diào)用run()方法來(lái)啟動(dòng)機(jī)器人的生命。 它通常由兩個(gè)區(qū)域(清單1中指定為Area 2和Area 3)組成,您可以在其中添加代碼。 在區(qū)域2中,您將放置每個(gè)機(jī)器人實(shí)例僅運(yùn)行一次的代碼。 它通常用于在開(kāi)始重復(fù)動(dòng)作之前使機(jī)器人進(jìn)入預(yù)定狀態(tài)。

3區(qū)
這是典型的run()方法實(shí)現(xiàn)的第二部分。 在這里,在一個(gè)無(wú)盡的while循環(huán)中,我們將對(duì)機(jī)器人可能涉及的重復(fù)動(dòng)作進(jìn)行編程。

4區(qū)
在該區(qū)域中,您可以添加幫助程序方法,以供機(jī)器人在其run()邏輯中使用。 您也可以在其中添加任何要覆蓋的事件處理程序。 例如,清單1中的代碼處理ScannedRobot事件,并在雷達(dá)檢測(cè)到機(jī)器人時(shí)直接向機(jī)器人觸發(fā)。

對(duì)于我們的第一個(gè)機(jī)器人DWStraight,我們將更新清單2中以粗體顯示的代碼。

清單2. DWStraight機(jī)器人代碼的添加
package dw; import robocode.*;public class DWStraight extends Robot {public void run() {turnLeft(getHeading());while(true) {ahead(1000);turnRight(90);}}public void onScannedRobot(ScannedRobotEvent e) {fire(1);}public void onHitByBullet(HitByBulletEvent e) {turnLeft(180);}}

這是第一個(gè)機(jī)器人按區(qū)域進(jìn)行的操作:

1區(qū)
我們沒(méi)有在此機(jī)器人中指定任何類范圍變量。

2區(qū)
為了使機(jī)器人進(jìn)入已知狀態(tài),我們使用turnLeft(getHeading())將其旋轉(zhuǎn)為面向0度。

3區(qū)
在此重復(fù)部分中,我們使用ahead(1000)將機(jī)器人向前移動(dòng)到盡可能遠(yuǎn)的距離。 碰到墻壁或機(jī)器人時(shí),它將停止。 然后我們使用turnRight(90)右轉(zhuǎn)。 重復(fù)此過(guò)程后,機(jī)器人將基本上沿順時(shí)針?lè)较虍嫵鰤Ρ凇?

4區(qū)
在這里,除了處理自動(dòng)生成的ScannedRobot事件并向直接找到的機(jī)器人射擊外,我們還檢測(cè)到HitByBullet事件,并在HitByBullet旋轉(zhuǎn)180度(順時(shí)針和逆時(shí)針交替旋轉(zhuǎn))。

編譯和測(cè)試機(jī)器人

從“機(jī)器人編輯器”菜單中,選擇“ 編譯器” ->“ 編譯”以編譯機(jī)器人代碼。 我們現(xiàn)在準(zhǔn)備嘗試我們的第一場(chǎng)戰(zhàn)斗。 切換回戰(zhàn)場(chǎng)并選擇菜單Battle- > New,以顯示類似于圖3的對(duì)話框。

圖3. New Battle對(duì)話框

將我們的機(jī)器人dw.DWStraight添加到戰(zhàn)斗中,然后添加一個(gè)對(duì)手機(jī)器人,例如sample.SittingDuck。 點(diǎn)擊完成 ,戰(zhàn)斗將開(kāi)始。 誠(chéng)然,與SeatingDuck進(jìn)行戰(zhàn)斗并不太令人興奮,但是您可以了解DWStraight機(jī)器人默認(rèn)情況下的功能。 與樣本集中的其他機(jī)器人進(jìn)行實(shí)驗(yàn),并了解DWStraight如何與他們競(jìng)爭(zhēng)。

當(dāng)你準(zhǔn)備好檢查另一個(gè)機(jī)器人的編碼,請(qǐng)即與在代碼分發(fā)提供的dw.DWRotater機(jī)器人代碼相關(guān)的話題 。 默認(rèn)情況下,此機(jī)器人將:

  • 移到戰(zhàn)場(chǎng)中心
  • 持續(xù)旋轉(zhuǎn)槍支直到檢測(cè)到機(jī)器人
  • 在檢測(cè)到的機(jī)器人前方稍稍開(kāi)火,每次嘗試不同的角度
  • 每當(dāng)它被另一個(gè)機(jī)器人撞擊時(shí),來(lái)回快速移動(dòng)。

該代碼很簡(jiǎn)單,我們將不在這里進(jìn)行分析,但是我鼓勵(lì)您嘗試一下。 Robocode隨附的示例軟件包也為許多其他機(jī)器人提供了代碼。

其他機(jī)器人支持課程

隨著您在機(jī)器人設(shè)計(jì)方面的能力越來(lái)越強(qiáng),可以包含在機(jī)器人中的代碼量也會(huì)大大增加。 處理代碼的模塊化方法是將其分解為單獨(dú)的Java類,然后使用打包程序?qū)⑺鼈兝壍揭粋€(gè)單獨(dú)的程序包(JAR文件)中,以將其包括在您的機(jī)器人分發(fā)中。 Robocode將自動(dòng)在放置在其robots目錄中的程序包中找到機(jī)械手類。

我遇到了Robocode的創(chuàng)建者M(jìn)athew Nelson,并詢問(wèn)了他創(chuàng)建Robocode的最初動(dòng)機(jī)。 這是Mat必須分享的內(nèi)容:“編寫Robocode的部分動(dòng)機(jī)是向世界證明,'Java速度慢'和'您不能用Java編寫游戲'這樣的說(shuō)法已不再正確。我想我做到了它。”

其他機(jī)器人子類

任何人都可以創(chuàng)建Robot子類,并添加可用于構(gòu)建機(jī)器人的新功能。 Robocode提供了Robot的子類AdvancedRobot ,該子類支持異步API調(diào)用。 AdvancedRobot類的描述不在本文討論范圍之內(nèi),但是我建議您在熟悉基本Robot類的操作之后嘗試使用該高級(jí)類。

戰(zhàn)斗模擬器的架構(gòu)

通過(guò)Robocode的幕后觀察,您可以看到一個(gè)復(fù)雜的仿真引擎,該引擎既具有高性能(以便以逼真的速度渲染戰(zhàn)斗)又具有靈活性(無(wú)需阻礙即可創(chuàng)建復(fù)雜的機(jī)器人邏輯)。 特別感謝Robocode的創(chuàng)建者M(jìn)athew Nelson慷慨地提供了有關(guān)仿真引擎體系結(jié)構(gòu)的內(nèi)部信息。

利用Java平臺(tái)的設(shè)計(jì)

如圖4所示,該仿真引擎利用了大多數(shù)現(xiàn)代Java VM提供的非搶占線程,并將其與JDK GUI和2D圖形庫(kù)提供的渲染功能相結(jié)合。

圖4. Robocode仿真引擎架構(gòu)

請(qǐng)注意,每個(gè)模擬的機(jī)器人都在其自己的Java線程上,并在適當(dāng)?shù)那闆r下利用VM的本機(jī)線程映射。 戰(zhàn)斗管理器線程是系統(tǒng)的控制器:它協(xié)調(diào)模擬并驅(qū)動(dòng)圖形渲染子系統(tǒng)。 圖形渲染子系統(tǒng)本身基于Java 2D和AWT。

螺紋聯(lián)軸器松動(dòng)

為了緩解共享資源的潛在問(wèn)題(從而可能導(dǎo)致模擬引擎死鎖或阻塞),戰(zhàn)斗管理器線程和機(jī)器人線程之間需要非常松散的耦合。 為了實(shí)現(xiàn)這種松散耦合,每個(gè)機(jī)械手線程都有自己的事件隊(duì)列。 然后,在機(jī)器人自己的線程中提取并處理每個(gè)機(jī)器人的事件。 這種按線程排隊(duì)有效地消除了戰(zhàn)斗管理器線程與機(jī)器人線程之間或機(jī)器人線程本身之間的任何潛在爭(zhēng)用。

Robocode內(nèi)部

您可以將Robocode仿真器引擎視為一個(gè)仿真器程序,該程序在運(yùn)行時(shí)需要一組插件(自定義機(jī)械手)。 這套插件可以利用提供的API( robocode.Robot類的方法)。 從物理上講,每個(gè)機(jī)械手是一個(gè)獨(dú)立的Java線程,并且run()方法包含將在該線程上執(zhí)行的邏輯。

機(jī)械手線程可以隨時(shí)調(diào)用其父級(jí)robocoode.Robot類提供的API。 通常,這將通過(guò)Object.wait()調(diào)用來(lái)阻塞機(jī)器人線程。

戰(zhàn)斗經(jīng)理線程

戰(zhàn)斗管理器線程管理戰(zhàn)場(chǎng)上的機(jī)器人,子彈和渲染。 模擬“時(shí)鐘”由戰(zhàn)場(chǎng)上渲染的幀數(shù)標(biāo)記。 實(shí)際幀頻可由用戶調(diào)整。

在典型的回合中,戰(zhàn)斗管理器線程會(huì)喚醒每個(gè)機(jī)器人線程,然后等待機(jī)器人完成其回合(即再次調(diào)用阻塞API)。 該等待間隔通常為數(shù)十毫秒,即使是最復(fù)雜的機(jī)器人也往往僅以1或2毫秒的速度來(lái)使用當(dāng)今典型的系統(tǒng)速度進(jìn)行策略和計(jì)算。

這是戰(zhàn)斗管理器線程執(zhí)行的邏輯的偽代碼:

清單3.戰(zhàn)斗管理器的偽代碼邏輯
while (round is not over) docall the rendering subsystem to draw robots, bullets, explosionsfor each robot dowake up the robotwait for it to make a blocking call, up to a max time intervalend forclear all robot event queuemove bullets, and generate event into robots' event queue if applicablemove robots, and generate event into robots' event queue if applicabledo battle housekeeping and generate event into robots' event queueif applicabledelay for frame rate if necessary end do

請(qǐng)注意,在內(nèi)部for循環(huán)中,戰(zhàn)斗管理器線程將不會(huì)等待超過(guò)最大時(shí)間間隔。 如果機(jī)器人線程未及時(shí)調(diào)用阻塞API(通常由于某些應(yīng)用程序邏輯錯(cuò)誤或無(wú)窮循環(huán)),它將繼續(xù)戰(zhàn)斗。 SkippedTurnEvent會(huì)生成到機(jī)器人的事件隊(duì)列中,以通知高級(jí)機(jī)器人。

可替換的渲染子系統(tǒng)

當(dāng)前實(shí)現(xiàn)中的渲染子系統(tǒng)只是一個(gè)AWT和Java 2D線程,它從戰(zhàn)役管理器獲取命令并渲染戰(zhàn)場(chǎng)。 它已與系統(tǒng)的其余部分充分分離。 可以預(yù)見(jiàn),可以在以后的版本中替換它(例如使用3-D渲染器)。 在當(dāng)前的實(shí)現(xiàn)中,只要將Robocode應(yīng)用程序最小化,就將禁用渲染,從而使仿真以更快的速度進(jìn)行。

Robocode的未來(lái)

馬修·納爾遜是通過(guò)在alphaWorks上的Robocode站點(diǎn)承載的討論組的Robocode用戶社區(qū)緊密的反饋回路(參見(jiàn)相關(guān)主題 )。 許多反饋已合并到實(shí)際代碼中。 Mathew已計(jì)劃一些即將到來(lái)的增強(qiáng)功能:

  • 具有不同對(duì)象和障礙物的自定義戰(zhàn)場(chǎng)地圖
  • 基于團(tuán)隊(duì)的戰(zhàn)斗
  • 對(duì)比賽或聯(lián)賽的綜合支持
  • 用戶可選的坦克主體/槍支/雷達(dá)/武器樣式

Robocode勢(shì)不可擋

對(duì)于最近于2001年7月12日首次亮相的項(xiàng)目,Robocode的成名之舉簡(jiǎn)直是驚人的。 盡管可用的最新版本尚未達(dá)到1.0(在撰寫本文時(shí)為0.98.2版),但它已成為全世界大學(xué)校園和公司計(jì)算機(jī)上非常流行的消遣方式。 Robocode聯(lián)盟(或roboleagues聯(lián)盟) Swift崛起 ,人們?cè)诖送ㄟ^(guò)互聯(lián)網(wǎng)相互交流自己的定制創(chuàng)作。 大學(xué)教授正在利用Robocode的教育特性,并將其納入計(jì)算機(jī)科學(xué)課程中。 Robocode用戶組,討論列表,常見(jiàn)問(wèn)題解答,教程和Webrings遍布整個(gè)Internet。

顯然,Robocode填補(bǔ)了流行的游戲和教育領(lǐng)域的空白-為學(xué)生和午夜工程師提供了一種簡(jiǎn)單,有趣,無(wú)威脅,但具有競(jìng)爭(zhēng)性的方式,以釋放他們的創(chuàng)造力,并有可能實(shí)現(xiàn)他們的幻想來(lái)征服世界。


翻譯自: https://www.ibm.com/developerworks/java/library/j-robocode/index.html

總結(jié)

以上是生活随笔為你收集整理的robocode_摇滚,袜子,Robocode!的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。