游戏程序十篇

时间:2023-03-14 00:44:23

游戏程序

游戏程序篇1

关键词: 棋类游戏;架构;类;事件

中图分类号:TP311.11 文献标志码:A 文章编号:1671-7597(2012)0210065-03

0 引言

由于棋类游戏设计简单,占内存小且娱乐性很强的,所以一直以来都非常有市场。但是一直以来,并没有一种设计规范。每个人,每个公司都用着自己的设计方案。

笔者通过一段时间的实验,用ActionScript3.0语言先后写了黑白棋,五子棋等程序,并且在FDT平台上运行成功,从中得到了一些编写此类程序的经验,现通过黑白棋程序简单介绍下自己的设计方法,希望可以抛砖引玉,也希望能让读者有所收获。

1 系统架构的建立

1.1 建立文档类

首先我们来建立我们的文档类,从ActionScript 3.0[1]开始,Adobe为Flash CS 3引入了文档类的概念,关于文档类,简单来说也就是Flash Player根显示容器所绑定的类,是整个flash影片的入口类。文档的使用可以使

这里的DocumentClass类继承于Sprite,所以也是一种显示容器,在创建游戏对象时通过this参数传递,也就是说Game对象是生成在这个显示容器上的。这样做的好处是,如果日后要开发另一个游戏,比如五子棋,泡泡龙等,直接写好Game类就行了,原有的显示容器类DocumentClass可以拿来直接使用。

1.2 游戏类的编写

接下来正式进入游戏类的编写,由于ActionScript 3.0已经真正实现了面向对象编程[2],所以编程之前我们必须考虑清楚,在这个游戏中我们会有哪些主要对象,这些对象又需要做些什么?

Game:游戏本身就是一个抽象的对象,和现实一样一个游戏本身就会有自己的游戏方式(方法)和游戏内容(属性)。

方法:开始游戏,结束游戏,暂停等。

属性:游戏工具(棋盘,棋子),规则,游戏参与者。

制作游戏的第一步我们要先把游戏工具确定下来。既然我们做的是棋类游戏,棋盘棋子是必不可少的。

ChessBoard:棋盘类,主要功能:显示棋盘,规划棋格(放上或去除棋子)。

Chessman:棋子类,主要功能:显示棋子,记录必要属性。

//首先我们用_rootmc=传入的容器,作为整个游戏根容器

_rootmc = rootmc;

//调整容器的位置为屏幕中心,在整个游戏的每个拥有显示容器的类中,我加入了对齐的概念,并预留了其他对齐方式的接口,像现在主容器的位置在屏幕中心,因为ALIGN==Enum_MCALIGN.Center;

}

//创建棋盘对象并传入游戏根目录容器对象,在ChessBoard的构造类我们可以看到,ChessBoard会自己构造一个容器加载到游戏根容器中,这个是这个游戏我所使用的显示对象自己管理显示类的方式。这样的优点是使对象和

//枚举类型对齐方式,使用枚举类型更易于发现字面错误。如果枚举名输入错误,ActionScript编译器会生成一个错误。如果使用字面值,存在拼写错误使用了错误数字时,编译器不会报错,而造成令人头疼的bug。[3]

Public class Enum_MCALIGN

