版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、.【连连看】简单小游戏初始源代码使用说明:进入java开发工具eclipse 中,在左面建立一个任意名的java project, 然后在工程下建立一个名字为lianliankan 的 package,最后建立一个名字为lianliankan 的 class 类。将以下程序代码复制入class 内容面板中,点击运行。package lianliankan;import javax.swing.*;import java.awt.*;import java.awt.event.*;public class lianliankan implements actionlistenerjframe m
2、ainframe; / 主面板container thiscontainer;jpanel centerpanel,southpanel,northpanel; / 子面板jbutton diamondsbutton = new jbutton65;/游戏按钮数组jbutton exitbutton,resetbutton,newlybutton; /退出,重列,重新开始按钮jlabel fractionlable=new jlabel(0); / 分数标签jbutton firstbutton,secondbutton; /分别记录两次被选中的按钮int grid = new int87;/
3、储存游戏按钮位置static boolean pressinformation=false; /判断是否有按钮被选中int x0=0,y0=0,x=0,y=0,fristmsg=0,secondmsg=0,validatelv; / 游戏按钮的位置坐标int i,j,k,n;/ 消除方法控制public void init()mainframe=new jframe(jkj连连看 );thiscontainer = mainframe.getcontentpane();thiscontainer.setlayout(new borderlayout();centerpanel=new jpan
4、el();southpanel=new jpanel();northpanel=new jpanel();thiscontainer.add(centerpanel,center);thiscontainer.add(southpanel,south);thiscontainer.add(northpanel,north);centerpanel.setlayout(new gridlayout(6,5);for(int cols = 0;cols 6;cols+)for(int rows = 0;rows 5;rows+ )diamondsbuttoncolsrows=new jbutton
5、(string.valueof(gridcols+1rows+1); diamondsbuttoncolsrows.addactionlistener(this); centerpanel.add(diamondsbuttoncolsrows);exitbutton=new jbutton( 退出 );exitbutton.addactionlistener(this);resetbutton=new jbutton( 重列 );resetbutton.addactionlistener(this);newlybutton=new jbutton( 再来一局 );.newlybutton.ad
6、dactionlistener(this);southpanel.add(exitbutton);southpanel.add(resetbutton);southpanel.add(newlybutton);fractionlable.settext(string.valueof(integer.parseint(fractionlable.gettext();northpanel.add(fractionlable);mainframe.setbounds(280,100,500,450);mainframe.setvisible(true);public void randombuild
7、() int randoms,cols,rows;for(int twins=1;twins=15;twins+) randoms=(int)(math.random()*25+1);for(int alike=1;alike=2;alike+) cols=(int)(math.random()*6+1);rows=(int)(math.random()*5+1);while(gridcolsrows!=0) cols=(int)(math.random()*6+1);rows=(int)(math.random()*5+1);this.gridcolsrows=randoms;public
8、void fraction()fractionlable.settext(string.valueof(integer.parseint(fractionlable.gettext()+100);public void reload() int save = new int30;int n=0,cols,rows;int grid= new int87;for(int i=0;i=6;i+) for(int j=0;j=0) cols=(int)(math.random()*6+1);rows=(int)(math.random()*5+1);.while(gridcolsrows!=0) c
9、ols=(int)(math.random()*6+1);rows=(int)(math.random()*5+1);this.gridcolsrows=saven;n-;mainframe.setvisible(false);pressinformation=false; / 这里一定要将按钮点击信息归为初始 init();for(int i = 0;i 6;i+)for(int j = 0;j 5;j+ )if(gridi+1j+1=0)diamondsbuttonij.setvisible(false);public void estimateeven(int placex,int pl
10、acey ,jbutton bz) if(pressinformation=false) x=placex;y=placey;secondmsg=gridxy;secondbutton=bz;pressinformation=true;else x0=x;y0=y;fristmsg=secondmsg;firstbutton=secondbutton;x=placex;y=placey;secondmsg=gridxy;secondbutton=bz;if(fristmsg=secondmsg & secondbutton!=firstbutton)xiao();public void xia
11、o() / 相同的情况下能不能消去。仔细分析,不一条条注释if(x0=x &(y0=y+1|y0=y-1) | (x0=x+1|x0=x-1)&(y0=y) / 判断是否相邻 remove();else.for (j=0;jj) / 如果第二个按钮的 y 坐标大于空按钮的 y 坐标说明第一按钮在第二按钮左边 for (i=y-1;i=j;i- ) / 判断第二按钮左侧直到第一按钮中间有没有按钮if (gridxi!=0) k=0;break;else k=1; /k=1 说明通过了第一次验证if (k=1) linepassone();if (yj) / 如果第二个按钮的 y 坐标小于空按钮的
12、 y 坐标说明第一按钮在第二按钮右边 for (i=y+1;i=j ;i+ ) / 判断第二按钮左侧直到第一按钮中间有没有按钮 if (gridxi!=0)k=0;break;else k=1; if (k=1)linepassone();if (y=j ) linepassone();if (k=2) if (x0=x) remove();if (x0x) for (n=x0;nx) for (n=x0;n=x+1 ;n- ) if (gridnj!=0) k=0;break;if(gridnj=0 & n=x+1) remove();for (i=0;ii) for (j=x-1;j=i
13、;j- ) if (gridjy!=0) k=0;break;else k=1; if (k=1) rowpassone();if (xi) for (j=x+1;j=i;j+ ) if (gridjy!=0) k=0;break;else k=1; if (k=1) rowpassone();if (x=i) rowpassone();.if (k=2)if (y0=y) remove();if (y0y) for (n=y0;ny) for (n=y0;n=y+1 ;n-) if (gridin!=0) k=0;break;if(gridin=0 & n=y+1) remove();pub
14、lic void linepassone()if (y0j) / 第一按钮同行空按钮在左边for (i=y0-1;i=j ;i- ) / 判断第一按钮同左侧空按钮之间有没按钮 if (gridx0i!=0) k=0;break;else k=2; /k=2 说明通过了第二次验证if (y0j) / 第一按钮同行空按钮在与第二按钮之间for (i=y0+1;ii) for (j=x0-1;j=i ;j- ) if (gridjy0!=0) k=0;break;else k=2; if (x0i) for (j=x0+1;j=i ;j+ ) if (gridjy0!=0) k=0;break;el
15、se k=2; public void remove()firstbutton.setvisible(false);secondbutton.setvisible(false);fraction();pressinformation=false;k=0;gridx0y0=0;gridxy=0;public void actionperformed(actionevent e) if(e.getsource()=newlybutton)int grid = new int87;this.grid = grid;randombuild();mainframe.setvisible(false);pressinformation=false;init();.if(e.getsource()=exitbutton)system.exit(0);if(e.getsource()=resetbutton)reload();for(int cols
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年宁夏安全生产题库及答案
- 低压电工考试题材及答案
- 农科院笔试考试题及答案
- 绿化工树木识别考试题及答案
- 陕西省石泉县高中生物 第五章 生物的进化 5.1 生物进化理论教案 苏教版必修2
- 2026年大学学前教育(幼儿安全教育)试题及答案
- 一年级道德与法治下册 第一单元 班级小主人 第3课《我们班的图书馆》教学设计 粤教版
- 人教高中地理必修一 第二章 第一节 《大气受热过程》教学设计
- 牛津译林版Unit8Pets教学设计
- 加法运算定律(教学设计)四年级下册数学苏教版
- 2026山东烟台市壹通无人机系统有限公司暨三航无人系统技术(烟台)有限公司社会招聘40人笔试备考试题及答案详解
- 2026广西投资集团咨询有限公司社会招聘1人笔试历年难易错考点试卷带答案解析
- 2026年湖北省人民法院聘用书记员考试试题及答案
- 2026广东揭阳市惠来县卫生健康事业单位招聘综合类18人笔试题库附参考答案详解【A卷】
- 临床内科151种常见病诊断及治疗要点
- 心房颤动诊疗中国指南(2026 版)
- 2026年广东中山市中考化学试题(附答案)
- 塑胶配色外包合同
- 宠物友好空间建设方案
- 幼教考试推理题目及答案
- 卫生院缺药登记制度
评论
0/150
提交评论