利用游戏化编程培养学生的计算思维能力

2020-12-08 02:12李颖
中小学信息技术教育 2020年11期
关键词:计算思维游戏化

李颖

【摘 要】“计算思维”是学生的核心素养之一,它对学生思维方式和思维习惯的发展起着重要作用。本文以高中“算法与程序设计”中的VB编程教学为例,探索游戏化编程对计算思维能力培养的影响。通过实践案例探討游戏化编程对激发学生学习兴趣,提升学生计算思维能力的可行性。

【关键词】计算思维;游戏化;VB编程

【中图分类号】G434 【文献标识码】A

【论文编号】1671-7384(2020)011-072-04

编程教学中存在的问题

在信息化和人工智能的时代背景下,信息技术课程不能只是单纯地引导学生学会利用计算机来设计解决问题的方案。在高中VB教学中,虽然大部分学生能够熟练地使用VB中的窗体、标签、文本框、命令按钮等常用控件设计界面,进行简单的程序设计,却不知如何更好地应用这些控件进行软件开发,将学到的知识应用在解决日常问题中。因此,寻找合适的教学模式来激发学生的学习动机,让学生在编程解决问题的过程中培养计算思维显得尤为重要。

计算思维及游戏化编程

2017年教育部颁布的《普通高中信息技术课程标准》将计算思维确定为信息技术学科培养学生的核心素养之一,提出“在信息活动中能够采用计算机可以处理的方式界定问题、抽象特征、建立结构模型、合理组织数据”的培养目标。要让计算机帮助我们解决问题,就需要人们事先设定好解决问题的算法。因此,设计算法和编写程序是解决问题过程中的重要环节。这就要求在程序设计教学中,培养学生分析问题、设计问题解决方案的计算思维能力。

游戏化设计就是将游戏或游戏元素、游戏理念应用到一些非游戏情境中。“游戏化编程”即设计规则简单、开发难度较低的游戏任务,把抽象的问题变得形象生动,让学生在探究的过程中掌握程序设计语言基本语句的使用方法,并利用这些语句完成现实任务,增强学生编程能力,同时提升学生计算思维能力。

游戏化编程教学实施案例

1.猜拳游戏

在生活中,我们常常选择猜拳游戏来解决争议。在设计猜拳游戏时,可用随机数来模拟出拳情况,通过逻辑判断,判断选手的输赢。假设两个选手进行游戏,当点击“第n回合”按钮,A、B两个选手随机出拳,并根据结果对其计分。

(1)分解问题,理清思路

观察猜拳游戏任务,我们可以分解出两个核心问题。

问题1:A、B选手如何随机出现“剪刀”“石头”“布”等图片?

问题2:如何根据猜拳游戏规则,对A、B对手进行计分?

对问题逐个进行观察,思考之前是否解决过类似问题,可以用哪些学过的方法来处理这些问题,让学生学有所用。

(2)抽象特征,设计算法

抓住问题的特征:在问题1中,“剪刀”“石头”“布”以图片呈现,那么学生就需要学会设定VB中Image工具控件中用到的属性值;出拳结果是随机的,可以使用学过的随机函数Rnd()来控制随机现象;量化图片,将3张图片进行编码,即“1”表示“剪刀”,“2”表示“石头”,“3”表示“布”。

根据产生的随机数,选择并加载相应图片。例如:若随机数为1,则加载剪刀图片。

在问题2中,如何描述选手间的胜负情况并进行计分,是本节课的重点。在问题1中已经使用编码来代替出拳,列举A选手获胜的出拳情况,并进行逻辑判断,如表1所示。

同理可得B选手获胜的情况,当两者出拳相同即编码相等时为平局。

(3)编写程序,解决问题

分别为A、B选手各创建1个Image控件加载出拳图片,设定用变量为x、y存放A、B选手的出拳情况,计分变量s1、s2。利用随机函数Rnd()产生1到3的随机整数并赋值给x、y,根据游戏规则判断输赢,将结果存入A、B选手的计分变量中。部分代码如下:

学生通过以上步骤,编写程序代码,并调试运行,测试游戏效果。

教学时,大部分学生能独立完成游戏任务,并表现出成就感。但同时也提出了许多想法,希望能继续优化游戏设计。例如,选手出拳时能否实现动态画面?能否设置五局三胜?于是我们引导学生进一步探索定时器等控件的应用,综合所学知识,形成解决问题的方案,增强游戏的趣味性。在游戏任务的驱动下,学生学习积极性有了明显的提高,能主动地发现和思考问题,很好地掌握课堂中要求的任务和知识,计算思维能力有一定的提高。

2.打地鼠游戏

打地鼠游戏是众多游戏中比较简单且容易实现的,广为大众所喜爱。但是,当学生从玩家的角色转换到游戏设计者时,所带来的内在学习动力和完成游戏制作的成就感是妙不可言的。如何将上例中所学到的知识应用到本游戏的开发中,引导学生对游戏的设计和编写进行进一步的思考和探究,提升学生计算思维能力,是本节课的重点和需要解决的问题。

