基于Java的拼图游戏实现
2019-08-23秦鹏珍
文/秦鹏珍
1 引言
目前,影响学生注意力的各种外界因素很多,采用传统的单纯讲授知识点的授课模式进行教学,这一方式已无法满足当下课堂需求,这种方式下知识点的讲解以及授课采用的案例之间相互孤立,无联系,致使学生在学习时感觉知识点零碎、杂乱,从而无法吸引学生的兴趣,同时现实中的工作流程通常都是相互联系的,项目开发同样也相互联系,采用零碎,孤立的方式既无法吸引学生,也不符合现实中的工作流程。为了能够提升学生兴趣,对接现实工作过程,在实施Java课程授课时,采用项目化教学,以一个或几个项目为依据,通过讲解引导学生独立完成具体项目,这样课堂之间相互联系,同时以项目为中心讲解知识点,可以使学生感受到学有所用,使学生在实践过程中提升理论知识水平,还能够更好的培养学生运用知识解决问题的能力。
拼图游戏是一款简单有趣的小游戏,课堂上学习Java语言时选择拼图游戏为导入,既能够吸引学生,提升学生兴趣,又能够充分将Java知识点融合与游戏,在进行Java课堂教学时需要通过以简单有趣的游戏项目贯穿课堂,教师讲解引导,学生作为主体完善提升,教师在教学实施时将游戏项目分解,学生在完成项目模块的同时掌握Java知识点,通过按照任务要求,分步骤分模块实施,使学生可以在参与项目实施的过程,感受近于真实的开发环境,以此来激发学生的学习兴趣,最终实现学生分析问题、解决问题的能力的提升。
本文主要介绍课堂实施之简单拼图游戏的项目实现,以简单项目为媒介,在教学过程中逐步带领学生掌握Java编程基础语法知识,使学生建立Java编程思想,在关注学生知识增长的同时,也关注学生相关能力目标的达成。
2 游戏设计
要实现简单拼图游戏主要要完成以下三部分设计,包括游戏界面设计,游戏规则设计,游戏按钮功能实现设计,因此课堂实施时也主要按照三大模块实施,通过游戏界面的设计与完成要使学生掌握Java中类的定义,树立面向对象思想,通过游戏规则设计,游戏按钮功能实现设计可以使学生掌握Java基础语法知识,包括变量命名规则,数据类型,流程控制语句等,同时要掌握接口的定义、继承和实现,事件的处理机制。
2.1 游戏规则介绍
(1)运行程序进入游戏初始界面,游戏初始界面如图1,初始界面上图片排列规则,空白格处于最末尾一格,点击开始游戏按钮,图片顺序被打乱,界面如图2,因此开始按钮功能实现是重点。
(2)游戏最终是要使凌乱的界面恢复到初始界面,为了实现此目的,需要实现不同小图片的不断移动,而小图片只能移动到空白格,所以需要实现的是当单击与空白格子相邻的任一方块时,可以把该方格内的图片移入到空白格,通过不断移动空格旁边的小图片,直到图片恢复原始样子,即实现最终拼图,完成该游戏。
2.2 游戏设计思路流程
游戏项目设计中涉及到的Java类有PuzzleFrame.java,PuzzlePanel.java,PuzzleCell.java,各自的功能为PuzzleFrame.java实现游戏主界面的设计,PuzzlePanel.java实现主要区域拼图模块的相关功能,即图片顺序打乱,移动规则实现等,PuzzleCell.java实现拼图区域图片的切割功能。如图3所示。
3 游戏相关程序设计
3.1 游戏界面设计
(1)初始界面。当运行程序时,会出现图1所示界面,界面内容主要包括游戏开始按钮,结束按钮,游戏时间,以及主要的拼图界面,在拼图界面内最末尾一格显示为空白格。
为了实现界面内的拼图模块,需要使得拼图界面有空白格存在,同时需要对图片进行切割(也可以预先使用ps完成对图片的切割,这里使用代码完成),在对图片进行切割时需要明确切割数量,因而首先需要确定行列值,依据确定的行列值,使用循环语句对图片完成切割,最后将切割的图片添加到对应模块,本文将切割的小图片添加在BUTTON按钮上。
实现图片切割的代码如下:
(2)点击游戏开始按钮后,界面如图2,初始有序排列的图片被打乱,呈现无序排列,因此在代码设计时需要实现图片顺序的随机改变。
图片乱序代码实现如下:
图1:游戏初始
图2:游戏开始
图3
3.2 游戏移动规则实现
为了能够移动图片按钮,需要对按钮编写鼠标单击事件,当发生鼠标单击事件时,先判断被点击的图片按钮周围是否有空按钮,若有,则需要判断空按钮位置,然后在移动图片按钮到非空按钮位置。
按钮鼠标单击事件代码如下:
3.3 游戏结束实现
结束游戏有两种方式,一种为玩家自动放弃游戏,即单击游戏结束按钮或者退出程序;一种为玩家拼出完整图片,此种方式需要对游戏玩家进行输赢判断。 判断游戏玩家是否拼出图片,实现代码如下:
4 结语
简易拼图游戏作为Java入门的引导项目,既能够吸引学生,提升学生兴趣,又能够充分将Java知识点融合于游戏,使学生在完成游戏开发的同时完成Java基本语法知识点的学习,同时通过任务分解,对接现实工作,又可以使学生分析问题、解决问题的能力得以提升,因此拼图游戏的设计与实现对于Java语言的学习与提升帮助极大。
通过以上设计,该游戏功能基本实现,通过三个模块的划分与分解,学生也基本能够自主完成。由于笔者能力有限,该游戏的实现以及任务实施还有很大的优化空间。