{

public static const LEFTTOP : Enum_MCALIGN = new Enum_MCALIGN();

mc Sprite;

//棋盘行列数,因为将来可能出现不同长度的棋

//盘,所以使用变量

private var _chessLowLenght : Number = 8;

private var _chessRowLenght : Number = 8;

//棋子管理数组,记录棋盘中所有棋子对象

private var _chessmanArr : Array;

//棋盘左上角点

private var _startX : Number;

private var _startY : Number;

public function ChessBoard(Pmc : Sprite)

{

//创建棋盘容器,并加入父显示容器

_mc = new Sprite();

Pmc.addChild(_mc);

//center align,由于前边已经介绍过对齐方式,此

//处和前边相同,在这里不再重复。

…………………

//初始化棋子,为棋盘的的每一个格子初始化一//个看不见的棋子,其实我们的棋子chessman类//不光是棋子,还附加了棋盘上的一个“空格子”//概念,一个chessman对象一开始以一个“空格//子”的状态生成在棋盘上,这样做可以为以后//添加响应鼠标事件形成方便。

private function initChessman() : void

{

Chessman***************

import flash.display.Sprite;

import game.blackwhite.Enum.Enum_MCALIGN;

//载入枚举类型棋子状态

import game.blackwhite.Enum.Enum_ChessmanState;

public static const RADIUS :Number = 15;

public static const EMPTYCOLOR :int = =0xEEEEEE;//空棋子颜色;

public static const BLACKCOLOR :int = =0x000000;//黑棋子颜色;

public static const WHITECOLOR :int = =0xFFFFFF;//白棋子颜色;

//棋子显示容器

private var _mc : Sprite;

private var _i : int;

private var _j : int;

private var _x : Number;

private var _state : Enum_ChessmanState;

public function Chessman(Pmc : Sprite,i : int,j : int,x : Number,y : Number){

_mc = new Sprite();

Pmc.addChild(_mc);

_state = Enum_ ChessmanState.EMPTY;

//根据棋子不同的状态,用不同的颜色显示棋子

paint(_state);

}

private function paint(state:Enum_Chessman) : void

{

_mc.graghic.clear();

//center align,根据对齐方式,确定棋子显示位置,在此不再重复

…………………………

//设置空棋子,白棋子和黑棋子的绘制方式,不是本文讨论重点,略过。

…………………………

//在这个地方要特别指出的是,为什么要用2个set函数,并再set函数中即设定了该类的属性x/y,还设定了mc的x/y值。这就是我提到的逻辑类和显示类要分开的概念,也就是说这个棋子类是可以抛开其_mc容器而独立运行的,容器_mc只是这个棋子类的一个表现,可以有也可以没有。这样设计的好处是可以更方便且节约资源的在后台

枚举类Enum_ChessmanState的设计与前边的枚举类设计相似,在此不做重复。

到目前为止,我们已经简单的把整个游戏结构搭建起来了,已经可以看到棋盘和“空”棋子都已经显示出来了。而整个游戏的架构是Game控制ChessBoard,ChessBoard控制Chessman的方式。

2 取得鼠标事件

之前我们已经把棋盘和棋子显示出来了,接下来应该做的就是怎么让玩家通过鼠标事件来下棋。

其实在之前系统架构中我们已经为这个功能做了准备,在棋盘初始化的时候就放上了“空”的棋子,所以只要为每个“空”棋子加上事件响应就可以获得玩家在该格子的鼠标事件。

棋子对象可以通过paint函数来改变自己的颜色,达到下棋的效果。但究竟要下什么颜色的棋子,是否可以下,是否吃子等等的判断,棋子类是没办法判断的,我们也不应该让单个棋子参加到下棋规则的逻辑,棋子的工作就是Game作为游戏的控制类,接受棋盘的棋子点击事件,并作出响应后,再调用下棋函数进行下棋。

在以后的编程中,可以加入具体的游戏逻辑判定是否可以下棋,是否吃棋等,在游戏架构的设计中暂时不介绍。

到目前为止我们就可以在棋盘上下棋了,当然还只是能下黑子,在这部分中使用了一种拟人化的思想来架构我们的程序结构,并且使用了自下向上“报告”的方法。

3 结论

从上文中,我们可以看到棋类游戏分为以下步骤:

3.1 设计架构

1)设计文档类;2)编写游戏类。

3.2 取得鼠标事件

按以上步骤设计棋类游戏,不仅可以提高效率,而且可以提高程序的可读性。

参考文献:

[1]蒋国强、岳元亚,ActionScript 3.0从入门到精通,机械工业出版社,2011.

[2]李方捷,ActionScript 3.0开发技术大全,清华大学出版社,2004.

[3](美)Steve McConnell,代码大全,电子工业出版社,2006.

游戏程序篇2

关键词:VB 程序 控件 属性 事件

编程前,首先,我们要掌握游戏的规则和功能。我们要编的是一个“找不同”的小游戏,在玩家进入游戏后,界面上出现两幅基本相同图片,在两幅图片中有几处细节不同的地方,找到后用鼠标单击。如果找对了,界面上就会出现红色的圈把不同的地方圈起来,如果点错了,则没有任何反应。游戏中两幅图片一共有四处不同,在30秒内,如果不同处全部找出来,则弹出“闯关成功”对话框;如果没有全部找出来,则弹出“时间到,闯关失败,是否重新再来?”对话框,单击“是”重新闯关,单击“否”则退出。

其次,我们要清楚基本的制作思路:①首先我们在网上下载两副基本上相同,上面有多处细节不同的图片。②在窗体里制作一个图片框,将下载好的图片插入到图片框中。③在图片的不同处上面加标签,并把标签的Backstyle属性设置为“0-Transpare”,这样把标签隐藏在图片里。然后再在标签的单击事件中制作出选中不同处画圆的程序。这样我们可以绕过复杂的程序,并能实现单击不同处画出红圈的效果。④在窗体中我们用一个时钟控件,将时钟控件的Interval属性设置为“1000”,时钟控件Interval属性中数值的单位是毫秒,设置为1000,就表示每隔1秒调用一次Timer事件中的程序。再在Timer事件中设置一个变量s,做一个变量减1,这样形成每1秒减1的倒计时的效果。⑤制作一个文本框控件,将Timer事件中的变量s的值随时显示在文本框中。⑥在标签的单击事件和时钟的Timer事件中分别编写弹出对话框语句,并用if语句控制对话框的返回值,如果返回“是”的值,那么重置游戏的初始值。如果返回“否”的值,则退出程序。

下面我们就进入编程状态,各对象主要属性设置为:Form1的Caption为“找不同游戏”;Picture1的Picture属性为“插入图片的路径”;Label1—label8的Caption属性都为空,Backstyle属性为“0-Transpare”,label9、label10的Caption属性分别为“两图中有四处不同找出来”和“抓紧啊!”;Text1的Text1属性为空;Timer1的Interval属性为“1000”。

具体程序如下:(说明:下列程序中Label2、Label3、Label4、Label5、Label6、Label7、Label8的Click事件和Label1的Click事件程序相同,只是名称相应地改变了,这里就不一一列出来了。续行表示该行在VB中与上一行是同一行)

Dim s As Integer ‘设置s作为整形全局变量

Dim g As Integer‘设置z作为整形全局变量

Private Sub Form_Load()

g=30‘为计时器赋初始值

End Sub

Private Sub Label1_Click()

Picture1.Circle (Label1.Top, Label1.Left), 500, vbRed ‘以标签1的中心作为圆心,500为半径,绘制红色圆圈

Picture1.Circle (Label11Top, Label11.Left), 500, vbRed‘以标签11的中心作为圆心,500为半径,绘制红色圆圈

Label1.Enabled=False‘隐藏标签1

Label2.Enabled=False‘隐藏标签2

s=s+1‘累加找对的次数

If s=4 Then‘如果找对四次

Y=MsgBox("恭喜您成功了!!!", 0, "过关了!")‘弹出成功消息框

If Y = 1 Then‘消息框返回确定值

End

End If

End If

End Sub

Private Sub Timer1_Timer()

Text1.Text=g‘给文本框赋初始值

g=g–1‘每隔1秒,文本框中的数值减1

If g=0 Then‘如果时间到

z=MsgBox("失败了,继续努力!",4,"时间到!") ‘弹出失败消息框

If z=6 Then‘如果单击继续努力

s=0‘计数器清零

g=30‘重新赋初始值

Else

End‘如果点否,退出程序

End If

End If

End Sub

参考文献:

游戏程序篇3

教材与学生情况分析

本课是河北省中小学信息技术电子教材VB程序设计分册中第四单元中的内容,课时为两课时,软件版本为VB6.0。在本课之前,教材已涉及程序设计的基本概念、VB的基本操作以及顺序结构中用到的简单控件、常量、变量、表达式和函数等知识,为本课的教学奠定了基础。本课将学习利用分支结构控制程序的流程,学生通过学习能够处理多分支问题并作出正确判断,并能用流程图表示程序的执行过程。

本课的教学对象是初二年级学生。通过前面的学习,学生已经掌握了VB程序设计的概念和一般过程,能够完成对象的属性设置和事件添加,并能够运用表达式和函数来解决问题。另外,前几节课的活动以学生学习和生活中的常用软件为原型进行程序设计,激发了学生开发复杂软件的兴趣,所以学生迫切希望找到解决问题的方法。

教学目标

知识与技能目标:理解并掌握Timer控件和Timer事件的用法;掌握Rnd函数的用法;能够合理运用关系表达式和逻辑表达式;能够用IF语句来处理多分支问题并作出正确判断;能够使用流程图表示程序的执行过程;能够处理嵌套的分支结构。

过程与方法目标:通过开发“接纸团”小游戏,掌握程序设计的一般过程;能够测试和调试程序;通过不断探究解决问题,能够自主完成一些任务。

情感态度与价值观目标:在游戏的不断完善中体验迭代的思想;在实现程序功能中体会用户体验的重要性和程序设计的意义。

游戏设计与实现

1.游戏功能设计

基于以上分析,本节课将要求学生完成一个“接纸团”游戏的设计任务,实现键盘控制、计时和物体随机运动等基本功能,具体方案如上页表所示。本游戏的开发分两个版本,完成前面四个功能为“接纸团V1.0”版本,实现全部七个功能为“接纸团V2.0”版本。

2.游戏界面设计

本课需要用到的控件有Image、PictureBox、Label、Timer。Image控件用来创建ImgLaji对象和ImgTong对象,分别显示纸团和垃圾桶;PictureBox控件用来创建一个供ImgLaji对象和ImgTong对象活动的区域,相当于一个容器;Label控件用来创建Label1对象和Label2对象,前者用来说明后者的功能,后者用来显示得分;Timer控件用来创建一个计时器对象,用来统计游戏时间和模拟ImgLaji对象自动往复的匀速下落。下图是本课案例的界面,学生可以以此为参照展开设计,使程序界面更美观。

3.程序编写

实现“接纸团V1.0”的功能需要用到Timer事件、IF单分支和双分支语句及条件表达式,具体代码省略。

教学实践

本次教学为两节连堂课,笔者设计的教学流程为:创设情境,分析需求针对需求,设计界面任务驱动,层层递进拓展提升,归纳总结。

1.创设情境,分析需求

教师以游戏的设计作为活动和内容的载体,贴近学生的学习和生活经验,从而激发学生的兴趣和热情。因此,本环节教师首先让学生回忆玩过的游戏并思考其功能,引导学生展开讨论,找出与本课主题相关的游戏功能并总结。在此基础上,教师再让学生思考如何设计一个“接纸团”的游戏。学生积极讨论,提出应对策略。教师积极反馈学生的回答,并通过引导使其在脑海里建立一个解决的蓝图,接着运行“接纸团”游戏案例,引导学生用自己的语言描述游戏的功能,从而为学生的蓝图插上翅膀。

2.针对需求,设计界面

本环节包括分析阶段和搭建阶段。

在分析阶段,教师首先引导学生思考教材中的“对象事件分析表”如何实现程序的每个功能,接着让学生检查表中是否实现了程序的全部功能,如果不能,说明理由并进行完善。在分析过程中,让学生体会如何把自然语言转化为编程语言,实现需求分析中的功能。

在搭建阶段,则由学生根据已有知识,参照上页表格中要求的控件,完成界面的设计。在此过程中,学生会遇到新的知识,如Timer控件。对此,学生以小组形式讨论并总结控件的添加方法。教师对学生的回答给予积极反馈,并纠正和补充说明。

3.任务驱动,层层递进

这一环节,根据游戏的功能划分为四个阶段。

①利用ImgLaji对象实现匀速下落一次。

首先,让学生利用已有知识实现ImgLaji对象的下移运动,并分析此效果存在的不足,从而引出Timer控件和Timer事件。然后,教师系统地介绍Timer控件的重要属性和Timer事件的执行原理,并引导学生分析Timer控件的Enable属性与其他控件的Enable属性的不同。学生在对以上知识有了一定的认识后,利用Timer事件实现ImgLaji对象匀速下落并运行程序。此时会出现ImgLaji对象在下移时超出Picture1范围的新问题,以致看不到第二次下移运动。

教师引导学生分析新问题,得出“ImgLaji对象在下移过程中如果没有超出范围则继续移动,否则停止移动”的解决办法。此时,给学生介绍选择结构和单分支IF语句,并利用流程图描述程序执行过程。接着,教师引导学生学习条件表达式,并比较其与数学表达式的异同,编写单分支结构代码实现判断ImgLaji对象超出范围停止的功能。

游戏程序篇4

 

一、手机游戏现状分析

 

(一)手机游戏的发展

 

随着智能手机的性能不断加强,从事研究游戏市场的专家们普遍认为:手机游戏还将继续强劲地增长。一些大型发行商已将其他类型的游戏带到移动设备上,将尽可能多的用户吸引到一款颇具深度的核心游戏之中,手机游戏已经成为游戏产业中最大的一个领域。‘互联网+’行动计划,让移动互联网、云计算、大数据、物联网与现代制造业结合,手机上网流量费率的降低,将会有更多的用户消费手机游戏。给手机游戏行业带来发展带来巨大的发展空间。从而对手机游戏软件开发人才带来了巨大的需求

 

(二)手机游戏开发的人才需求

 

经过手游市场的井喷式发展后,部分专家认为手游发展前景堪忧。但笔者认为这充分说明了手游开发人才匮乏,开发产品质量不高,重复率高所造成。据CNG中新游戏研究显示:目前在的国内手游行业对于人才匮乏的问题,一直都没有得到根本改观。对于人才的需求永远是无法满足公司的需要,众多手游业巨头,奔赴全国各地的各大高校,将人才争夺战打进了校园。还出现了不断的从各大公司去挖其他公司的基层人员的现象。未来中国手游人才的争夺会更为激烈。

 

(三)手机游戏程序人员所需知识

 

通过对市场的分析了解,手机游戏程序员应具备的知识和能力要求如下: 游戏程序设计方面:C++程序设计入门;算法与数据结构方面:算法分析,数据结构,基本算法,XML库的使用等;Windows程序设计方面:消息,GDI绘图,游戏工具与MFC,网络编程基础;游戏数学和智能应用方面:游戏中的坐标系,矢量、矩阵,几何碰撞,物理模拟,人工智能与寻路算法;游戏技术与应用方面:概论,游戏地图系统,GUI系统,任务系统,优秀的声音引擎BASS,Cocos2D-X引擎,Unity3d引擎。当然还包括了平台和多媒体压缩加密等技术

 

二、手机游戏人才的培养

 

(一)高职计算机应用专业学生所学的课程

 

目前大部分高职院校计算机应用专业所开课程来看,基本上都开设了:如计算机数学基础、电路基础、计算机组成原理与汇编语言、C++、C#、Java、数据结构、微机接口技术、数据库基础与应用、操作系统、计算机网络、多媒体技术基础、软件工程、网络管理、网络信息制作与等相关或相近的计算机专业核心课程。与前面所讲的手机游戏人才所必的专业知识和能力有很大程度的相同,为我们培养手机游戏程序人才打下了良好的基础,也就是说我们只需在计算机应用专业人才培养上适当的增加几门课程,就能为计算机应用专业毕业生增加新的好的就业岗位和努力方向,拓宽了就业渠道。

 

(二)需要增设的课程及课时安排

 

(1)Lua语言:Lua 是被设计成很容易和传统的整合且一个小巧而简单的语言由标准C编写而成,对于有C/C++基础的学生学习起来是一件轻松的事,且几乎在所有操作系统和平台上都可以编译,运行。同时Lua是一种易整合语言;可以将一些已经存在的高级组件整合在一起实现一个应用软件,Lua不仅可以整合组件,还可以编辑组件甚至完全使用Lua创建组件,Lua与很多的脚本语言在某些方面有着共同的特色。

 

除了作为整合语言外,Lua自身也是一个功能强大的语言。可以和c/c++集成,可以很容易与c/c++代码相互调用;可扩展性,Lua很容易与C/C++、java、等其他语言接口;简洁、快速、高效率,Lua本身简单小巧,但功能强大,很容易实现一些小的应用,并且是“基于寄存器的虚拟机”,速度也快,是目前平均效率最高的脚本语言;可移植性,几乎可以运行在所有系统上,如果你有一个C的运行环境,你就可以运行Lua;动态更新,Lua可以通过新类型和函数来扩展其功能,允许最大限度多态出现,并自动简化调用内存管理的接口,函数均可以接受高级参数,使函数更为通用,甚至可以直接修改类库源代码,仅保留需要的函数。目前很多家移动平台开发公司都采用Lua作为脚本编写的语言。

 

(2)游戏引擎。作为游戏的核心,一款优秀的具有通用性和标准化游戏引擎经常被用来制作很多游戏产品。除需要具备让游戏运行的基本功能,能轻易地更新换代,同时又可以重复利用,实现封装,提供简洁高效的程序接口。只需要一行简单命令,就可以让游戏中的人物完成相应的动作。下面介绍两个目前游戏公司在开发过程中普遍使用的引擎。

 

作为2D平面游戏开发平台中,Cocos2D-X是引擎发展的佼佼者。最新稳定的版本为2.0,采用了C++语言编写,所以可以同时支持多个手持设备平台。另外,Cocos2D-X引擎也为使用C++语言的开发找到了一条进入Android和iOS以及Windows Phone平台开发的捷径。它更加完善、稳定和易用,提供可视化的编辑器或者第三方插件,提供了所见即所得方式,加快了制作的速度,保证游戏的品质,减少开发人员的错误。这些编辑器或者工具,所有的游戏参与人员都有可能使用它们,非常容易上手。Cocos2D-X已成为是移动平台领域应用最广、使用最多的游戏引擎。

 

Unity3d支持javascipt和C#脚本语言开发,目前来看unity3d是做3d游戏最好的引擎,,一是功能强大,再就是易用,它的操作非常容易。如果你不使用Pro或者Mobile的内容的话,Unity3d就是完全免费的。再有就是对3D模型的兼容性,几乎任何3d模型都可以导入到unity中,可以说是一个很方便的特性。

 

三、结语

 

所以不管是Lua还是两个引擎对于计算机专业学生来说,由于在校学习过C++、JavaScript或者C#,所以非常容易上手,在网上都有很多完整且系统的教程,完全可以自学摸索,达到一定高度。如果在校时开设了这些课程对于学生来说就是提供了一个新的学习目标和方向,新的就业岗位,从课时安排上,Lua用10个课时,两个引擎选择一个进行30课时的讲解就行了,更多的时间留给有兴趣的学生自己去实战和总结。对于市场上手游程序开发人员需求的不足,计算机专业学生只需要利用少量的时间学习,就能很快成为手游程序入门级人才,当然要成为高手,还需要大量的实践和经验。

游戏程序篇5

关键词:计算思维;轻游戏;程序设计;抽象;自主学习

作者简介:曾夏玲(1984-),女,江西泰和人,江西科技师范大学讲师,研究方向为计算机教育。

基金项目:2014年江西省高等学校教学改革研究课题“基于多元智能理论的教育游戏设计策略的应用研究――以《C语言程序设计》为视角”(编号:JXJG-14-10-10),主持人:付淇。

中图分类号:G712 文献标识码:A 文章编号:1001-7518(2015)11-0079-04

“轻游戏”是香港中文大学尚俊杰等人2005年在《轻游戏:教育游戏的希望和未来》一文中首次提出的概念。“轻游戏”是具备电脑游戏内在动机的一种教育软件,可以用公式来简单定义:“轻游戏”=教育软件+主流游戏的内在动机[1]。“轻游戏”的特点是不刻意追求游戏的形式和外表,而是努力将游戏的内在特征融合进去,从而达到平衡游戏中的教育性和游戏性的目的,最大限度地得到社会各界的认可[2]。“轻游戏”突出其游戏与课程内容紧密结合、符合课程教育模式和规则、使用时间恰当、设计简单而实用性强等特点,为游戏应用于教育带来了新的契机。“轻游戏”将游戏娱乐融合进学生的课堂,营造一种积极主动、轻松有趣的课堂氛围,使学生在参与游戏中主动学习,是教育游戏的一个新的发展方向。

一、计算思维能力培养现状

(一)计算思维

计算思维是2006年由美国卡内基・梅隆大学周以真教授提出并定义的,计算思维就是运用计算机科学的基本概念进行问题求解、系统设计以及人类行为理解的思维活动。同时她指出,计算机思维是每个人的基本技能,我们应当使每个孩子在培养解析能力时不仅掌握阅读、写作和算术(Reading wRiting and aRithmetic――3R),还要学会计算思维[3]。“计算思维”一经问世,就散发着超强的魔力,引领着国内外计算机科学界尤其是计算机教育界的发展方向。美国麻省理工大学、斯坦福大学、卡内基・梅隆大学、普渡大学等著名高校纷纷设置了面向全校的以问题求解为核心的“计算思维”通识课程[4-6]。2010年中国9所高校发表的《九校联盟(C9)计算机基础教学发展战略联合声明》中,把“计算思维能力的培养”作为计算机基础教学的核心任务[7]。

计算思维的提出,对人们掌握以计算机角度分析解决问题的能力提出了更高的要求,因而对高等学校计算机基础教学中对学生计算思维能力的培养提出了更高要求。计算思维能力的培养在计算机程序设计语言中得到了很好的体现。在程序设计类课程的教学中,培养学生掌握利用计算机解决问题的思路和方法,如问题分析、模型建立、算法设计和实现等,这些都在程序设计类课程中得到了很好的体现,而这正是培养计算思维能力的重要内容,即学习从计算机的角度去分析和解决问题的思路和方法。提高对学生计算思维能力的培养,使学生在处理问题时,能以计算机角度来分析问题,并利用计算机作为一种不可或缺的工具来解决问题。从而实现对各种信息更深层次的加工处理,并能将掌握的专业知识更好地应用到解决实际问题及科学研究与生产中,促进科技进步和社会发展。

(二)培养现状及教学难点

在程序设计课程教学过程中,就省内多数高职院校的教学实践来看,普遍存在对学生计算思维能力的培养重视不够。课程教学中存在着以下几方面的问题:

1.学习程序设计的同时要学习一门计算机语言,因而在课堂教学中很容易陷入语言基础知识讲解和传授的误区,偏重语言忽视程序设计,枯燥乏味,学生学习兴趣不高。

2.学生对计算思维的认识不够,多数认为程序设计课程就是学习编程,而普遍认为与自己的专业不相关,今后也不会从事相关工作,学习积极性不高。

3.缺乏较好的教学方法和手段。多数教学使用的案例是为了讲解语法结构而设计,零散、短小、关联不大。学生学习后只是掌握了语法知识,不知道该如何解决问题,能解决什么实际问题。

计算思维是程序设计语言的灵魂,它的本质是抽象和自动化[8]。抽象是计算思维的核心之一,因而在教学中仅从理论和逻辑上讲授,学生很难理解,学习兴趣不高。程序设计课程具有逻辑结构复杂难理解、语法零散易错等难点,对学生的逻辑思维能力要求较高,因而在教学中若一味地采用传统教学方式来灌输讲授,学生觉得枯燥无味缺乏动力,更让学习基础本就薄弱的高职学生惧怕学习而失去学习兴趣。

如何在程序设计课程教学过程中,训练和培养学生的计算思维能力,使学生掌握用计算机的思维去思考问题和解决问题,是一个非常值得探讨和研究的问题。

二、“轻游戏”的运用及教学模型

“轻游戏”的游戏性、趣味性、简单实用等特点,在教学中能很好地吸引学生的学习兴趣。将游戏娱乐引入课堂,营造轻松良好的学习氛围,把枯燥的程序设计理论知识贯穿在游戏中学习,使学生主动学习并积极的内化知识,从而理解程序设计抽象的算法思维,程序设计也将变得容易而富有趣味。因而,笔者从培养高职学生计算思维能力的角度出发,将“轻游戏”引入到程序设计课堂教学中,通过游戏化教学案例的设计,使学生在游戏中主动学习,积极内化知识并理解抽象的算法思维,从而培养学生的计算思维能力。

(一)“轻游戏”的优势及运用原则

“轻游戏”注重其游戏的设计简单、与课程内容紧密结合。游戏的目的是激发学生对程序设计抽象内容的学习兴趣,加强对程序设计抽象算法的理解;在游戏的过程中建立起一套适合自己的逻辑思维方法和思考问题的方式,掌握从计算机角度分析解决问题的思路和方法;加强对学生编程方式、算法思维能力及程序实践能力的训练,潜移默化的帮助学习者内化计算思维方法,从而培养学生的计算思维能力。

“轻游戏”引入课堂要适当、适时、适度,其运用应遵循以下几个原则:

1.要有明确的教学目的。游戏的选择必须与课程内容相关,符合学校的课程模式和规则,其每部分设计大小尽可能控制在一堂课时间以内。

2.保持教育与游戏的平衡。游戏的选择即要考虑趣味性,亦要考虑其教育性,根据学生的学习水平及学习特点,设计合适的游戏案例。积极监督游戏过程,合理安排游戏进程,在保持游戏的娱乐性同时要保持游戏的教育性。

3.实现教学内容的综合。游戏的设计往往需要综合运用循环、数组等教学内容。通过游戏程序的开发,将课程难点内容综合在一起,实现知识的串联及综合运用。学习者在相关知识的综合运用学习中,提炼并培养其计算思维方式。

(二)“轻游戏”教学模型

对于计算思维的抽象等特点,将游戏化教学案例引入课堂教学,通过游戏娱乐的方式培养学生的计算思维能力能起到事半功倍的成效。根据程序设计课程教学的特点及游戏化教学的特点,构建了以下教学模型,如图1所示。

在“轻游戏”教学案例实施中,教学者可利用游戏进行新课导入,创设情境,激发学习兴趣;进而游戏辅助教学,知识讲解,使学习过程变被动为主动;亦可利用游戏对学生进行巩固练习,制定游戏设计目标,鼓励学生小组协作完成及多种算法实现,让学生在枯燥的练习过程中快乐学习、主动探索,切实提高实践动手能力,进而达到对学生计算思维能力的培养。

在教学中,教学者是关键。因而加强对学习者计算思维能力的培养,首先要提高教学者对计算思维及计算思维能力培养重要性的认识。要求教学者在理解计算思维的基础上,根据课程特点精心设计教学内容和游戏案例;在课堂教学中合理开展游戏案例的讲授,尝试不同的教学方式,创新教学方法;在教学中提炼并展现隐藏在知识背后的计算思维方式,让学习者感受计算思维的魅力和重要性,启发学习者的求知欲望和心理共鸣。

三、“轻游戏”教学案例分析

下面通过对两款“轻游戏”典型案例的分析,分别是算法领域具有代表性的“汉诺塔游戏”和综合了选择、循环、函数等知识点的分层式“猜数游戏”,阐述“轻游戏”在程序设计课程中对高职学生计算思维能力的培养。

(一)汉诺塔游戏

在讲授程序设计语言课程的“循环结构”时,会介绍“递归”这一难点问题。“递归”问题本身很抽象,往往教师讲授后,学生仍然不能很好地理解“递归”算法。这里引入“汉诺塔游戏”来解决经典“递归”算法问题――汉诺塔问题,游戏设计如图2所示,实现将n个圆盘从A柱,利用B柱搬移到C柱。

教师演示或学生操作移动木块完成游戏,以完成游戏的方式展示“递归”算法过程,使学生轻松愉快的掌握知识点的同时,理解并掌握“递归”算法思路。以游戏的方式讲解一些难讲难解的问题,不仅可以让学生愿意主动去探究,而且可以把抽象的问题形象化,抽象的算法思维游戏化。学生在完成游戏的学习过程中掌握算法思路,进而根据算法写出程序,完成教学任务,为学生掌握抽象难解算法问题提供了更好的教学方式和学习方法。

“轻游戏”的教学模式,让学生通过游戏的操作过程进行知识点的亲身体会,身临其境的感受“递归”算法,从而积极主动地内化抽象难点知识,挖掘程序设计的抽象算法思维。将“轻游戏”引入课堂,有效地克服了传统教学单一介绍语法知识枯燥无味的缺点,让学生主动参与到游戏教学中来,激发学生的学习兴趣并培养学生的自主学习能力。在游戏问题的求解过程中,使学生掌握分析问题、算法设计及代码实现的思路及方法,培养学生掌握利用计算机语言解决实际问题的方法和思路,以娱乐的方式理解程序设计抽象的算法思维,培养学生的计算思维能力。

(二)猜数游戏

在日常生活中普遍玩过的猜数游戏,笔者通过给定不同的游戏条件,设计了分层式“猜数游戏”,使问题由易到难、循序渐进,很好地将选择、循环、函数等知识点综合在一起。分层式“猜数游戏”设定的不同条件及涉及的知识点如表1所示。

该游戏案例选择简单易懂的猜数游戏为题材,通过设定不同的条件,将程序设计课程中的主要知识内容循序渐进地逐一讲解。另外根据学生的学习水平及掌握情况,可考虑对游戏内容进一步提升,如文曲星猜数游戏、素数探求等,亦可让学生分小组协作完成提升游戏。

以培养学生计算思维能力为目标,设计由浅入深、循序渐进的分层式游戏案例,改变传统课程授课中侧重向学生介绍语法结构的做法,为学生营造一个自主探索的游戏空间。

1.趣味游戏化案例的设计,激发和维持学生的学习兴趣和学习动机,使学生在完成游戏案例开发的过程中掌握相关知识点的学习,培养学生的自主学习能力。

2.分层式的案例设计实现了知识的综合学习,教师亦可照顾到全体学生的学习进度,并可引导学有余力的学生在当前案例基础上进行深一步的拓展提升,培养学生的自主探究能力和创新意识。

3.循序渐进式的游戏案例演变,发挥学生的自主探究学习心理,引导学生逐步向深层次的知识和技能学习,并在游戏案例逐步求解的教学过程中,培养学生掌握分析问题、问题建模、算法设计和程序实现的方法和思路,培养学生的计算思维能力。

“轻游戏”在国内的发展和研究仍处于起步阶段,是教育游戏的一个新的发展方向。笔者从培养高职学生计算思维能力的角度出发,将“轻游戏”教学模式引入到计算机程序设计课程的教学中,构建了基于游戏化教学的教学模型,并以具体的游戏案例设计举例,分析了游戏化教学对高职学生计算思维能力的培养。“轻游戏”的教学模式将游戏娱乐引入课堂,使学生主动参与到游戏知识的学习中,从而有效地激发学生的学习动机和学习兴趣,培养学生的自主学习能力。学生在游戏案例的教学中主动学习并积极内化知识,从而理解程序设计的抽象算法思维,掌握用计算机语言解决问题的方法和思路,加强对计算思维能力的培养。因而能有效地改善目前计算机基础教学忽视计算思维能力培养的现状,给程序设计课程的教学提出了新的思路和探索,也为高职学生计算思维能力的培养提出了新的研究思路和方向。

参考文献:

[1]尚俊杰, 李芳乐, 李浩文. “轻游戏”: 教育游戏的希望和未来[J]. 电化教育研究, 2005(1):24-26.

[2]尚俊杰,庄绍勇, 蒋宇. 教育游戏面临的三层困难和障碍――再论发展轻游戏的必要性[J].电化教育研究, 2011(5): 65-71.

[3]Wing J M. Computational Thinking[J]. Communications of ACM, 2006, 49(3): 33-35.

[4]MIT. Introduction to Computer Science and Programming[EB/OL]. http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-00-introduction-to-computer-science-and-programming-fall-2008.

[5]Stanford. Introduction to Computer Science | Programming Methodology[EB/OL]. http://see.stanford.edu/see/courseinfo.aspx?coll=824a47e1-135f-4508-a5aa-866adcae1111.

[6]CMU. Principles of Computation[EB/OL]. http://cs.cmu.edu/~tcortina/15-105sp09.

[7]九校联盟(C9)计算机基础教学发展战略联合声明[J]. 中国大学教学,2010(9).

游戏程序篇6

关键词 游戏 注意力 VB教学

中图分类号:G718.3 文献标识码:A 文章编号:1002-7661(2017)05-0003-02

一、引言

游戏是人类的天性,孩子们无不痴迷于游戏。即使成年人,也常常经不住游戏的诱惑,毕竟,玩总是快乐的!把教育作为游戏来看待,揭示了游戏在教育中的重要意义。职业学校的学生在学习中的注意力比普通高中的学生更难集中,对知识的理解更难以掌握。如果能很好地利用游戏为教育手段,就能提高教学效果,让课堂教学事半功倍。

职业学校的学生很多都玩电子游戏和网络游戏,有些学生甚至沉迷于游戏世界,若是能利用游戏来让学生从中学到知识,就能引起学生的学习兴趣,对教学有很大的好处。

二、当前VB教学的无奈之处

Visual Basic程序设计,简称VB,具有可视化、面向对象、采用事件驱动编程机制的特点。简单易学、功能强大,是一门实用性很强的课程,也是我校职高计算机专业的一门必修课,教学内容分为设计程序界面和编写程序代码两部分。对学生来说,程序设计的思维方式、概念都是全新的,普遍觉得枯燥、难懂、不感兴趣,接受起来比较困难。

在原有的传统教学模式中,VB课程的课堂教学是老师进行知识点的介绍、举例、讲解、分析、总结等,学生被动地进行听讲并记忆,在上机实践环节中,学生提前基本不做什么准备,在上机过程中基本上就是将笔记或教材上的例题在VB集成环境中输入并运行;或者是自己参照例题完成课后练习,如果有错误,也不求甚解、应付到下课就行;课后也不进行总结,课堂教学和上机实践没有联系是相分离的,更不可能做到相互促进。所以绝大多数学生普遍反映难学难懂,教学效果不甚理想。因此,在程序设计教学过程中如何找到一种比较新颖的教学方法,一直是广大计算机教师感兴趣的课题。

教学中,常遇到学生不入门、不细心、常出错等问题。比如,常把对象名text写成txet;事件与属性分不清;有时把框架和标签混用,枯燥的代码更是觉得难以理解,不愿意研究,归根结底还是兴趣不高造成的。

职高学生逻辑思维普遍不强,平时做事经常就丢三落四,没有头绪,更何况是不能有一点错误的编程语言,在抄代码时也有少个字母、多个空格等等基础错误。其原因还是对这门课不感兴趣,基础又不好,对枯燥的字符难以集中注意力。

电脑游戏就是由各种计算机编程软件编写的游戏程序,其中的代码里包含了所有编程知识。学习枯燥乏味的VB语言可以从学生兴趣点出发,利用游戏教育,在轻松活跃的课堂氛围中掌握VB知识。

三、VB课堂使用游戏后的优势

1.实例一:《打地鼠游戏――VB时钟》

时钟是一个标准控件,按照书本上的介绍,我们学习时认识时钟的名称、属性、事件,应用它做一个实例。课堂气氛沉闷又乏味,对时钟的应用难以灵活应用。

但是应用游戏实例后,在课堂开始就引起了学生的兴趣。在这节课堂开始之初,就和学生一起来玩了一个类似打地鼠的游戏,该游戏就是一个由VB制作的游戏程序,围绕这个游戏的特点给学生讲解有关时钟的作用和应用,及程序界面的制作。

整堂课由游戏开始,游戏结束,课堂气氛生动有趣,学生在学习的过程中能跟着老师的节奏,注意力比较集中,特别是能完成程序制作的学生更有成就感,对这门课程也多了兴趣。俗话说,“兴趣是学习的最大动力”,对学生的以后深入学习也有很大帮助。在这堂课中教师最大限度地利用了游戏教育,把游戏和教育和谐的结合应用,达到学生有兴趣,知识的掌握在游戏过程中实现的目的。

2.实例二:《数码管倒计时――VB过程》

过程是一个比较抽象的概念,按照书本上的介绍,过程是能完成某一特定功能,且能被反复使用的一段程序代码。要理解这个概念,并能灵活应用和调用过程,需要学生能认真解读过程概念和多次实践才能掌握。教师即使把概念强调多遍,在应用时学生还是不知道过程是什么,比如在后来的实践中很多同学不知道command_click()过程可以被另外的代码段调用。

但是在这个实例中教师应用课堂游戏,并利用比赛的形式,把学生分成四组,一、二两组利用过程写代码,三、四两组不用过程写代码,每组要制作出数码管倒计时,看哪一组能准确又快速的设计出程序。在第二环节,可以让第一、二组的同学来修改第三、四组同学编写的代码,让学生感受到过程的优势。在第三环节,让每个同学修改代码,增加循环的次数或顺序。在这节课中主要的重点是学习窗体过程的概念、定义和调用,过程应用的优势。课堂在游戏的氛围中让学生又学又玩,掌握知识点。

游戏的根本特征是有趣和令人愉快,这是游戏的魅力所在。人的成长是一个大过程,一个“成为人”的过程, 在这个过程中,游戏始终伴随着人类个体的成长。特别是职业学校的学生基础差、学习积极性不高、注意力分散的特点,把游戏加到课堂中,能使学生回到孩子的时代,寓教于乐。VB软件制作的是各种可以使用的程序,与实际环境息息相关。应用学生平时在玩的电子游戏等电脑游戏程序为实例,能让学生更有兴趣,制作出来更有成就感。很多电脑游戏是学生熟悉的游戏,对于制作他们的方法更能引起学生的好奇,从而把枯燥的课堂转化为有滋有味的游戏环境。

四、如何创设、挖掘游戏资源

1.教材实例

在VB教材中有很多的实例,包含游戏程序,教师可以灵活应用教材中的实例,创设多种情境,把知识点在实例中得到体现。比如:用电子储物柜来联系实际情况,让学生掌握数组和循环的知识点。

2.网络游戏

在网上有很多的电脑游戏,很多是可以借鉴应用的例子。比如打地鼠、连连看、网游中的人物装备属性界面、单机游戏的人物控制等。游戏网站有:http:///,http:///等。

3.实际生活中的例子

实际生活中用到的各种程序系统更多。比如:计算器、记事本、收银台、钟表等,很多都是VB教学的好例子。

五、游戏教W的要求

美国心理学家布鲁纳认为,最好的学习动力是对所学材料有内在兴趣,而最能激发学生兴趣的莫过于游戏。它的基本要求是对“教”和“乐”的严格界定――教,必须是各科教材中的内容,不能脱离原有的教育材料,尤其是其中的重难点内容;乐,必须有比较成熟的游戏法则,有很强的竞赛性和极大的趣味性,在一定的前提下,给学生较大的发挥主观能动性的空间。因此,游戏内容的选择必须与教材紧密联系,在设计游戏时,要充分考虑教学目的和要求,注重教学效果,要以教学内容为中心,根据教学内容考虑游戏的内容和形式。

参考文献:

[1]庞桂美.论游戏及其教育价值[J].天津市教科院学报,2002,12,(6).

游戏程序篇7

完成一款游戏的开发需要游戏策划、游戏程序、游戏美工三个团队的分工合作来完成。如果说游戏策划赋予了一款游戏灵魂和框架,游戏程序则是让游戏像引擎一样得以运转,那么游戏美工就是为游戏增添血与肉。游戏中可以看到的角色、场景、物件无不出自游戏美工之手,游戏美工就是游戏虚拟世界中的造物主。游戏美术制作已经发展到了当今的大规模生产,从国内、国外的游戏制作团队中不难发现,很多的美术设计师参与其中,可见游戏的美术设计吸引着很大的市场,也影响到游戏的发展方向。市场对游戏美术开发工作的愈加重视,计算机硬件软件水平的飞速发展的同时,新兴的游戏制作技术不断的提高和涌现,给美术设计师提供了更广阔的创作空间和竞争机会。游戏美术设计师是游戏美术制作过程中的一个多岗位的统称,其中包括:游戏UI设计师、游戏原画师、游戏概念设计师、游戏三维美术设计师、游戏动画与特效师、游戏关卡设计师等。

1游戏美术师应该具备的素质

首先需要具备良好的专业素质,主要包括下面几个方面。(1)掌握美术设计的内容与意义;(2)绘画基础包括鉴赏能力、塑造能力、手绘能力等;(3)美术设计基础与美术设计基本原则;(4)程序基础包括程序语言基本原理、以程序员角度思考;(5)计算机图形图像学基本常识与实现设计的优化。除此之外,还应该具备掌握特殊工具完成特殊功能应用,游戏概念设计知识的理解和运用,以及平时所涉及到的游戏经验。

2游戏美术设计中设计师分工

2.1UI设计师早期,计算机游戏是在程序员的简单界面下诞生的,随着游戏的发展,美术设计越来越重要,一款好的游戏界面设计也影响着程序设计,操作方法等,也同样可以吸引玩家的眼球,构建起便捷的交互方式。目前很多国内的游戏市场大部分游戏界面设计都采取借用其他游戏的实例为参考,更改布局,规划整体安排,要想有所超越,只有在具体制作和视觉表达效果上下功夫。

2.2游戏原画师与游戏概念设计师关于原画师这个概念,最早其实原画师这个职业和游戏行业不太相同,原画师属于动画行业,主要工作是为动画绘制关键帧。做游戏概念设定的人被称之为游戏原画师。专业一些的说法应该是“游戏概念设计师”或者“游戏2D美术师”。这项工作尤为重要,是后续工作的基础。根据项目的要求做出角色、场景、道具等的设计,让后续的3D或者2D人员能很容易的读懂所设计的东西,并需具体表现,标识清晰,便于制作。宣传画也有可能成为部分的工作内容。

2.3游戏三维美术设计师“游戏3D美术师”,工作内容包括:根据游戏概念设计图对角色,场景,道具等物件的三维模型创建,并对游戏引擎所需的多项贴图进行绘制和制作,根据具体的项目要求来完成三维美术制作流程中每个具体的工作环节目前市场上包括几种类型,普通游戏美术制作、次世代游戏美术制作、“伪3D”游戏美术制作等。这些游戏项目中难易复杂程度和制作流程都各有所不同,但设计制作工作都重要且繁琐,完成的物件直接影响到引擎中的显示和最后的效果,如在制作过程中遇到问题,需及时的与游戏概念设计师做好沟通。

2.4游戏动画与特效师游戏动画师在游戏开发中需要完成各物件的动画调节,如果运用了动作捕捉设备,动画师需要进行动作的整合和优化。在片头或者过场动画中,游戏动画师也需完成大量的动画调节工作。游戏特效设计在游戏开发中是比较特殊的一个环节,设计师除了担负特效设计与制作,还要对特效实现者进行监督,在特效动画的运动规律(例如速度感、撞击感、承重感、动力学模拟等)给予指导,甚至直接参与编写特效脚本,保证特效制作的质量。但在目前很多国内外初具规模的游戏公司中,游戏动画与游戏特效师都是同一职位。

2.5游戏关卡设计师关卡设计的重要性在于它是游戏性的重要组成部分。游戏的节奏,难度阶梯等方面很大程度上要依靠关卡来控制。关卡设计的工具是什么?是引擎,也可以说成是一个平台。游戏关卡设计师需与美工及程序员合作,根据游戏设计方案进行游戏关卡的设计和制作,包括但不局限于构建基础游戏关卡图,场景,集成游戏关卡,编写脚本并调整人物AI等。目前,游戏行业中很多商业游戏的都是用几款比较著名的游戏引擎,完全流程化、模块化控制。这些先进的游戏引擎也提供给关卡设计师人性化的界面操作,引擎本身自带强大的功能模块以及可自定义的扩展功能。

3美术设计师在游戏开发团队合作中发挥主动性

对于游戏开团队合作的重要任务是提升游戏的可用性。对于游戏美术设计的重要任务是提升游戏视觉设计的可用性,其包括:采纳团队的意见与传达整体风格达到实现程序设计可用、概念设计可用、视觉设计可用三点之间可用性在视觉呈现上的平衡。在游戏团队中,美术设计不仅仅是设计美术元素,首先美术设计师要明白,在团队合作中的美术设计性质已经不是完整的设计,是在策划和程序的基础上的设计,同时游戏的视觉呈现也是团队汇总所有信息的最后一步,这就要求设计师在美术设计的角度做出设计可用性的折中。美术设计师主动参与游戏开发中的目标达成是必要的,一个个的目标达成是游戏完成的一个个里程碑。清晰全面的了解游戏,会有助于团队把握游戏的整体目标。设计师在美术设计方面应主动提出游戏目标,从而扩充并完善既定游戏目标,令游戏开发步入正轨。作为一个游戏美术设计师应该主动提出你认为能够得到团队赞同的目标。得知自己是否被其他人赞同,提出一些问题,关于市场,游戏的创作题材,预算,进度要求,与其他游戏撞车的地方等等。

游戏程序篇8

J2ME(Java 2 Micro Edition) 是近年来随着各种不同设备,尤其是移动通信设备的飞速发展而诞生的一项新的开发技术。它定位在消费性电子产品的应用上,对设备的智能化、多样化,提供了革命性的解决方案,并因其“Write Once, run anywhere”的Java特性而提高开发的效率。

随着手机的日益普及、JAVA功能在移动设备上的实现,JAVA应用程序产生的手机增值服务逐渐体现出其影响力,对丰富人们的生活内容、提供快捷的资讯起着不可忽视的作用。本文主要介绍了一款手机吞吃蛇游戏,本设计着眼于J2ME技术的应用,采用JDK1.6,NetBeans 5.5作为开发工具,使用WTK2.5作为模拟器测试,开发一款吞吃蛇的手机游戏程序。本程序将老少皆宜的经典作品移植到手机上来,为更流行的硬件平台提供应用软件。这些都将能很好的满足未来人们对手机游戏的需求。吞吃蛇游戏基于JAVA平台编写,满足一般手机用户的娱乐需求。

关键词: J2ME;手机游戏;Java,吞吃蛇

手机吞吃蛇游戏系统分析

2.1系统需求分析

2.1.1游戏背景

贪吃蛇,是个简单的小游戏,但却能给人以放松,让我们从繁重的日常生活中解脱出来.而只有我们的身心得到了娱乐才能更好的投入到新的工作.现在的人,不管是已经工作的,还是还未进入社会的学生,都面临着很大的压力,而这样一款能让我们随时随地都能享受的游戏,其魅力还是不可估量的.

贪吃蛇,之所以取这样的名字,去用意还是很明显的.贪吃蛇其实并不贪,它是人不断向前追求的象征.就像现代的人只有不断努力向前才能得到自己想要的.而食物也是随机出现的,就像现在社会存在的机会,而我们只有找好自己的目标才能成功.

虽然现在市面上存在着各种各样的游戏版本,可是贪吃蛇其市场还是相当大的.因为它的特殊在于它能吸引人更深入,爱不释手.随着游戏速度不断加快,其刺激性也更强.

可以说该游戏的优势在于它的简单易行,不论是手机,还是小游戏机,都能很快顺利的运行.对于在外忙碌的人,不可能花费大量时间在娱乐上,大型游戏是行不通的,这样的小游戏刚好迎合了他们的需求.

手机吞吃蛇游戏基于JAVA平台编写,采用J2ME技术开发的一款手机游戏。手机游戏程序是一项精度要求很高的程序系统,因为其代码利用率很高。一个实时运行的最终作品,每秒都会运行成千上万行程序,绘图事件、键盘事件都会以极高的频率在后台等待响应,若有丝毫的差别都将很容易导致程序在运行不久后可能出现严重错误,甚至死循环。因此,其逻辑设计应当相当严谨,需将所有可能发生的事件及意外情况考虑在设计中。JAVA是基于虚拟机的半解释型编译系统,其执行效率较C++等完全编译后的程序会低很多,程序如果不进行精简和优化,将可能导致运行的不流畅。游戏的结束、开始、动态信息画面作为构成一个程序都是必不可少的重要部分。良好的用户界面更是吸引用户的硬指标,相关的美术构图和人性化设置也需要有一定的考虑。

2.1.2游戏功能

本游戏对游戏声音的控制、游戏等级的控制、最高分的记录、游戏暂停、游戏重新开始、游戏结束这些功能都要求能在手机模拟器上运行。

贪食蛇的玩法很简单,用键盘上的方向键控制贪食蛇的运动方向,游戏的目的是控制贪食蛇吃掉更多的食品,但是不能碰到四周的墙壁,也不能让贪食蛇的首尾相接,否则游戏失败。游戏最终是要在手机上允许。能够使用键盘控制贪食蛇的运动,生成新的点,并且能够根据点数进行记分.

2.1.3游戏的操作性要求:

易于学习: 既然手机游戏面向的是普通消费者而不是计算机专家,那么他们不可能深入的学习游戏技巧。消费者不会花几个小时去研究一个3元的手动操作的游戏。保持游戏的简单是最基本的要求。

可中断性: 多任务处理是手机生活方式的基本特征。手机用户常常在任务(如等一个电子邮件或者等车)之间有一小段时间。而游戏、日历管理、通讯和工作数据访问使用的是同一个设备。所以一个好的手机游戏应该提供短时间的娱乐功能,并且允许用户在游戏和工作模式之间顺利切换。2.1.4 游戏的实用性

丰富的社会交互: 不管一个游戏设计得多好,只要玩家找到了它的根本模式或者玩完了所有的游戏路径很快就会厌烦这个游戏。重要的是与别的玩家合作以增强所玩游戏的智力和随机性。在今天纷繁复杂的多玩家游戏中具有丰富社会交互的游戏证明是成功的。

2.2系统设计目标

2.2.1游戏设计思想

本科期间做过很多课程设计,大多规模很小。在数据库、各种应用软件和游戏中,我仍觉得对游戏的设计有极大的热情。因为其各个模块间的联系十分紧密,代码重复执行率高,当经过无数次的调试、修改后,能最终看到成品,有无比自豪的心情。大学期间做过图书馆管理程序等简单的数据库管理系统的课程设计,思想大致相似,变化范围有限,没有太多自己可发挥的余地。大家作品的最终结果都离不开同一个模式。相比一些数据库软件,游戏的设计有很多人情色彩和艺术思想的发挥,正式商业的软件的人性化界面和各个游戏间迥异的结构每每会让人有去开发的冲动。综合运用以前所学习的知识,设计一个JAVA手机游戏,并能实现以下的功能:游戏声音的控制、游戏等级的控制、最高分的记录、游戏暂停、游戏重新开始、游戏的结束。

手机已经与现代生活方式紧紧地结合在一起。他们是最普遍携带的个人用品中仅次于钥匙和钱包的东西。传统的台式机游戏将目标锁定在低级趣味的人和青少年身上,而手机游戏则每个人都可以访问的到——随时,随地。尽管每个手机游戏都不贵,但是巨大的使用量(如:每人每星期一个新游戏)将使得这个市场商机无限。但是,对于开发者来说,将控制台游戏迁移到手机游戏工程很大。因为他们所面向的对象、生活方式和分布式模型都有着极大的区别。

游戏程序篇9

关键词:Java;小游戏;魔方;Java语言

中图分类号:TP311.52

现代社会,电脑游戏爱好者云集,并且越来越多的人加入到这个行列中来,这一现象表明电脑游戏成绩斐然,成为IT产业中增长最快的部分之一。纵观IT产业的历史,计算机游戏已经成为技术创新背后的动力,玩者渴望更加强大的硬件计算能力;渴望游戏不受不同的软件的限制,即游戏玩家希望游戏可以运行在不同的操作系统之上,无论他们的操作系统是Windows还是Unix或者其他,无论是将图形强制在人工智能上还是网络安全性上,都希望可以畅通无阻。游戏开发者和玩家常常是前沿计算机技术的最早采用者。

1 游戏开发的基本概念和理论

1.1 游戏开发的背景和意义。本游戏开发的背景是出于小时候对小游戏的喜爱,以及现在社会的要求,对小游戏的开发就成为了我的毕业设计。小游戏开发的意义是:首先,这个游戏的开发能够增长Java水平,其次,就是游戏开发可以促使计算机业的技术提高,使中国计算机水平有所提高。再次,用Java编写程序可以使减少不必要的麻烦,即Java语言可以运行在不同的操作系统之上。

1.2 游戏开发的理论和概念。传统的游戏由于使用的语言只能运行在单一的环境下,没有可移植性,当游戏从一种操作系统放到另外一种操作系统下的时候,游戏就失去了他的功能,不可能在给人们带来乐趣,使许多游戏玩家感到苦恼,玩游戏的乐趣突然没有了。因此,处于玩者的需要,本游戏运用的是可以在不同环境下运行的JAVA语言编写而成的。游戏一旦生成,随处可玩。

电脑小游戏应举具备的特点:(1)易于学习。既然小游戏面向的是普通的电脑用户而不是计算机高手,那么他们不可能深入的学习小游戏的技巧;(2)可中断性。多任务处理是电脑的基本特征。电脑用户常常希望一心多用,他们希望上网时能听音乐,聊天或者更多的其他事情。而小游戏、音乐、聊天是使用的同一台计算机;(3)丰富的社会交互。不管一个小游戏设计得多好,只要玩家找到了它的根本模式或者玩完了所有的游戏路径很快就会厌烦这个小游戏;(4)无违法内容。既然所有年龄/性别的人群都玩游戏并且常常在公共/工作场合,你应该避免明显的暴力或者色情内容。

1.3 游戏语言介绍。本游戏应用的是Java语言,Java是一个由SUN公司开发成功的新一代编程语言,它的最大特点就是:使用它可在各式各样不同种机器,不同种操作平台的网络环境中开发软件,即SUN公司所宣扬的“一次编写,到处运行”。

在SUN公司的“Java白皮书”中对Java有如下的定义:Java:一种简单的,面向对象的,分布式的,健壮的,安全的,结构中立的,可移植的,高效性的,多线程和动态的语言。

这个定义充分地表现了Java语言的特点:(1)简单性。Java是一种简单的语言。Java取消了其它的许多编程语言中十分繁琐的和难以理解的内容,例如C/C++中的指针,C++中类的多重继承等。Java语言在外观上让大多数程序员都感到很熟悉,这样程序员不需要经过长时间训练就能够学会使用这种新型的程序开发工具;(2)面向对象。Java是一种面向对象的语言。这里的“对象”是指应用程序的数据及其操作方法。Java程序的设计思想不同于C语言基于过程的程序设计思想。设计面向对象的程序需要将编程重点放在资料和接口上;(3)分布式特性。Java是一种分布式的语言。Java有一个很周全的程序库,且很容易与HTTP和TCP/IP通信协议相配合。Java应用程序能在网络上开启并连结使用对象,就如同透过URL链接使用一个本地文件系统;(4)健壮性。用Java编写的程序在多种情况下都能稳定地执行。Java与C/C++最大的不同点是在于Java有一个专门的指针模型,它的作用是排除内存中的数据被覆盖和毁损的可能性;(5)安全性。Java是一种安全的网络编程语言。Java是被设计用于网络及分布的环境中的,所以Java程序的安全性自然是非常重要的。Java拥有数个阶层的互锁保护措施,能有效地防止病毒的侵入和破坏行为的发生;(6)结构中立性。众所周知,网络是由很多不同机型的计算机组合而成的。这些计算机的CPU和操作系统体系结构均有所不同。

2 游戏功能的实现和基本操作方法

2.1 游戏的功能实现。游戏的功能是:通过编程,使其出现一个正方体,这个正方体是有着不同颜色的六个面,并且它的每个面被分成九个小的正方形,排列规则是中间一个小正方形,四周围着其余的八个,外观效果是和我们小时侯玩的魔方是一个样子的,这个功能的实现必须是要使图形化界面是一个三维立体空间,否则是不会出现正方体的效果的,在编程中通过定义坐标的方法使其有着边长为1cm的小正方形。

2.2 游戏的基本操作方法

(1)游戏的开始。游戏的开始设置为S键,是Start的首字母,很容易理解的。在程序运行后就会出现游戏界面,这里在编写游戏时考虑到玩家的感受,所以游戏界面中有提示的,会告诉你开始按S。然后你就可以玩了,当你玩了好半天但还是没有成功的话,你会觉得你这局不行了,这就要使游戏重新开始了,那就要通过键盘的操作使游戏重新开始;(2)游戏的玩法。在程序执行以后就可以发挥你的才智来玩这个游戏了,不要小看了这个游戏,这与现实中的魔方有着旗鼓相当的水平,如果你小的时候就没有玩好魔方,那你玩这个游戏一样的玩不转。这个游戏只需要用鼠标就可以做到了。在你按下S键后就开始了。首先呢,你要先打乱模仿的次序,使的魔方的六个面中的每个面上不在是相同的颜色,这时考验你智力的时候到了,你要想办法使魔方的各个面重新回到相同的颜色,你就成功了。

3 游戏的发展前景

3.1 电脑小游戏的现状。每个人都对过去、未来和未知事物有幻想和期盼。每个人也都有自己想要做而不一定能够完成的事情。电脑游戏营造的虚拟空间和身份模拟则成了实现或释放这些情绪的途径之一。游戏者能在游戏中扮演与现实中的自己截然不同的角色,置身于任何一个时间和空间,完成自己潜意识中或童年的梦想。

3.2 电脑小游戏的未来。凡是玩过电脑小游戏的人都会感觉到,电脑小游戏给他们的生活带来了很多的乐趣,所以它很有发展前途。

(1)电脑小游戏对电脑的要求不高;(2)这个游戏简单;(3)当这个小游戏充分得到人们的认可时,可以发展成手机游戏,因为现在手机游戏更有发展潜力,这就需要更多的Java小游戏,只有Java小游戏能运行在手机之上,所以,它的商业存在价值更不能忽略,并且会成为Java小游戏开发的主要动力;(4)要实现Java小游戏的技术要求并不难。只要有好的游戏,就会有更广的使用量。

4 结束语

从整个游戏的设计过程来看,本游戏具有稳定性,可扩展性的,但是由于时间的关系使游戏的性能没有得到更深的设计,性能不是很高,如果有想对本游戏进一步开发的读者可以对此游戏进行修改从而建立功能更强大的游戏。

参考文献:

[1]张基温,朱嘉钢,张景莉.Java程序开发教程[M].北京:清华大学出版社,2002.

[2]张基温,陶利民.Java程序开发例题与习题[M].北京:清华大学出版社,2002.

[3]陈炜,张晓蕾,侯燕萍等.Java软件开发技术[M].北京:人民邮电出版社 2005.

游戏程序篇10

关键词:游戏教学法;游戏案例;激励机制;案例教学

中图分类号:G431 文献标识码:A 文章编号:16727800(2013)009019203

基金项目:国家自然科学基金项目(61171075);湖北省自然科学基金项目(2011CDB297);武汉市教育局重点科研项目(2011020);湖北省教研项目(鄂教(2011)32);湖北省教育厅科研项目(B20129003);湖北省教育厅科学研究项目(B2013254);校本重点研究项目(2013JZ06)

作者简介:周方(1982-),女,硕士,武汉生物工程学院计算机与信息工程系讲师,研究方向为分布式系统与软件工程。

0引言

纵观笔者所在院系人才培养方案,除去专业实习与毕业设计环节,专科学生在校学习5学期,程序设计类课程开设共持续4学期,本科学生在校7学期,程序设计类课程开设共持续6学期,虽然经过长时间的系统学习,但是效果并不理想。该系针对面向过程和面向对象两类程序设计类课程,开设有《C语言程序设计》、《面向对象程序设计》、《Java语言程序设计》、《Delphi语言程序设计》、《C#语言程序设计》、《.Net语言程序设计》等一系列程序设计类课程,期望用程序设计语言的高覆盖率换取高就业率。但大多数学生均感觉投入了过多的精力,却没有精通任何一门程序设计类语言,并且从事计算机相关工作的毕业生

人数比例不到25%,这与人才培养初衷出现了严重的不一致。针对该现象,汲取各程序设计类课程任课教师的经验,在现有教学学时的基础上,通过调整人才培养方案,寻找各类程序设计类课程教学方法、教学内容、考试方式、教学评价等的通用性研究,并构建知识共享平台,摸索出一套适合本校校情的程序设计人才培养模式,并争取向其它兄弟院校推广。

1游戏教学法定义及创新

所谓游戏教学法,就是在分析常规教学方法的基础上,结合在校大学生爱玩游戏的实际情况,采用学生普遍感兴趣的游戏案例作为载体,教学过程中,注重与学生平等、信任关系的建立,实现“寓教于乐”的最高境界。具体创新如下:

(1)该方法通过深入剖析计算机相关专业程序设计类课程之间的关联关系,将其组成群组进行立项研究,通过调整教学大纲、注重第一门程序设计课程的教学、利用案例特别是游戏案例进行知识点讲解等方式,从多个角度激发学生学习程序设计的积极性,达到提高学生工程实践能力的目的。

(2)该方法首次将软件产业中的角色定位和角色职能,引入高校计算机教学课堂,以便学生对该行业有所了解,更早、更好地涉及该领域,从而定位和充实自己的职业生涯。

(3)该方法在进行案例教学过程中,以小组协作方式进行学习,以提高学生的团队合作意识;依照“将课堂还给学生”以及“授人以鱼,不如授人以渔”的思想,让学生自己组合成小组,自己参与管理,摸索适合自己团队的激励机制,促使学生在提升程序设计能力的同时,也相应提升其管理能力,这样有助于培养技能和管理相结合的复合型人才,全面提高学生的综合素质,以适应我国软件产业迅猛发展的需要。

(4)本项目研究坚持强化学生的抽象思维能力和设计(动手)能力的培养,从教学过程的一点一滴入手,逐步引导学生建立创造性学习和创造性工作的意识,以达到培养创新人才的目的。

(5)本项目以游戏案例为载体,快乐学习为理念,通过寻找程序设计类课程教学的通用性并建立通用性案例库等方式,达到缩短能力培养周期的目的。

2游戏教学法具体内容

该教学方法以《C语言程序设计》、《C++语言程序设计》为主,《数据结构》和《数据库》为辅,通过对这4门计算机软件系列类课程立项进行研究,针对学生爱玩游戏的特点,通过对知识点进行提取、整合,构建核心知识体系,将其融入到游戏案例中, 从教学计划、教学案例、教学方法、教学模式、教学内容、教学反思、评价体系、考核形式、激励机制等9个方面进行研究,具体内容如下:

2.1教学计划研究

虽然网络游戏已经盛行,但暂时还没有进入高校计算机专业的课堂教学,因此很难借鉴其它兄弟院校的教学计划,而培训机构和游戏公司却充当了先行者。可以借鉴其课程体系结构和人才培养方案,例如:开设游戏策划基础、游戏构架设计、Flash、Flex、Java、网络游戏程序设计、网络游戏算法设计、游戏数理概论、游戏渲染技术、游戏平台设计、游戏组建开发等课程。

2.2教学案例研究

建设程序设计专用案例库,以便复用。以游戏案例为切入点,结合当前计算机业内的热点,选取游戏中的某个片段,结合程序设计的理论知识,带领学生去实现,例如:人人网、腾讯网、雅虎网平台上的社区类游戏。案例收集过程中,兼具趣味性和实用性,例如:交通信号灯程序、打字程序、计算器、猜数程序等,以此来吸引学生,学生对其了解后,可进行适当的完善和修改,以培养其创新意识。

2.3教学方法研究

教学过程中,要综合考虑学生的知识水平、认知规律、学习特点和接受能力,同时也要清楚地意识到第一堂课的重要性。能否上好第一堂课,直接影响到整个课程的学习,在上第一堂课时,教师应帮助学生明确学习该门课程的目的和学习任务,建立一个完整的学习框架,使学生能树立为用而学的学习动机。在课前充分了解学生的基本情况,包括他们的入学起点、已学课程、对该门程序设计类课程的认识和需要、兴趣爱好和关心的话题等,还要对课堂上可能遇到的各种问题予以充分估计,并拟定多种相应的教学方案。

讲解知识点时,加入公司实际运作时岗位分工的介绍,例如:美工、前台程序员、后台程序员、游戏策划、运维等工作人员应具备的知识体系等,让学生依据自己的兴趣爱好,有针对性地培养和提高自己在该方面的能力,以便更早、更快地与工作接轨。

2.4教学模式研究

采用“以例激趣—以例说理—以例导行”的教学模式,激发学生的求知欲和表现欲,寓教于乐。心理学研究表明,良好的心境可以使思想活跃,思维敏捷,表达欲增强。游戏能激发学生的学习兴趣,能给课堂营造良好的氛围。游戏活动能激发学生的创新意识,针对青少年模仿能力强、好动、好玩、爱表现的天性,将游戏元素引入课堂,通过游戏案例对程序设计类课程教学方法进行改革,打破传统的“概念—命令—程序”一条线的教学安排,让学生能够轻松接受新知识,调动他们主动学习新知识、探索新方法的积极性,使得学习逐步进入一个良性循环的轨道[1]。

2.5教学内容研究

重设授课内容顺序。程序设计类课程,通常是按知识的体系结构进行组织,即“数据类型—基本结构—数组—函数—模块与项目—文件”的章节顺序,在课程起始阶段,系统地讲述各种数据类型和基本语句,需要花费大量的时间,映证相关内容重要性的例子又相对缺乏,导致许多学生在此阶段开始就丧失了学习的耐心和兴趣。按此授课内容顺序不利于案例教学法的进行,而授课时以案例为载体,将核心知识体系贯穿其中,则有利于加强学生对抽象知识的消化与吸收。

2.6教学反思研究

教学反思是教师进步的阶梯,是教师进步的重要途径,进行教学反思能够充分激发教师的教学积极性和创造性,并为其专业发展提供机会和条件。教学反思鼓励教师通过多种策略和方法审视、分析自身的教育观念及教学活动,充分尊重教师的主体地位,发挥教师的能动性、积极性和创造性。只有通过不断的教学反思,才能够逐渐提高教师的教学监控能力,提升教师的专业素质、综合水平等[2]。

2.7评价体系研究

要检测教学效果,必须有完善的评价体系,只有各个方面的评价指标都较高,才能真正做到教与学的完美结合,从而促进游戏案例教学在程序设计类课程教学中的发展。评价主要包括两个方面:对学生而言,应该从知识的掌握程度、理解程度和是否具备了独立设计管理软件的能力等指标来进行评价;对教师而言,主要从案例的选取、课堂实施效果以及教学艺术等方面进行评价。

2.8考核形式研究

计算机程序设计类课程的实践性决定了它不注重学生死记硬背各种语法规则,而看重学生利用程序设计解决实际问题的能力。因此,可以将考试形式多样化,采取闭卷、开卷、考查、免考、实验报告、口试(类似于毕业答辩)、现场操作、小论文、作品等方式,精心营造“创新”的浓厚氛围,通过全程考核来激发学生学习的主动性和积极性。

2.9激励机制研究

激励有两种对象:一种是游戏玩家,对游戏而言,激励就是游戏的可玩性,即如何使得玩家能够对某个游戏乐此不疲。从游戏的视觉效果、声音效果,到人物设计、剧情编制,乃至规则制定、操作设置等方面都充分发挥其激励作用。将玩家类型分为成就型玩家、探索型玩家、社交型玩家和杀手型玩家,研究其特点并制定相应的激励机制;另一种是学生,在项目的分工合作中,也需要构建健全的激励体系。

3结语

本方案已在笔者所在院系实施了3年半的时间,效果良好。该教学方法的实施,不仅提升了本系计算机相关专业学生的程序设计能力,而且锻炼了学生的创新思维能力。通过对学生进行试点,并跟踪调查,提升了学生在程序员岗位的就业率,同时也提高了学生对计算机相关专业的认知度和对学校的认可度。

参考文献: