华东师范大学地理系(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个选项中出现相同的行政区名称,在产生行政区名称时,要判断是否和前面已产生的名称重复,如重复,则重新随机产生一个新的行政区名称。
本软件可用于中学生的中国行政区划图的认知练习。基于相同的设计思想同时还可以开发类似的软件,如世界行政区划图、世界城市分布图等的学习软件。此外,软件还可以开发成网络版,直接在网上进行操作练习。