Science  and  Technology  & Innovation
I 科技与创新
| 2021年第05期]---------------
文章编号:2095-6835(2021 ) 05-0021 -02
单机版记忆游戏的设计与实现
------Java 语言任务驱动教学法应用案例*
* [基金项目]中华职业教育社《5G 与人工智能、工业互联网、智能家居与物联网、智慧体育人才培养体系研究与实践》子项目
“基于'1+X '证书制度下的5G 时代高职院校人工智能技术服务专业课程体系研究”(编号:ZJS20200817)简单的java游戏代码
田春婷
(兰州石化职业技术学院信息处理与控制工程学院,甘肃兰州730060)
摘要:Java 语言作为人工智能、云计算、计算机软件、网络等计算机类专业的重要专业基础课,主要培养学生
面向对象程序设计的编程能力和应用软件实际工程的开发能力;人工智能、大数据、android 等应用领域的开发端 大多采用java 来完成。将记忆游戏单机版的设计与实现作为java 语言课程任务驱动教学法的一项教学案例,详细 介绍了 java 语言实现单机版记忆游戏的原理以及开发过程。通过对此趣味性强游戏教学案例的实现,大大提高了
学生对java 语言的学习兴趣。
关键词:java 语言;记忆游戏;任务驱动教学法;程序设计要求
中图分类号:TP31 文献标志码:A  DOI : 10.15913/jki.kjycx.2021.05.007
1引言
大数据时代,java 语言作为一门老牌通用编程语言,
有着成熟的社区生态,依然是互联网各个专业领域最热门的
编程语言之一。在行业领域内的人才占有率和使用率,以绝 对优势稳居世界第一。人工智能[2]、云计算[3〕、大数据、物 联网、移动开发等数字化新技术较常用的编程语言也是java  语言。
Java 语言作为一门纯面向对象编程语言,面向对象编程
思想和算法是它的灵魂。教学难点是如何提高学生的算法分 析能力和编程能力。将小游戏的设计与实现融入到java 语言 课程的任务驱动教学法应用案例中,在提高学生对编程的兴 趣方面尤为重要。
2 java 语言任务驱动教学法
在java 语言的整个教学过程中,主要采取任务驱动教学
法⑷等多种教学方法,以更好树立学生面向对象程序设计思 想,提高学生的算法分析能力和使用面向对象思想解决实际
问题的能力。
全面推行“任务驱动”教学法,通过精选案例、分解任
务、讲练有机融合,将java 语言相关知识点融入案例。学生
通过学习趣味游戏等案例冈,掌握java 语言技术,并对面向 对象编程有一个直观和更加感性的认识,激发学生积极参与
整个教学过程,更好建立起面向对象的编程思想。
在教学过程中,采用“感知与联想-引入与模拟-实战
演习-总结提高”模式,实现任务分层次教学,以满足不同 水平学生的学习要求。
3 java 语言实现单机版记忆游戏案例总体设计要求
通过对单机版记忆游戏案例冋进行任务分解,分层次逐
步实现该游戏功能的设计要求,将java 语言相关知识点有机 融合到游戏实现的各个环节中,从而使学生在学习编程的同
时享受设计游戏的乐趣,将学习和娱乐有效结合,激发学生 的程序设计兴趣。
本文讨论的记忆游戏教学案例为单机版,总体设计要求
及功能如下:①该游戏设计要求有一组网格按钮,代表玩家
可以翻转的卡片。所有按钮的初始颜都是空白或灰的, 玩家不知道卡片背面所隐藏的颜。每次翻两个,一个一个, 如果匹配,就能得分。②在窗体顶部和底部分别设计有标签,
用来指定轮到哪位玩家以及玩家得分和他们应该做什么。
③ 游戏期间,一位玩家会先选择一个按钮,然后再选择另一
个。当玩家选择按钮的时候,按钮会显示它隐藏的背面颜。
如果玩家选择的两个按钮颜相同,游戏会告诉玩家,然后 当他再次点击任何一个按钮(继续)时,选择颜相同的两
个按钮时,卡片匹配成功,按钮颜会变成黑。玩家再次 尝试选择两个其他按钮;如果玩家选择的两个按钮颜不 同,卡片匹配不成功,则轮流到另一位玩家点击按钮玩游戏。
④ 玩家不能选择同一个按钮两次,也不能选择一个黑按
钮。当所有的按钮都是黑的时候,游戏会告诉玩家谁赢了
(或者是平局),当按下确定按钮,游戏就会重新开始。
⑤ 在任何时候,游戏都通过使用两个标签告诉玩家发生了什
个标签位于窗口顶部的玩家0,另一个标签位于窗
口底部的玩家1o 活跃玩家消息有一个绿的背景,另一位
• 21 •
科技与创新I Science and Technology&Innovation
玩家消息有一个红的背景。
4记忆游戏教学案例分层次设计要求及java实现为了满足不同能力水平学生的学习要求,在java语言教学过程中,为更好地实现游戏功能,采用由易到难的分层次教学设计模式,给出由简单到难的不同要求阶段案例。
根据单机版记忆游戏设计要求及功能要求,可以将记忆游戏案例教学目标分为以下两个阶段。
4.1单击用命令按钮实现一组标签颜的随机切换
4.1.1设计及java语言实现要求
创建一个最终类ColorLabel,向类中添加一个setDrawColor()方法,这个方法带有一个Color类型的参数,ColorLabel类中还要求有一个Color类型的成员变量drawColor,这个成员变量用来给标签着,改变drawColor 的值则会改变标签的颜,setDrawColor()方法的参数用来给变量drawColor传值。
java语言代码实现如下:
public:final c:1ass Co1or匚a ibel extends JLabe 1 Co1or draLwCo1or i
void metDoraiwCo1or(Co1oz~co1oar1)
>i—
创建一个名为Main的类,添加主方法main()。
向Main类中添加三个非静态成员变量:①名为guiFrame的JFrame对象引用;②名为arrayLabels的64位一维数组,数组元素类型为ColorLabel的对象引用;③名为 rand的Random的对象引用,Random类型来自java.util 包,Y成员变量rand用来产生随机数。
Java语言代码实现如下:
class Main
JFrame guiFrame;
Co1orLabe1arrayLabels[]=new Co1orLabe1[64]“
Random rand;
Jl
Main类中添加返回类型为void且无参的非静态成员方法createGUI()。
createGUI()方法体内容设计要求如下:①给guiFrame赋值为一个新创建的JFrame对象;②当程序运行结束时,设置窗体默认关闭;③设置窗体标题为“Label demo”;④创建64个ColorLabel对象,并且将其存储在arrayLabels数组中,给每一位数组元素赋值为rand对象产生的随机数值,这个随机数代表一种颜;⑤向面板添加64个ColorLabel对象,运用布局管理器,向窗体顶端和底部分别添加一个8x8的网格和命令按钮。
Java语言代码实现如下:①在主类Main中创建一个适当的方法notification。,用来告诉命令按钮,当它被单击时,通知主类,该方法将被告知执行了命令按钮的单击操作(需要在主类中执行操作界面)。②在主类中实现notification。-------------------------------------------[2021年第05期]
方法。这样,当按钮被单击时,每一个标签颜会被随机改变。
Java语言代码实现如下:测试程序代码。实现当单击命令按钮时,8x8网格的标签颜会被随机改变。
4.1.2程序设计要求
程序设计要求如下:①创建期望的主类;②窗体、数组和随机对象引用是成员变量,并在适当的位置创建;③需要创建creategui方法并且起到适当作用;④8x8网格标签为数组元素;⑤标签有随机颜;⑥主类处理按钮通知事件(即操作处理程序是在主类中,而不是内部类或其他类);⑦单击命令按钮则改变每一个标签颜;⑧程序演示正确。
4.2在4.1基础上,实现记忆游戏功能
4.2.1程序设计部分的要求
程序设计部分的要求如下:①确保在代码中使用的常量(static final int)有要使用的不同颜的数量、每种颜的按钮数量、网格的宽度和高度(在按钮中)、每个按钮的大小(以像素为单位);②确保在网格中的每个按钮都是自己创建的JButton子类,按钮大小与代码中给定常量的值相匹配。当要求更改按钮的尺寸时,程序仍可以正常运行;③确保当按钮被单击的操作能被监听到;④每个按钮应该知道自己的状态,即应该绘制什么颜、是否绘制完成、是否点击过(即应该显示其颜)、是否没有点击过(即显示灰)或者已经被匹配(应该是黑)等,即将这些信息保存在按钮中,而不是保存在其他数据结构中。
4.2.2程序实现部分的要求
程序实现部分的要求如下:①显示具有指定行数和列数(常量)的正方形网格(指定的大小,常量)。②每个正方形最初应显示为灰,直到它已被点击,但应显示其被单击之后真正的颜。③使用正确数量的不同颜,可用的颜数量是在一个常量中指定的。每个正方形从可用的颜中给定一个随机(隐藏)的颜。④每种颜都应该创建若干给定个数的正方形(这个数字应该在代码中定义为一个常量)每一个方块会分配若干个随机的颜(颜的数量乘以每个颜的方格)必须相等(行乘以列)的网格(即总方格数量)所以网格大小设置为适当的常量。⑤当前玩家只能够点击两个正方形,显示他们的颜。只有灰方块可以点击,玩家不能点击一个完成的方块(黑),或点击同一个方块两次。
⑥如果选择两个相同的正方形,那么当前玩家获得两分(每个正方形一分),正方形变黑(不能再点击),当前玩家继续点击方块。⑦如果两个不同颜的方块被选中,方块再次变成灰,当前玩家回合结束,另一个玩家开始新的回合(得分状态标签应该更新)。⑧如果所有的方块都是黑的,表示游戏结束,则应弹出一个消息框说明哪个玩家获胜。⑨当单击确定按钮关闭消息框时,操作盘应被重置,所有方块会
(下转第25页)
•22•
|2021年第05期}Science and Technology&Innovation I科技与创新
性与日俱增。新技术是提高工作协同效率的新方法、实现空管发展的新动力。广西空管分局气象台着力开发了风切变预报辅助系统、气象业务监控系统和观测值班辅助系统等技防手段,在安全管理上突出发挥“人防”基础作用与提升“技防”手段支撑并行,先进的“技防”手段对值班员在犯错第一时间起到防护作用,通过大数据、物联网和人工智能等科技成果在空管领域的全方位应用可以实现安全监控无死角,利用这些数据信息建立起空管内部完善的信息数据库,查问题、分析形势,提出安全建议、及时发布信息通告,从而达到有效控制风险、及时消除隐患、确保行业持续安全发展的目的。
3.3加强班组安全文化建设,实现特化
不安全事件和业务差错发生的主要原因是班组在思想作风、业务技能和现场管理等方面出现问题,导致人为因素影响不可控制,针对基层班组建设,需要面对“三基”建设不够牢固、工作作风不够严谨、职业意识不够强等问题。安全文化体现了空管工作的安全价值观与安全准则,民航局空管局及各地区空管局在全系统开展“安全生产月”“作风建设年”“气象业务提升年”等活动,营造安全工作的文化气氛,并以此为平台丰富相关文化建设内容,开展“安康杯”业务竞赛活动、“百日工作无错情”“手册空管人”等安全文化建设品牌活动,夯实安全工作基础,通过这一系列宣传教育和服务工作,着力增强班组人员规章意识,增强执行力,促进全体员工养成良好的工作习惯,营造积极活跃的安全文化氛围,从而减少人为因素对安全管理工作产生的负面影响。
安全是民航的生命线,而人为因素的重要影响体现在安全工作的方方面面,安全管理和安全文化建设更要以人为本,根据本单位实际运行情况从安全信息平台优化、安全管理体系建设、技防措施应用和安全文化营造等方面提出了有效防范和管理人为差错的建议和思考,通过加强“三基”工作,狠抓工作作风,提高安全技能,力争在每一次安全保障中创造价值。
参考文献:
[1]黄武.关于民航空管安全信息管理的思考[J].民航管理,
2019(11):79-81.
[2]刘洪波,梁绪勇,冯勇.安全文化在民航安全信息管理
中的作用研究[J].民航管理,2017(2):99-104. [3]赵建松.加强安全文化建设促进空管持续安----对新
时期空管安全文化建设的思考与认识[J].空中交通管理,2010(4):25-27.
[4]郑阳.以SHELL模型分析深圳空管站安全管理建设[J].
民航管理,2018(10):25-27.
作者简介:刘远方(1989—),男,广西南宁人,气象专业工程师,从事航空气象观测、预报工作。
〔编辑:严丽琴〕
(上接第22页)
被重新设置为新的随机颜,被显示的最初颜都是灰。在按下确定按钮之前,操作盘不应该被重置。应该改变现有按钮的存储颜,而不是创建新的按钮。⑩程序要求被演示的是一个完整的游戏,可以被重置开始新一局游戏(要求相同的大小但不同的按钮颜)等。
5总结
在Java语言教学过程中,把单机版记忆游戏的实现作为任务驱动教学案例,将学生玩游戏的兴趣向开发游戏方面引导,在编写小游戏的过程中,学生能够更容易理解面向对象思想,游戏代码也使学生能够更容易理解和接受Java语言复杂的知识要点和算法;在寓教于乐的教学过程中,能够更好提高学生思考问题和解决实际问题的能力,进而大大提高学生的算法分析能力与面向对象程序设计的编程能力,达到较好的教学效果。
参考文献:
[1]温秀梅,祁爱华.Java程序设计教程[M].北京:清华
大学出版社,2014.
[2]马云.人工智能带来的技术革命超乎想象[J].支点,2020
(9):14.
[3]林新平.云计算技术及其应用分析[J].集成电路应用,
2020,37(9):98-99.
[4]牛琦.案例教学法与任务驱动教学法的比较研究[J].
课程教育研究,2020(16):240-241.
[5]孙惠丽.游戏化案例的可行性分析及设计策略[J].中外
企业家,2019(29):200-202.
[6]黄建,段志举,陈杉杉,等.基于Android的五子棋游
戏设计[J].数字技术与应用,2020,38(1):161-162.
作者简介:田春婷(1972—),女,陕西西安人,硕士研究生,兰州石化职业技术学院副教授,主要从事计算机软件、数据库、人工智能、云计算技术方面的教学和研究工作。
〔编辑:严丽琴〕
•25•

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。