文章編號(hào):1672-5913(2008)18-0125-02
摘要:本文介紹了一種免費(fèi)的編程游戲軟件AI-TANK及其在“C語言程序設(shè)計(jì)”課程中的應(yīng)用。AI-TANK是一種支持C/C++語言、JAVA語言的編程游戲軟件。用戶編寫程序控制軟件中坦克機(jī)器人同其他機(jī)器人對(duì)戰(zhàn)。學(xué)生在此過程可主動(dòng)地學(xué)習(xí)編程及其他知識(shí)。
關(guān)鍵詞:游戲教育理念;AI-TANK;教學(xué)方法;
中圖分類號(hào):G642 文獻(xiàn)標(biāo)識(shí)碼:B
“游戲教育”是一種用寓教于樂的高效學(xué)習(xí)方法,利用人“愛玩”的天性,讓學(xué)習(xí)者在“玩”中學(xué)習(xí),從而充分調(diào)動(dòng)學(xué)習(xí)者的學(xué)習(xí)興趣,使學(xué)習(xí)效果得到極大提高的全新教育理念。AI-TANK是一款編程游戲軟件。使用者通過編寫程序代碼控制軟件中的坦克機(jī)器人與其他玩家編寫的機(jī)器人對(duì)戰(zhàn),以此達(dá)到學(xué)習(xí)計(jì)算機(jī)語言及其他相關(guān)知識(shí)的目的。本文探討在“C語言程序設(shè)計(jì)”課程中應(yīng)用該軟件的一些方法。
1AI-TANK簡(jiǎn)介
AI-TANK游戲教育平臺(tái)是一套全新的教育平臺(tái),打破了傳統(tǒng)的教育模式,以寓教于樂的方式讓學(xué)生在非壓迫的競(jìng)爭(zhēng)中逐步提高自己的計(jì)算機(jī)程序設(shè)計(jì)水平和相關(guān)數(shù)學(xué)、物理等科學(xué)知識(shí)的應(yīng)用水平。學(xué)生通過軟件坦克機(jī)器人控制接口控制機(jī)器人的動(dòng)作,編制好的機(jī)器人可以放到軟件模擬戰(zhàn)場(chǎng)上與其他人編寫的機(jī)器人對(duì)戰(zhàn)。在對(duì)戰(zhàn)過程中直接且深切地體會(huì)程序語言的作用,并從中激發(fā)學(xué)生興趣。而學(xué)生可以不斷學(xué)習(xí)新的程序設(shè)計(jì)方法和機(jī)器人控制算法來提高機(jī)器人的“智力”。
使用AI-TANK的過程是有趣而不是乏味的,由此帶來與傳統(tǒng)教學(xué)方式完全不同的效果。它提高了學(xué)生的學(xué)習(xí)興趣并加深了對(duì)知識(shí)點(diǎn)的理解程度。整個(gè)過程是自主的,而非壓迫的。在使用AI-TANK的過程中學(xué)生有3個(gè)輪換的角色,如圖1所示。
●學(xué)習(xí)者——學(xué)習(xí)程序和算法設(shè)計(jì)的人。
●使用者——使用AI-TANK進(jìn)行實(shí)踐的人。
●競(jìng)技者——將學(xué)習(xí)實(shí)踐成果發(fā)布出去與別的競(jìng)技者進(jìn)行比賽的人。
由上圖可以看出這是一個(gè)循環(huán)的過程,競(jìng)技者會(huì)再次變成學(xué)習(xí)者、使用者。因?yàn)樵诤蛣e人的坦克機(jī)器人對(duì)戰(zhàn)時(shí)可能會(huì)被擊敗,這就促使學(xué)生再次去學(xué)習(xí)更加優(yōu)秀的程序和算法。
在這樣一個(gè)重復(fù)的過程中,不知不覺地提高自己知識(shí)水平。AI-TANK就是通過利用游戲的這種互動(dòng)性和易操作性,讓學(xué)生在玩自己編寫的機(jī)器人時(shí)運(yùn)用知識(shí),提高能力。圖2為AI-TANK軟件的使用過程。
2AI-TANK軟件構(gòu)成
AI-TANK軟件分為網(wǎng)絡(luò)版和單機(jī)版兩個(gè)不同版本,網(wǎng)絡(luò)版包含服務(wù)器和客戶端。本文僅介紹單機(jī)版的構(gòu)成。AI-TANK由3部分構(gòu)成:虛擬機(jī)器人運(yùn)行平臺(tái)AIRobot、機(jī)器人程序圖形編輯器RoboExp、機(jī)器人代碼編輯器CodeCanvas。另外AI-TANK還支持使用其他程序編輯器。這樣使用者可以用自己熟悉的編輯器進(jìn)行代碼編寫,再使用虛擬機(jī)器人平臺(tái)執(zhí)行。AI-TANK軟件結(jié)構(gòu)如圖3所示。
虛擬機(jī)器人運(yùn)行平臺(tái)AIRobot是AI-TANK的核心平臺(tái),只有通過它,代碼才能以虛擬機(jī)器人的形象表示出來。可以在此平臺(tái)下完成選擇機(jī)器人、設(shè)置比賽環(huán)境等各種操作,并在此平臺(tái)下觀看比賽過程和比賽結(jié)果。虛擬機(jī)器人運(yùn)行平臺(tái)界面如圖4所示。
而機(jī)器人程序圖形編輯器RoboExp采用圖形化、模塊化編程語言,全部功能模塊使用圖標(biāo)表示,如圖5。用戶只需簡(jiǎn)單地拖放相應(yīng)的功能模塊圖標(biāo),繪制出流程圖,機(jī)器人快車就能自動(dòng)生成可視化C語言源代碼,幫組用戶輕松完成編程,快速掌握如何使用AI-TANK機(jī)器人。極大地方便初級(jí)用戶入門。
機(jī)器人代碼編輯器CodeCanvas是程序代碼編輯器,通過手工編寫代碼來生成機(jī)器人程序,如圖6。在編寫代碼完成后直接使用AIRobot編譯代碼并最終執(zhí)行。該代碼編輯器適用于中高級(jí)用戶。
3AI-TANK在程序設(shè)計(jì)課程中的應(yīng)用
在實(shí)際教學(xué)中可以分三個(gè)方向利用AI-TANK教育軟件的優(yōu)勢(shì)提高學(xué)生的編程能力。
首先,在引入很多C語言知識(shí)點(diǎn)時(shí)可以利用AI-TANK來演示這些知識(shí)點(diǎn)的作用,以提高學(xué)生的感性認(rèn)識(shí)。比如介紹函數(shù)和指針時(shí)。
第二,AI-TANK教育軟件可以用于課程的實(shí)踐環(huán)節(jié)。當(dāng)學(xué)生具備一定的C語言基礎(chǔ)后可以給學(xué)生安排一些任務(wù)。學(xué)生用C語言控制坦克機(jī)器人來完成某些特殊任務(wù)。比如編程控制機(jī)器人按一定路徑移動(dòng)。
第三,在學(xué)生的課余時(shí)間組織AI-TANK機(jī)器人聯(lián)賽。讓學(xué)生用自己編寫的機(jī)器人相互對(duì)戰(zhàn),相互交流編程的經(jīng)驗(yàn)。以此營造濃厚的學(xué)習(xí)交流氣氛,激勵(lì)學(xué)生持續(xù)的學(xué)習(xí)動(dòng)力。
另外,AI-TANK還可以被C語言課程以外的其他課程繼續(xù)使用,比如數(shù)據(jù)結(jié)構(gòu)、人工智能、神經(jīng)網(wǎng)絡(luò)等等。這樣該軟件可以成為學(xué)生理論知識(shí)的一個(gè)實(shí)踐平臺(tái)。
4結(jié)束語
AI-TANK以其獨(dú)特的設(shè)計(jì)思想和軟件結(jié)構(gòu),使其在C語言程序設(shè)計(jì)教學(xué)中比普通程序開發(fā)軟件更具適用性。對(duì)于學(xué)生來說AI-TANK可以很直接形象地展示程序的執(zhí)行結(jié)果,并且可以激發(fā)學(xué)生的興趣,使其具有主動(dòng)學(xué)習(xí)的動(dòng)力。另外由于AI-TANK是一個(gè)純軟件平臺(tái),所以特別適合初次接觸學(xué)習(xí)C語言而且沒有其他知識(shí)背景的學(xué)生。任何有興趣的學(xué)生可以利用課后時(shí)間來使用。本文筆者通過在“C語言程序設(shè)計(jì)”課程中對(duì)AI-TANK的應(yīng)用體會(huì)到游戲編程軟件對(duì)提高學(xué)生編程能力的作用,也從中尋找出一條培養(yǎng)學(xué)生編程興趣的新路!
參 考 文 獻(xiàn)
[1] 鐘民.C語言學(xué)習(xí)利器—AI-TANK機(jī)器人[M]. 北京:中國水利水電出版社,2007.
[2] 王巍,張甲秋.案例教學(xué)法在C語言教學(xué)中的應(yīng)用[J].黑龍江生態(tài)工程職業(yè)學(xué)院學(xué)報(bào),2007,(3).
[3] 孫鋒.“C語言程序設(shè)計(jì)”教學(xué)的幾點(diǎn)體會(huì)[J].計(jì)算機(jī)與信息技術(shù),2006.
[4] 譚浩強(qiáng). C 程序設(shè)計(jì)(第二版)[M]. 北京:清華大學(xué)出版社,1999.