打地鼠游戏设计如下:①游戏难度分为三个等级,等级越高地鼠出现的时间越短。②每一次地鼠出现的位置是随机的。③每打中地鼠1次加10分;每局15秒,若时间到,得分未达到100分闯关失败,反之闯关成功。

(1)界定问题,组织数据

在上述“猜拳游戏”的教学基础上,引导学生通过观察打地鼠游戏的运行过程,分析游戏设计中需要解决的问题。

问题1:如何每间隔一段时间随机地在画面上显示地鼠图片?

用Image1控件的Left和Top属性值来确定地鼠图片坐标位置。

问题2:打中地鼠时如何更换一张地鼠被打中的图片?

地鼠被打中时需要将Image1控件的Picture属性值更换成新图片名。

问题3:如何更新和显示游戏倒计时?

设置一个全局变量t,用来存放游戏的剩余时间。

(2)抽象特征,建立数学模型

地鼠的两个状态如图1、图2,并将其分别命名为“1.gif”和“2.gif”。

基于对问题和数据流程的分析,形成游戏的执行框架,如图3所示。

教师让学生从计算机解决问题的角度分析,列出计算机可执行的操作。对应的抽象模型,如表2。

(3)设计算法,形成实现方案

在上述数据模型基础上,形成问题解决方案,将实现游戏的有序步骤描述出来。

第一步,在Timer1的Timer事件中,利用LoadPicture函数加载地鼠图片;用随机函数Int(Rnd() * N + M)产生两个M到N的随机整数作为地鼠图片的位置坐标。第二步,设置全局变量t作为游戏倒计时的时间数值,设置初始值t=15;在Timer2的Timer事件中,使t=t-1,并用条件语句判断闯关的成败。第三步,在Image1的MouseDown事件中,設置用于记分的全局变量s,每次调用该事件时得分增加10分,即s=s+10,用条件语句判断是否闯关成功。

Timer1_Timer部分代码如下:

Image1.Picture = LoadPicture("1.gif")

Image1.Left = Int(Rnd() * 7000 + 300)

Image1.Top = Int(Rnd() * 3000 + 700)

Image1_MouseDown部分代码如下:

Image1.Picture = LoadPicture("2.gif")

s = s + 10

Label1.Caption = s

If s = 100 Then

Timer1.Enabled = False

Timer2.Enabled = False

MsgBox "Congratulations!"

End If

Timer2_Timer部分代码如下:

t = t - 1

Label2.Caption = t

If t = 0 And s < 100 Then

Timer1.Enabled = False

Timer2.Enabled = False

MsgBox "Game Over!"

End If

(4)检验结果,总结迁移

测试游戏运行效果,引导学生发现游戏设计的漏洞并尝试改进增强游戏的功能和趣味性。通过前面的例子可以看出,利用计算思维解决实际问题的过程,即界定问题→抽象特征→形成方案→检验结果。当学生在生活和学习中再次遇到类似的问题时,可以尝试运用计算思维的方法去分析和解决问题。例如,制作旅游攻略时,可先列出问题,如目的地、时间安排、预算等,再根据所需的资料类型如地图、景区信息等选择合适的检索方式,最后使用计算机获取信息,形成合理的旅游方案并根据实际情况修改和调整。

这样的游戏设计案例操作简单,易于实现,非常适合课堂教学,学生在解决新问题的过程中,不断挑战自我,充分体现计算思维中分析问题等思维活动。学生通过这样的学习过程,更容易理解并掌握VB的各种命令和语法,正确使用VB解决现实生活中的问题,在一定程度上达到了培养学生计算思维能力的目的。

结束语

本文介绍了借助游戏化编程引导学生利用计算思维方式解决问题的思维活动过程。在教学实践过程中,相对于传统教学,学生的课堂积极性与渴望解决问题心理有了很大的提高。我们相信,随着课程实践的不断深入,游戏化编程对学生计算思维的提升将会更加明显,信息技术的学科教学将会越来越精彩。

参考文献

牟琴.“轻游戏”对计算思维能力的培养[J]. 远程教育杂志,2011,6:94-101.

傅骞,王钰茹. 面向计算思维培养的编程教学研究 ——以高中生Python编程教学为例[J]. 创新人才教育,2019,3:47-54.

王田莉,陈素烟,朱祎搏. 中职计算机应用基础课程游戏化教学模式探究[J]. 教育教学论坛,2019,28:222-223.

猜你喜欢
计算思维游戏化
浅谈我园美术园本课程游戏化的开展
游戏化对幼儿园数学教育的作用研究
基于计算思维的软件类研究生高级算法课程教学研究
基于计算思维程序设计的军事案例研究
程序设计课程中计算思维和应用能力培养问题研究
为幼儿园教学注入新的活力
游戏化语言:幼儿园活动游戏化的支柱
幼儿音乐课程教学游戏化的方法研究
算法的案例教学探析
浅谈艺术专业学生计算思维能力的培养