摘要 :從設計一個娛樂性小游戲出發,闡述興趣發展的各階段對計算機語言學習的影響。教學實踐證明,游戲既能把學習者導向到有目的、有意義的積極學習,又能為學習者的進一步學習提供動機。
關鍵詞:興趣;計算機語言;學習方法
興趣的本質及其對學習的影響是一個古老而又嶄新的話題,它是教育理論和教育實踐所要解決的核心問題。由興趣引起對事物正確的、全面的認識,它既能導向有意義的學習,又能促進知識的長期保持,并為進一步的學習提供動機。計算機語言課是一門較特殊的課程,需要理論與實踐相結合,“光說不練”,只能算是“紙上談兵”。對于該類課程,興趣無疑是最好的學習動力來源。很多同學在學習之初,或許是受“網絡高手”等“事跡”的影響而興趣盎然,但學習了一段時間之后,發覺還沒入門,更不要說學以致用,也就漸漸喪失了興趣。其實,興趣的發展也有一個過程:興趣的培養、興趣的維持、興趣的迸發。
1興趣的培養
興趣的培養,首先是興趣點的發掘,然后是可行性分析論證,最后是著手實施。興趣點的發掘,即興趣點在哪?很多同學不約而同地選擇了兩個方面:娛樂、實際應用。既然誰都喜歡娛樂,那就先從娛樂開始。很多電腦高手,也是從娛樂開始的。現在,身邊可供娛樂的東西,從手機、電腦自帶的小游戲,到購買、下載的大小游戲,再到網絡游戲,可謂數不勝數。現在就從超小的、常見的游戲著手,比如猜數字、24點、五子棋、紙牌接龍、掃雷、拼圖等[1]。可行性論證?可以說參照任何一本教材均可實現上述小游戲。不信?請看圖1。
以Visual Basic語言為例,在圖1中所看到的控件,均是VB控件工具箱中的標準控件。先拋棄輔助功能:選圖、撤銷、重復等,只考慮主要功能,那就剩圖的分割及移動了。圖的分割就是分割成多少份小圖來拼成大圖,分割效果如圖2所示,先簡單點,考慮3×3的九宮格的拼圖。著手第一步實施,先做界面。圖1中的大圖實際上是由9個小圖構成,可用9個Image控件,如圖3所示,為了方便控制,減少代碼行數,使用了控件數組。
2興趣的維持
興趣的維持也需要堅持,千萬不能遇到一點點的困難就想放棄。在可行性論證可行的前提下,要堅信:既然別人能做到的,我也一定能行!拼圖的“難點”不外乎以下幾個方面。
2.1圖的分割
圖的分割就是把一幅完整的圖分割成幾個小塊的子圖,凡是接觸過拼圖游戲的人應該都理解。仔細一想有多種方法可以實現:Windows系統自帶“畫圖”工具,Photoshop等圖形工具軟件,API函數等。當然,最方便的還是VB系統自帶的用于圖形分割的PictureClip控件[2],只需用到這個控件的3個屬性:Picture、Rows、Cols。Picture屬性是存放要分割的圖,Rows/Rols屬性則是設置要分割的行、列數目,即要分成幾個子圖。
2.2圖的裝載
從分割的9個子圖中取前8個分別載入Image控件數組的前8個中,最后一個保留空白,如圖4所示。
圖4加載子圖
為了保證隨機性,算法如下:
1) 產生8個無序且不同的0~7的隨機整數并依次存入數組arrTemp中。
2) 循環放置子圖:
For i = 0 To 7
imgPic(i).Picture = PicClip. GraphicCell (arrTemp (i)-1)
Next i
3)imgPic (8).Picture = LoadPicture("")
2.3圖的移動
每個子圖只有上移、下移、左移、右移等4個移動方向中的2~4種。具體是,第一行的子圖不能向上移動,最后一行的子圖不能向下移動,第一列的子圖不能向左移動,最后一列的子圖不能向右移動。如何控制呢?假設:intRows=3:intCols=3,那么Image控件數組第一行的index值滿足index
那么,相應的移動處理就是:
Sub PicMove(index)
i = index
If i < intRows Then'第一行:不能上移
'第一行:不能上移
Else'不是第一行:均可上移
If Image1(i-intRows).Picture = LoadPicture("")Then
Image1(i - intRows).Picture = Image1(i).Picture
Image1(i).Picture = LoadPicture("")
End If
End If
……'最后行、第一列、最后列的處理方式與此類似,代碼略。
End Sub
當單擊要移動的子圖或按上下左右的方向鍵時,分別調用上述過程即可。如下面是對上下左右的方向鍵控制處理方法。
Sub Form_KeyUp(KeyCode As Inte