版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 第01講 重力與彈力(第2課時(shí))-2024-2025學(xué)年高一物理同步課堂(人教版2019必修第一冊(cè))
- 八年級(jí)物理第一次月考卷(考試版A4)【考試范圍:第1~2章】(蘇科版2024)
- TGXAS-全州干米粉編制說(shuō)明
- 河北武邑中學(xué)2025年高三下學(xué)期期末六校聯(lián)考語(yǔ)文試題含解析
- 河北省廊坊市2024-2025學(xué)年高三第二次月考語(yǔ)文試題試卷含解析
- 合肥市重點(diǎn)中學(xué)2025年高三二調(diào)語(yǔ)文試題含解析
- 物理透鏡課件 2024-2025學(xué)年八年級(jí)物理蘇科版上冊(cè)
- 貴州畢節(jié)市威寧縣第八中學(xué)2024-2025學(xué)年高考語(yǔ)文試題終極仿真預(yù)測(cè)試卷含解析
- 廣東省汕頭市下蓬中學(xué)2025屆高三下學(xué)期學(xué)業(yè)質(zhì)量監(jiān)測(cè)(期末)語(yǔ)文試題含解析
- DB54T 0413-2024藏豬規(guī)模養(yǎng)殖場(chǎng)生物安全技術(shù)規(guī)范
- 2022-2023學(xué)年八年級(jí)英語(yǔ)上學(xué)期第一次階段性檢測(cè)卷及答案(人教版)
- 網(wǎng)絡(luò)行業(yè)網(wǎng)絡(luò)安全防護(hù)方案
- 遠(yuǎn)程醫(yī)療行業(yè)市場(chǎng)需求分析及未來(lái)五至十年行業(yè)預(yù)測(cè)報(bào)告
- 2024-2030年中國(guó)泡花堿市場(chǎng)應(yīng)用領(lǐng)域分析及運(yùn)營(yíng)狀況監(jiān)測(cè)研究報(bào)告
- 人教版(2024)一年級(jí)道德與法治上冊(cè)第三單元第12課《玩也有學(xué)問(wèn)》教學(xué)課件
- 2024反詐知識(shí)競(jìng)賽考試題庫(kù)及答案(三份)
- 《藥品管理法》知識(shí)競(jìng)賽考試題庫(kù)500多題(含答案)
- 胸外科快速康復(fù)護(hù)理課件
- 村衛(wèi)生室靜脈輸液規(guī)范和安全管理制度
- 2024年中國(guó)農(nóng)業(yè)銀行股份有限公司校園招聘考試試題參考答案
- 部編版小學(xué)六年級(jí)上冊(cè)《道德與法治》同步練習(xí)全套
評(píng)論
0/150
提交評(píng)論