華東師范大學地理系(200062) 陳六嘉 吳健平
了解我國每個省級行政區的空間位置及輪廓形狀是我國國民應該具有的基本地理知識。在中學地理教學中,除課堂教學外,有相應的行政區圖填圖練習,學生們根據所學知識在地圖上填寫每個行政區的名稱。但這種常規練習的缺點是比較枯燥,學生在做完練習后,不能馬上知道練習的對錯情況,缺少不斷練習的興趣。因此,開發一個用于學習中國行政區劃圖的交互式游戲軟件,讓學生們在游戲中學習中國行政區劃圖,能夠提高學生的學習興趣,培養學生的自主學習能力。
該軟件模擬類似“過關”的游戲軟件,如在規定時間里能完成任務(正確識別所有行政區),則過關成功;否則,則過關不成功。
軟件啟動后,在主界面的地圖窗口中顯示中國行政區劃圖(圖1)。用戶點擊“開始”按鈕,游戲開始。首先將隨機選中一個行政區,并以高亮顏色(紅色)顯示,同時在地圖窗口的下方顯示4個選項,其中1個選項標注選中行政區的名稱,另3個選項標注其它任意選中的行政區名稱。用戶根據自己的地理知識,選擇其中1個選項,如選擇正確,則標簽按鈕顯示“對”,該行政區將在此后不再被選中;如選擇不正確,則標簽按鈕顯示“錯”,該行政區將在此后還將被選中。繼續隨機選中行政區并在選項中進行選擇。如在規定時間內正確選擇所有的行政區,則彈出一個信息框顯示“你真棒!”;如未能在規定時間內正確選擇所有的行政區,則彈出一個信息框顯示“繼續努力!”。
軟件的主界面同時顯示1個工具條、1個“提示”按鈕和一個狀態欄,工具條中的工具用于對地圖進行放大、縮小及全圖顯示;“提示”按鈕用于顯示選中行政區的簡單提示信息,如四川省顯示“天府之國”;狀態欄顯示答對和答錯的題數以及已用時間。

圖1 軟件界面
軟件利用Visual Basic 6.0語言和ArcGIS Engine GIS組件進行開發,在VB窗體控件中,增加1個MapControl控件、1個ToolBarControl控件、1個標簽控件、2個按鈕控件、4個單選框控件和1個狀態欄控件。在MapControl控件頁中設置加載的中國行政區劃圖數據,該數據的屬性表有行政區名稱及對應的ID編號(從1到34)等字段。
軟件開發的步驟如下:
(1)利用Random函數產生一個1到34的隨機整數。
(2)利用ArcGIS Engine組件的IFeatureSelection接口的SelectFeatures方法查詢ID等于該隨機整數的行政區,并以高亮顏色顯示。
(3)產生一個1到4的隨機整數,該隨機整數用于確定選中行政區的名稱放在第幾個選項,如隨機整數為2,則第2個單選框的標注為選中行政區的名稱,其它單選框的標注為其它隨機選中行政區的名稱。同時把該隨機整數賦給一個模塊級變量(Rank),用于判斷用戶選擇是否正確。
(4)用戶點擊第1個單選框時,判斷Rank是否等于1,如等于1 ,則選擇正確,如不等于1,則選擇不正確。同樣方法用于其它單選框的點擊事件。
(5)每次選擇后,如選擇正確,則正確選擇的計數器變量(Right_Count)加1,如選擇錯誤,則錯誤選擇的計數器變量(Wrong_Count)加1,選對和選錯的個數同時顯示在狀態欄中。當Right_Count等于35時,即所有34個行政區都被正確選擇,彈出一個信息框顯示“你真棒!”,結束游戲。
(6)在點擊“開始”按鈕后,利用Timer控件進行計時,計時信息(已用時間)顯示在狀態欄。當已用時間超過規定時間,如3分鐘,將彈出一個信息框顯示“繼續努力!”,并結束游戲。
在軟件開發中需要注意的問題:
(1)為了使選擇正確的行政區在此后不再被選中,在每次產生隨機整數時,需要判斷ID為該隨機整數的行政區是否已經正確選擇,如已經正確選擇,則重新產生隨機整數。通過一個數組變量S(ID)記錄每個ID對應的行政區是否被正確選擇,S(ID)為0表示未被正確選擇,S(ID)為1表示已被正確選擇。
(2)為了避免4個選項中出現相同的行政區名稱,在產生行政區名稱時,要判斷是否和前面已產生的名稱重復,如重復,則重新隨機產生一個新的行政區名稱。
本軟件可用于中學生的中國行政區劃圖的認知練習。基于相同的設計思想同時還可以開發類似的軟件,如世界行政區劃圖、世界城市分布圖等的學習軟件。此外,軟件還可以開發成網絡版,直接在網上進行操作練習。