刍议游戏编程在C语言教学中的一点应用

时间:2022-03-09 08:04:32

刍议游戏编程在C语言教学中的一点应用

摘 要 C语言是计算机专业的一门专业基础课,对于学生编程能力的培养具有十分重要的意义。而由于编程类课程具有难度较大、较为枯燥的特点,学生在学习中往往会出现缺乏兴趣的情况,并因此使学习效果受到较大的影响。对此,就需要开创新颖的教学方式,提高学生的学习兴趣。在本文中,将就游戏编程在C语言教学中的应用进行一定的分析。

【关键词】游戏编程 C语言教学 应用分析

1 引言

在计算机课程的教学中,C语言是一门非常重要的编程类基础课程,但在实际教学中,却经常能够听到学生对该门课程的抱怨,感觉知识枯燥、难学等。如何解决这个问题呢?我们都知道,C语言是一门具有较强实践性的课程,如果教师更多的强调理论教学,那么不仅很难使学生对理论知识产生更深的印象、不能够将理论知识转化为实践经验,对于学生的学习兴趣也有比较大的影响。将学生对C语言的学习兴趣进行最大程度的激发,成为了非常重要的一项教学目标。

在此情况下,教师可以充分结合C语言的特点,通过将游戏编程引入课堂教学,将C语言这门课程同“玩”之间建立联系,既能帮助学生对程序编写产生兴趣、积极投入的同时又能掌握相关的知识。对此,我们以较为简单的“猜数字”游戏为例对游戏编程在C语言教学中的应用进行简单的分析。

2 游戏编程在C语言教学中的应用

在游戏编程之前,需要先对“猜数字”这个游戏的规则做好整理与掌握:

(1)在进入到游戏之后,系统会以随机的方式生成4个0~9间的数字;

(2)玩家任意输入0~9之间的4个数字;

(3)系统将玩家所输入的数字同系统之前生成的数字进行比对、判断,以字母A对位置、数值都正确的数字个数进行表示,以字母B对位置不正确、但数值正确的数字个数进行表示,如反馈信息为4A0B,那么则表明玩家所猜的四个数字全对,游戏成功,否则本次游戏失败。

本游戏具体实现过程分析如下:

2.1 系统随机数生成

要想对游戏中的4个随机数进行生成,则需要使用到随机函数random。对此,教师可以先将该函数的作用以及使用方法向学生进行简单的讲解,也并不需要非常深入,仅仅使学生能够掌握10以内随机数的生成即可。为了便于后续的比较,这4个随机数则需要在生成后放在一个数组当中,本例中我们以a作为存放4个随机数的数组名。生成随机数的代码为:

for(i=0;i

a[i]=random(10);

2.2 随机数不重复的控制

要想使系统所生成的随机数具有不重复的特点,教师可以先安排学生共同进行讨论,并在讨论的过程中适当给予一定的提示:对于系统生成的这几个随机数来说,其值是不可控的,即在生成时我们无法做好数字重复性的控制。但在生成之后,我们则可以通过一定编程技巧的应用来选择使用或者不使用这几个随机数。当教师提到此处时,部分较为敏锐的学生则能够发现功能实现的要点,即将刚才生成随机数的代码段放入do……while结构中,如果经过判断发现这4个随机数中具有重复情况,则需要通过循环,重新生成4个随机数并进行再次判断,直到这4个随机数互相之间不再重复。

那do……while结构的循环判断条件又是什么呢?此时,教师则可以对学生进行适当的提示:如何对2个数字间是否存在重复情况进行判断?如何对3个以及4个数据间是否存在重复进行判断?因此,本游戏中不相同数字生成的循环判断条件可写为:

a[0]==a[1]||a[0]==a[2]||a[0]==a[3]||a[1]==a[2]||a[1]==a[3]||a[2]==a[3]

此时,该游戏的“系统生成0-9间随机数字、且这4个数字互不相同”的部分已经编写完毕。

2.3 用户输入数据判断

我们用数组b存放用户任意输入的4个数。根据游戏规则,在本游戏中共具有两种反馈信息,即a同b中位置与数值都相同元素的个数,使用字母A表示;另一种则为a同b中数值相同、但位置不同元素的个数,使用字母B表示。为了保证程序在实际应用中能够正确运行,则需要通过循环结构的应用对该种统计目标进行实现。首先,需要对A的统计情况进行研究。由于已知两个数组A与B具有相同的元素个数,且在2个数组中序号相同的元素间有对应关系。对此,根据游戏规则,只要将这两组数字中具有相同位置的元素进行比较即可,其代码为:

int A=0;

for(i=0;i

if(a[i]==b[i])

A + + ;

}

而最终A的值就是a与b两个数组中位置相同且数值也相同元素的个数。

之后,则需要对B进行统计。同A相比,对B进行统计相对麻烦一些。在对该值进行求解时,需要涉及到两个问题:第一,需要将a中元素同b数组中的每一个元素都逐个进行比较;第二,在经过第一轮比较后、如果发现两个元素具有相等的值,则需要进一步对其在数组中的位置进行比较,看位置是否不相同。只有当上述两个条件都得到满足之后,才能够对游戏中“数值正确、位置不正确”的概念进行体现。在对B值进行统计时,由于需要对数组中的不同元素以逐个的方式进行比较,则需要对双重循环进行应用,其代码为:

int B=0;

for(i=0;i

for(j=0;j

if((a[i]==b[i])&&(i!=j))

B + + ;

}

最终获得的B值就是a同b相比具有相同数值、但位置不相同元素的个数。

该游戏在知识点方面涉及到C语言的选择、循环以及数组等,难度不大,非常适合C语言的初学者进行编写。

3 结束语

C语言是计算机教学中非常重要的一门基础课程,对于学生的编程能力培养具有十分积极的意义,而在现今学生实际学习中感觉枯燥、缺乏学习兴趣的情况下,以游戏编程方式进行教学则是非常有效的一种方式。在上文中,我们虽然只是以一个猜数的小游戏为例对游戏编程在C语言教学中的应用进行了分析,但只要在实际教学中我们能够将此方式推而广之,灵活运用,就可获得更好的教学效果。

参考文献

[1]王鹏.C语言语言教学的游戏方法探析[J].中国科教创新导刊,2013(23):174-174.

[2]彭三城.案例教学方法在C语言语言教学中的应用研究[J].肇庆学院学报,2013(02):17-21.

[3]周小云.C语言的快乐教学之旅[J].课程教育研究,2013(02):156-156.

[4]倪建新.基于C语言的游戏开发教学平台的设计与实现[J].电脑知识与技术,2012(35):102-103.

作者单位

雅安职业技术学院 四川省雅安市 625000

上一篇:利用Actiionscript编程实现“弹小球”的方法研... 下一篇:一种基于数据库的管理系统的设计与实现