连连求java小游戏源代码_第1页
连连求java小游戏源代码_第2页
连连求java小游戏源代码_第3页
连连求java小游戏源代码_第4页
连连求java小游戏源代码_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、求java小游戏源代码I 悬赏分:100 -解决时间:2007-11-30 12:37要做课程设计,想找几个小游戏的代码做参考,请各位高手帮忙! ! !小弟不胜感激! ! !提问者:S2005035 -二 级最佳答案连连看java源代码import javax.swing.*;import java.awt.*;import java.awt.event.*;public class lianliankan implements ActionListener JFrame mainFrame; 主面板Container thisContainer;JPanel centerPanel,sout

2、hPanel,northPanel; /子面板JButton diamondsButton口口 = new JButton65;/游戏按钮数组JButton exitButton,resetButton,newlyButton;/退出,重歹U,重新开始按钮JLabel fractionLable=new JLabel("0"); 分数标签JButton firstButton,secondButton; /分别记录两次被选中的按钮int grid叩=new int87;/储存游戏按钮位置static boolean pressInformation=false; /判断是否

3、有按钮被选中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 JPanel();southPanel=new JPanel();northPanel=new

4、 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 JBut

5、ton(String.valueOf(gridcols+1rows+1);diamondsButtoncolsrows.addActionListener(this);centerPanel.add(diamondsButtoncolsrows);exitButton=new JButton(" 退出");exitButton.addActionListener(this);resetButton=new JButton("重歹 U");resetButton.addActionListener(this);newlyButton=new JButton

6、("再来一局");newlyButton.addActionListener(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.setVisi

7、ble(true);public void randomBuild() 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

8、()*5+1);this.gridcolsrows=randoms;public 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<=5;j+) if(this.gridij!=0) saven=this.gr

9、idij;n+;n=n-1;this.grid=grid;while(n>=0) 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=saven;n-;mainFrame.setVisible(false);pressInformation=false; /这里一定要将按钮点击信息归为初始init();for(int i

10、= 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 placeY,JButton bz) if(pressInformation=false) x=placeX;y=placeY;secondMsg=gridxy;secondButton=bz;pressInformation=true;else x0=x;y0=y;fristMsg=secondMsg;firstButton=s

11、econdButton;x=placeX;y=placeY;secondMsg=gridxy;secondButton=bz;if(fristMsg=secondMsg && secondButton!=firstButton)xiao();public void xiao() 相同的情况下能不能消去。仔细分析,不一条条注释if(x0=x &&(y0=y+1|y0=y-1) | (x0=x+1|x0=x-1)&&(y0=y) /判断是否相邻remove();elsefor (j=0;j<7;j+ ) if (gridx0j=0) /判断第一

12、个按钮同行哪个按钮为空if (y>j) /如果第二个按钮的 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 (y<j) /如果第二个按钮的Y坐标小于空按钮的Y坐标说明第一按钮在第二按钮右边for (i=y+1;i<=j ;i+儿 判断第二按钮左侧直到第一按钮中间有没有按钮if (gridxi!=0)k=0;break;else k=1;

13、 if (k=1) linePassOne();if (y=j ) linePassOne();if (k=2) if (x0=x) remove();if (x0<x) for (n=x0;n<=x-1;n+ ) if (gridnj!=0) k=0;break;if(gridnj=0 && n=x-1) remove();if (x0>x) for (n=x0;n>=x+1 ;n- ) if (gridnj!=0) k=0;break;if(gridnj=0 && n=x+1) remove();for (i=0;i<8;i+

14、) / 列if (grid皿y0=0) if (x>i) for (j=x-1;j>=i 卜)if (grid皿y!=0) k=0;break;else k=1; if (k=1) rowPassOne();if (x<i) for (j=x+1;j<=i;j+ ) if (grid皿y!=0) k=0;break;else k=1; if (k=1) rowPassOne();if (x=i) rowPassOne();if (k=2)if (y0=y) remove();if (y0<y) for (n=y0;n<=y-1 ;n+ ) if (grid皿

15、n!=0) k=0;break;if(gridin=0 && n=y-1) remove();if (y0>y) for (n=y0;n>=y+1 ;n-) if (grid皿n!=0) k=0;break;if(gridin=0 && n=y+1) remove();public void linePassOne()if (y0>j)/第一按钮同行空按钮在左边for (i=y0-1;i>=j ;i-儿判断第一按钮同左侧空按钮之间有没按钮if (gridx0i!=0) k=0;break;else k=2; /K=2说明通过了第二次验证i

16、f (y0<j) /第一按钮同行空按钮在与第二按钮之间for (i=y0+1;i<=j ;i+)if (gridx0i!=0) k=0;break;else k=2; public void rowPassOne()if (x0>i) for (j=x0-1;j>=i 卜)if (grid皿y0!=0) k=0;break;else k=2; if (x0<i) for (j=x0+1;j<=i ;j+ ) if (grid皿y0!=0) k=0;break;else k=2; public void remove()firstButton.setVisib

17、le(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 = 0;cols <

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论