【連連看】小游戲初始源代碼_第1頁(yè)
【連連看】小游戲初始源代碼_第2頁(yè)
【連連看】小游戲初始源代碼_第3頁(yè)
【連連看】小游戲初始源代碼_第4頁(yè)
【連連看】小游戲初始源代碼_第5頁(yè)
已閱讀5頁(yè),還剩3頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、【連連看】簡(jiǎn)單小游戲初始源代碼使用說(shuō)明:進(jìn)入 Java開(kāi)發(fā)工具eclipse中,在左面建立一個(gè)任意名的java project,然后在工程下建立一個(gè)名字為L(zhǎng)ianiiankan的package,最后建立一個(gè)名字為lianliankan的class類(lèi)。將以下程序代碼復(fù)制入class內(nèi)容面板中,點(diǎn)擊運(yùn)行。P ackage Lia nlia nkan;import javax.swi ng.*;import java.awt.*;import java.awt.eve nt.*;p ublic class lia nlia nkan impi eme nts Action Liste nerJFra

2、me mai nF rame; / 主面板Container thisC ontainer;JPan el ce nterPa nel,south Pan el, north Pan el; / 子面板JButton diamo ndsButt on 叩=new JButt on 65;/游戲按鈕數(shù)組JButton exitButto n,resetButt on,n ewlyButto n; /退出,重列,重新開(kāi)始按鈕JLabel fractionLable=new JLabel("0"); / 分?jǐn)?shù)標(biāo)簽JButton firstButton,secondButton;

3、/分別記錄兩次被選中的按鈕in t grid = new in t87;/儲(chǔ)存游戲按鈕位置static boolean pressInformation=false; / 判斷是否有按鈕被選中int x0=0,y0=0,x=0,y=0,fristMsg=0,secondMsg=O,validateLV; / 游戲按鈕的位置坐標(biāo)int i,j,k,n;/消除方法控制p ublic void in it()mainFrame=new JFrame("JKJ連連看");thisC ontainer = mainF rame.getC ontentPan e();thisC ont

