游戏程序设计连连看设计.ppt

上传人:石*** 文档编号:39860895 上传时间:2022-09-08 格式:PPT 页数:24 大小:3.61MB
返回 下载 相关 举报
游戏程序设计连连看设计.ppt_第1页
第1页 / 共24页
游戏程序设计连连看设计.ppt_第2页
第2页 / 共24页
点击查看更多>>
资源描述

《游戏程序设计连连看设计.ppt》由会员分享,可在线阅读,更多相关《游戏程序设计连连看设计.ppt(24页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、游戏程序设计连连看游戏程序设计连连看设计设计现在学习的是第1页,共24页1.1 预备知识预备知识 1、窗体程序、窗体程序 2、按钮事件、按钮事件 3、产生随机数、产生随机数现在学习的是第2页,共24页1、窗体程序窗体程序关键语句:关键语句:setSize(300,200);setVisible(true);setDefaultCloseOperation(EXIT_ON_CLOSE);容器布局:容器布局:setLayout(布局模式布局模式);默认边界布局默认边界布局 BorderLayout 浮动布局浮动布局FlowLayout现在学习的是第3页,共24页2、按钮事件按钮事件ActionLi

2、stener接口:接口:(1)注册监听器)注册监听器按钮按钮.addActionListener(this);(2)触发事件)触发事件actionPerformed(ActionEvent e).现在学习的是第4页,共24页3、产生随机数产生随机数随机函数:随机函数:Math.random()产生产生0-1之间的随机数之间的随机数若要产生若要产生100以内的随机整数:以内的随机整数:(int)(Math.random()*100)现在学习的是第5页,共24页1.2 “连连看连连看”游戏算法分析游戏算法分析现在学习的是第6页,共24页1.2.1“连连看连连看”算法分析算法分析 为简便起见,我们用

3、数字代替一般“连连看”游戏画面的图形,如图所示。现在学习的是第7页,共24页1.2.2 “连连看连连看”的游戏规则的游戏规则 1、“连连看”游戏的基本规则(1)选择一对内容相同的图案进行连线,但此连线不能穿跨其他图案;(2)连线的转折点不能多于两个,如符合规定则消除此对图案。现在学习的是第8页,共24页2、“连连看”游戏的几种可以消去情况(1)要消去的两个图案相邻,如图15.2(a)所示。(2)要消去的两个图案在同一直线上,如图15.2(b)所示。(3)要消去的两个图案不在同一直线上,如图15.2(c)、(d)所示。现在学习的是第9页,共24页3、“连连看连连看”游戏连接算法思游戏连接算法思路

4、路1、什么是连接折点?、什么是连接折点?如图15.3所示 2、连接折点算法基本概念、连接折点算法基本概念 如图15.3所示 3、连接折点算法分析、连接折点算法分析(1)判断选取的两个点(P1,P2)的内容是否一样。(2)判断P1、P2的位置关系。(3)如果P1、P2相邻,如图15.4(a)所示,直接消去该两点,即把这两点的内容消去(把该两点内容设为不可见)。(4)如果P1、P2在同一直线上,但不相邻,如图15.4(b)所示。先判断两个点P1,P2之间是否能直接建立连接(连线之间无折点),如果可以的话消去该两点,如果不可以的话就在其它三个方向上的空点按照折点法基本概念开始取折点Z1,Z2,然后判

5、断 P1 Z1,Z1Z2,Z2P2 是否能连通,如果都可以连通就消去P1,P2两点。要消去的两个点不在同一直线上也不相邻。(5)在P1,P2四个方向上的空点按照连接折点的基本概念开始取折点Z1,Z2,然后判断 P1Z1,Z1Z2,Z2P2 是否能连通,如果都可以连通就消去P1,P2两点。如图15.3所示。现在学习的是第10页,共24页图15.3 连接折点图15.4 直线连接现在学习的是第11页,共24页1.3“连连看连连看”游戏界面设游戏界面设计计“连连看连连看”游戏界面设计算法分析游戏界面设计算法分析 1、“连连看连连看”游戏界面算法设计思路游戏界面算法设计思路在设计“连连看”游戏时,我们把

6、所有图形(30个)按如图15.5(a)所示的方法排列,即把图形安排到8行7列的表格中,四周有一排空格。把图形块做成按钮,这样,游戏操作者点击图形块时,就能触发事件。再定义一组二维数组与按钮的位置相对应,只要数组元素的值相同就代表图形相同。这样,要判断二块图形是否相同,只要比较二维数组元素的值是否相同。如图15.5(b)所示。现在学习的是第12页,共24页“连连看连连看”游戏界面设计还要考虑游戏界面设计还要考虑3个问题:个问题:(1)图形块上的数字必须是必须是成对出现)图形块上的数字必须是必须是成对出现的;的;(2)图形块上的数字是随机的;)图形块上的数字是随机的;(3)图形块的相同数字的位置是

7、随机的。)图形块的相同数字的位置是随机的。现在学习的是第13页,共24页2、建立一个、建立一个87的二维数组存放的二维数组存放65个随机数个随机数 int d =0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ;现在学习的是第14页,共24页3、建立一个产生随机数字的方法,且每个随机数都是成对、建立一个产生随机数字的方法,且每个随机数都是成对出现的。出现的。public void suiji()/产生产生15对随机数字对