4、ain er.setLayout (new BorderLayout();centerPanel=new JPan el();south Panel=new JPan el();northPanel=new JPan el();thisC ontain er.add(ce nterPan el,"Ce nter");thisCo ntai ner.add(south Pan el,"South");thisCo ntai ner.add( north Pan el,"North");cen terPa nel.setLayout (n

5、ew GridLayout(6,5);for(i nt cols = 0;cols < 6;cols+)for(i nt rows = 0;rows < 5;rows+ )diam on dsButt on colsrows=new JButt on( Stri ng.valueOf(gridcols+1rows+1);diam on dsButt on colsrows.addActi on Liste ner(this);centerPan el.add(diam on dsButt on colsrows);exitButton=new JButton(” 退出")

6、;exitButt on. addAct ion Liste ner(this);resetButton=new JButton(” 重列”); resetButt on. addAct ion Liste ner(this); newlyButton=new JButton(” 再來(lái)一局");n ewIyButt on .addAct ion Liste ner(this);south Pan el.add(exitButt on);south Pan el.add(resetButt on);south Pan el.add( newlyButt on);fraction Lab

7、le.setText(Stri ng.valueOf( In teger. parse In t(fracti on Lable.getText();northPan el.add(fractio nLable);mai nFrame.setBou nds(280,100,500,450);mai nFrame.setVisible(true);p ublic void ran domBuild() int ran doms,cols,rows;for(i nt twin s=1;tw in s<=15;tw in s+) ran doms=(i nt)(Math.ra ndom()*2

8、5+1);for(i nt alike=1;alike<=2;alike+) cols=(i nt)(Math.ra ndom()*6+1);rows=(i nt)(Math.ra ndom()*5+1);while(gridcolsrows!=0) cols=(i nt)(Math.ra ndom()*6+1);rows=(i nt)(Math.ra ndom()*5+1);this.gridcolsrows=ra ndoms;p ublic void fraction()fraction Lable.setText(Stri ng.valueOf( In teger. parse I

9、n t(fracti on Lable.getText()+100);p ublic void reload() int save = new in t30;int n=0,cols,rows;in t grid= new in t87;for(i nt i=0;i<=6;i+) for(i nt j=0;j<=5;j+) if(this.gridij!=0) save n=this.gridij;n+;n=n-1;this.grid=grid;while( n>=0) cols=(i nt)(Math.ra ndom()*6+1);rows=(i nt)(Math.ra n

10、dom()*5+1);while(gridcolsrows!=0) cols=(i nt)(Math.ra ndom()*6+1);rows=(i nt)(Math.ra ndom()*5+1);this.gridcolsrows=save n;n-;mai nFrame.setVisible(false);pressInformation=false; /這里一定要將按鈕點(diǎn)擊信息歸為初始init();for(i nt i = 0;i < 6;i+)for(i nt j = 0;j < 5;j+ )if(gridi+1j+1=0)diam on dsButt on ij.setVi

11、sible(false);public void estimateEven(int placeX,int placeY JButton bz) if(p ress In formatio n=false) x=p laceX;y=p laceY;sec on dMsg=gridxy;sec on dButt on=bz;p ress In formati on=true;else x0=x;y0=y;fristMsg=sec on dMsg;firstButt on=sec on dButt on;x=p laceX;y=p laceY;sec on dMsg=gridxy;sec on dB

12、utt on=bz;if(fristMsg=sec on dMsg && sec on dButt on!=firstButt on)xiao();public void xiao() /相同的情況下能不能消去。仔細(xì)分析,不一條條注釋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) /判斷第一個(gè)按鈕同行哪個(gè)按鈕為空if (y>j) /如果第二個(gè)按鈕的 丫坐標(biāo)大于空按鈕的丫坐標(biāo)說(shuō)

13、明第一按鈕在第二按鈕左邊f(xié)or (i=y-1;i>=j;i- ) /判斷第二按鈕左側(cè)直到第一按鈕中間有沒(méi)有按鈕if (gridxi!=0) k=0;break;else k=1; /K=1說(shuō)明通過(guò)了第一次驗(yàn)證if (k=1) lineP assO ne();if (y<j) /如果第二個(gè)按鈕的丫坐標(biāo)小于空按鈕的丫坐標(biāo)說(shuō)明第一按鈕在第二按鈕右邊f(xié)or (i=y+1;i<=j ;i+ ) /判斷第二按鈕左側(cè)直到第一按鈕中間有沒(méi)有按鈕if (gridxi!=0)k=0;break;else k=1; if (k=1)lineP assO ne();if (y=j ) lineP a

14、ssO ne();if (k=2) if (x0=x) remove。;if (x0<x) for (n=x0;n<=x-1; n+ ) if (grid nj!=0) k=0;break;if(grid nj=0 && n=x-1) remove();if (xO>x) for (n=xO;n>=x+1 ;n- ) if (grid nj!=O) k=0;break;if(grid nj=O && n=x+1) remove。;for (i=0;i<8;i+ ) / 列if (gridiy0=0) if (x>i) for

15、(j=x-1;j>=i ;j- ) if (gridjy!=0) k=0;break;else k=1; if (k=1) row Pass On e();if (x<i) for (j=x+1;j<=i;j+ ) if (gridjy!=0) k=0;break;else k=1; if (k=1) rowP ass On e();if (x=i) rowP ass On e();if (k=2)if (yo=y) remove。;if (yo<y) for (n=yO;n<=y-1 ;n+ ) if (gridi n !=0) k=0;break;if(gri

16、di n=0 && n=y-1) remove();if (y0>y) for (n=y0;n>=y+1 ;n-) if (gridi n !=0) k=0;break;if(gridi n=0 && n=y+1) remove();p ublic void lineP ass On e()if (y0>j) /第一按鈕同行空按鈕在左邊f(xié)or (i=y0-1;i>=j ;i- ) /判斷第一按鈕同左側(cè)空按鈕之間有沒(méi)按鈕 if (gridx0i!=0) k=0;break;else k=2; /K=2說(shuō)明通過(guò)了第二次驗(yàn)證if (y0<

17、j) /第一按鈕同行空按鈕在與第二按鈕之間for (i=y0+1;i<=j ;i+)if (gridx0i!=0) k=0;break;else k=2; p ublic void rowP ass On e()if (xO>i) for (j=xO-1;j>=i ;j- ) if (gridjyO!=O) k=0;break;else k=2; if (x0<i) for (j=x0+1;j<=i ;j+ ) if (gridjy0!=0) k=0;break;else k=2; p ublic void remove()firstButto n. setVis

18、ible(false);sec on dButt on. setVisible(false);fraction。;p ress In formati on=false;k=0;gridx0y0=0;gridxy=0;p ublic void acti onP erformed(Act ion Eve nt e) if(e.getSource ()=n ewlyButt on) in t grid = new in t87;this.grid = grid;ran domBuild();mai nFrame.setVisible(false);p ress In formati on=false;init();if(e.getSource()=exitButto n)System.exit(O);if(e.getSource()=resetButt on)reload();

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論