8、随机数字 int m,n,x,i=1,j=1;for(m=1;m=15;m+)x=(int)(Math.random()*25+1);for(n=1;n=2;n+)while(dij!=0)i=(int)(Math.random()*6+1);j=(int)(Math.random()*5+1);this.dij=x;2个不同坐标存放相个不同坐标存放相同的数同的数x位置坐标位置坐标产生随机数(产生随机数(15个)个)现在学习的是第15页,共24页“连连看连连看”界面设计示例界面设计示例【例例1-3】设计一个随机分布数字的设计一个随机分布数字的“连连看连连看”游戏界面程序。如图所游戏界面程序。如

9、图所示。示。现在学习的是第16页,共24页1.4“连连看连连看”游戏消除相同数字游戏消除相同数字的算法设计的算法设计消除两个相同图案的图形块消除两个相同图案的图形块要消除两个相同图案的图形块,需要解决要消除两个相同图案的图形块,需要解决3个问个问题:题:(1)记录)记录2次鼠标所点击的图案(数字),并进行次鼠标所点击的图案(数字),并进行比较;比较;(2)记录)记录2次鼠标所点击图形块的位置,要将其次鼠标所点击图形块的位置,要将其消除;消除;(3)鼠标)鼠标2次所点击的图形块不能是同一位置的图形次所点击的图形块不能是同一位置的图形。现在学习的是第17页,共24页1、区分鼠标点击的次数、区分鼠标

10、点击的次数 由于游戏规定必须用鼠标点击2个相同的图案才能消除图形块,因此,使用2个字符串变量来标记鼠标点击的次数 String s1=first,s2=“;当(s1.trim().equals(first)时,说明是鼠标第1次点击图形块,否则,是第2次点击图形块。现在学习的是第18页,共24页2、记录鼠标点击、记录鼠标点击2个不同图形块的位置个不同图形块的位置 由于游戏规定必须由于游戏规定必须2个不同位置的相同个不同位置的相同图案的图形块才能被消除,因此,需图案的图形块才能被消除,因此,需要记录要记录2次用鼠标点击的图形块的位置次用鼠标点击的图形块的位置。设鼠标点击的图形块为设鼠标点击的图形块

11、为btn0,其,其位置为(位置为(i,j),图形块上的图案(数图形块上的图案(数字)为字)为dij。现在学习的是第19页,共24页3、消除相同图案(相同数字)的图形块、消除相同图案(相同数字)的图形块当当2个不同图形块的图案相同时,则将其设为个不同图形块的图案相同时,则将其设为setVisible(false)。if(n1=n2&btn2!=btn1)btn2.setVisible(false);btn1.setVisible(false);【例例1-4】消除两个相同图案的图形块消除两个相同图案的图形块现在学习的是第20页,共24页1.5 消除相邻两点图案相同的图形消除相邻两点图案相同的图形块

12、块前面例前面例1-4消除的是任意位置上的两个相同图案的图消除的是任意位置上的两个相同图案的图形块,这不符合形块,这不符合“连连看连连看”的游戏规则。下面讨论消除的游戏规则。下面讨论消除相邻两点图案相同的图形块,即如图相邻两点图案相同的图形块,即如图15.7所示的情况。所示的情况。现在学习的是第21页,共24页两个图形块相邻的条件两个图形块相邻的条件 设两个图形块的行列坐标为设两个图形块的行列坐标为P1(x1,y1)和)和P2(x2,y2),则其相邻的条件为:,则其相邻的条件为:x1=x2且且y1=y2+1,或或x1=x2 且且y1=y2 1,或或x1=x2+1且且y1=y2,或或x1=x2-1

13、且且y1=y2。即:即:(x1=x2&(y1=y2+1|y1=y2-1)|(x1=x2+1|x1=x2-1)&(y1=y2)现在学习的是第22页,共24页1.6“连连看连连看”游戏图形块重新排游戏图形块重新排列的算法设计列的算法设计在玩在玩“连连看连连看”游戏时,当遇到无符合规则的图游戏时,当遇到无符合规则的图形块可消除的情况,这时,需要重新排列图形块。形块可消除的情况,这时,需要重新排列图形块。(1)重新排列图形块时,原有图形块的图案不能改变。即)重新排列图形块时,原有图形块的图案不能改变。即要保存原有各图形块的图案;要保存原有各图形块的图案;(2)产生随机坐标位置,并将保存的图案赋值给该位)产生随机坐标位置,并将保存的图案赋值给该位置数组元素。置数组元素。【例例15-3】具有重新排列图形块功能的游戏程序。具有重新排列图形块功能的游戏程序。现在学习的是第23页,共24页课程设计课程设计 1、编程,消除在一直线上的两个图案、编程,消除在一直线上的两个图案数字相同的图形块,如图数字相同的图形块,如图15.2(b)所)所示。示。2、编程,消除不在一直线上的两个图、编程,消除不在一直线上的两个图案数字相同的图形块,如图案数字相同的图形块,如图15.2(c)、(、(d)所示。)所示。现在学习的是第24页,共24页

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com