jav課程設(shè)計(jì)報(bào)告書(shū)——連連看_第1頁(yè)
已閱讀1頁(yè),還剩34頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p><b>  第一章 緒論</b></p><p>  Java語(yǔ)言的設(shè)計(jì)可以追溯到1991年,SUN MicorSystem 公司為了開(kāi)發(fā)消費(fèi)電子產(chǎn)品市場(chǎng),成立了由Jame Gosling、Bill Joe等人組成的Green開(kāi)發(fā)小組。他們發(fā)現(xiàn)現(xiàn)有的語(yǔ)言如C/C++等在安全性和對(duì)芯片與操作系統(tǒng)的依賴性方面并不適合家用消費(fèi)電子產(chǎn)品,于是他們開(kāi)發(fā)了一個(gè)名為 Oak的軟件,但當(dāng)

2、時(shí)并沒(méi)有引起人們的注意 。后來(lái)Oak演變?yōu)楦鼘?shí)用的系統(tǒng)star5even(7),但這些技術(shù)上成功的產(chǎn)品并未獲得商業(yè)上的成功。</p><p>  直到1994年下半年,Internet 就的迅猛發(fā)展,環(huán)球信息網(wǎng)www的快速增長(zhǎng),使得 SUN 公司把 Oak 的技術(shù)應(yīng)用于網(wǎng)絡(luò),并正式命名為Java。1995年 ,SUN公司正式發(fā)布了Java語(yǔ)言,Java在網(wǎng)絡(luò)上的獨(dú)特優(yōu)勢(shì)使得它逐漸成為Internet上受歡迎的開(kāi)發(fā)

3、與編程語(yǔ)言,一些著名的計(jì)算機(jī)公司紛紛購(gòu)買了 Java 語(yǔ)言的使用權(quán)。1996年SUN公司成立了Javasoft分公司來(lái)維護(hù)和發(fā)展Java語(yǔ)言。</p><p>  在所有搭載了Java的終端中,手機(jī)是最為普及的一類設(shè)備。J2ME是SUN公司專門(mén)用于手機(jī)軟件開(kāi)發(fā)的平臺(tái),隨著MIDP2.0的發(fā)布,特別是新增加的GameAPI使得游戲開(kāi)發(fā)者能更專注于游戲功能的增強(qiáng),研發(fā)手機(jī)游戲具有一定的現(xiàn)實(shí)意義。反而是 J2SE ,似

4、乎只是被人們用來(lái)做一做程序界面的,就連 APPLET 也很少有人使用了(畢竟有了 FLASH )。用 JAVA 來(lái)開(kāi)發(fā)桌面平臺(tái)的游戲,似乎很少有人這么做。前段日子我迷上的 QQ 游戲中的“連連看”,游戲之余,突發(fā)奇想,也想自己用做一個(gè)試試,經(jīng)過(guò)一些天的奮戰(zhàn),終于完成了一個(gè)小型的java連連看游戲。</p><p>  該課程設(shè)計(jì)是基于J2SE環(huán)境編程開(kāi)發(fā)的一個(gè)用數(shù)字來(lái)玩的連連看游戲 。在程序開(kāi)始引用了awt ,

5、swing 等包來(lái)實(shí)現(xiàn)用布局管理器來(lái)開(kāi)發(fā)游戲界面.期間用數(shù)組來(lái)實(shí)現(xiàn)數(shù)字相消的核心算法。</p><p>  在程序一開(kāi)始引用了 awt 、swing 等包,運(yùn)用里面是組件創(chuàng)建Frame,然后添加面板,再運(yùn)用BorderLayout 把面板分為東、西、南、北、中 五個(gè)板塊,然后在中間板塊中運(yùn)用GirdLayout分成6行5列的Button 。之后在6行5列的Button上面添加15對(duì)數(shù)字 。</p>

6、<p>  然后定義方法xiao ,分兩個(gè)數(shù)字相鄰、同行、不同行,運(yùn)用數(shù)組的原理設(shè)計(jì)算法。戲中的地圖看作是一個(gè)二維數(shù)組,其中的所有數(shù)字(以下稱“點(diǎn)”)可以看作是數(shù)組中的一個(gè)具體的元素。那么,游戲中相同的數(shù)字可以看作是數(shù)組中不同位置兩個(gè)值相同的元素。至于直線,讓我們給組數(shù)中的每一個(gè)元素賦一個(gè)特殊的值如 0 ,以表示地圖上空白的位置。并且同時(shí)規(guī)定:當(dāng)連續(xù)的具有該特殊值的點(diǎn)的橫向索引或縱向索引相同時(shí),可以認(rèn)為這是一條直線。當(dāng)數(shù)組中兩

7、點(diǎn)的值相同并且兩點(diǎn)間只需要不超過(guò) 3 根直線能連接起來(lái)的時(shí)候,就讓這兩點(diǎn)的值變?yōu)?0 ,如果數(shù)組中全是 0 值的點(diǎn),就認(rèn)為游戲已經(jīng)結(jié)束。</p><p><b>  第二章 問(wèn)題定義</b></p><p><b>  2.1功能需求:</b></p><p>  該游戲界面為方格類型,由縱6橫7的直線平行垂直交叉組成,分

8、別是6行5列方塊拼接,共有30格小方塊。方塊上隨機(jī)分布一些數(shù)字,數(shù)字的要求是至少兩兩相同,位置隨機(jī)打亂。</p><p>  游戲規(guī)則是將相同數(shù)字的方塊連接,但要滿足只能至少單邊無(wú)阻礙呈直線趨勢(shì)連接,否則視為無(wú)效,若連接一對(duì)成功就消失于界面,繼續(xù)游戲,直到游戲結(jié)束。</p><p><b>  1. 消去功能:</b></p><p>  a.

9、實(shí)現(xiàn)的相同數(shù)字在相鄰位置的相消</p><p>  b.實(shí)現(xiàn)不相鄰位置相同數(shù)字的相消</p><p>  2. 退出:點(diǎn)擊左下方 “退出游戲”按鈕,結(jié)束游戲。</p><p>  3. 重列: 游戲過(guò)程中,遇到困難難以尋找下一符合要求的一對(duì)數(shù)字,可按下重列按扭重新排列方可繼續(xù)游戲。 4.再來(lái)一局:重新一局新游戲。</p><p>  

10、2.2 性能需求:</p><p>  1.具有良好的可靠性和安全性。</p><p>  2.對(duì)于系統(tǒng)要求比較低。</p><p>  3.使用范圍比較廣。</p><p>  第三章 總體設(shè)計(jì)與詳細(xì)設(shè)計(jì)</p><p><b>  3.1.總體設(shè)計(jì):</b></p><

11、p>  創(chuàng)建button( 數(shù)字 退出 重列 再來(lái)一局 )</p><p><b>  Label(分?jǐn)?shù))</b></p><p><b>  3.2 詳細(xì)設(shè)計(jì):</b></p><p>  類lianliankan:</p><p>  按下退出、重列、再來(lái)一局:</p>&l

12、t;p>  判斷兩個(gè)按鈕上的數(shù)字是否相等 </p><p><b>  面板:</b></p><p>  判斷兩個(gè)按鈕是否可消去:</p><p>  在30個(gè)按鈕上隨機(jī)添加數(shù)字:</p><p>  將游戲地圖轉(zhuǎn)化為數(shù)組來(lái)描述:</p><p>  判斷兩個(gè)按鈕是否可消去:</p&

13、gt;<p><b>  消去:</b></p><p><b>  第四章 編碼實(shí)現(xiàn)</b></p><p>  給每個(gè)button 上面添加數(shù)字:</p><p>  public void randomBuild() {</p><p>  int randoms,cols,r

14、ows;</p><p>  for(int twins=1;twins<=15;twins++) {</p><p>  randoms=(int)(Math.random()*25+1);</p><p>  for(int alike=1;alike<=2;alike++) {</p><p>  cols=(int)(Ma

15、th.random()*6+1);</p><p>  rows=(int)(Math.random()*5+1);</p><p>  while(grid[cols][rows]!=0) {</p><p>  cols=(int)(Math.random()*6+1);</p><p>  rows=(int)(Math.random(

16、)*5+1);</p><p><b>  }</b></p><p>  this.grid[cols][rows]=randoms;</p><p><b>  }</b></p><p><b>  }</b></p><p><b> 

17、 }</b></p><p>  將游戲地圖轉(zhuǎn)換為數(shù)組來(lái)描述:</p><p>  public void reload() {</p><p>  int save[] = new int[30];</p><p>  int n=0,cols,rows;</p><p>  int grid[][]=

18、new int[8][7];</p><p>  for(int i=0;i<=6;i++) {</p><p>  for(int j=0;j<=5;j++) {</p><p>  if(this.grid[i][j]!=0) {</p><p>  save[n]=this.grid[i][j];</p>&l

19、t;p><b>  n++;</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  n=n-1;</b></p>

20、<p>  this.grid=grid;</p><p>  while(n>=0) {</p><p>  cols=(int)(Math.random()*6+1);</p><p>  rows=(int)(Math.random()*5+1);</p><p>  while(grid[cols][rows]!=0

21、) {</p><p>  cols=(int)(Math.random()*6+1);</p><p>  rows=(int)(Math.random()*5+1);</p><p><b>  }</b></p><p>  this.grid[cols][rows]=save[n];</p><

22、;p><b>  n--;</b></p><p><b>  }</b></p><p>  mainFrame.setVisible(false);</p><p>  pressInformation=false; </p><p><b>  init();</b>

23、;</p><p>  for(int i = 0;i < 6;i++){</p><p>  for(int j = 0;j < 5;j++ ){</p><p>  if(grid[i+1][j+1]==0)</p><p>  diamondsButton[i][j].setVisible(false);</p>

24、<p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  消去按鈕:</b></p><p>  public void xiao() { </p>

25、<p>  if((x0==x&&(y0==y+1||y0==y-1))||((x0==x+1||x0==x-1)&&(y0==y))){ </p><p><b>  remove();</b></p><p><b>  }</b></p><p><b>  e

26、lse{</b></p><p>  for (j=0;j<7;j++ ) {</p><p>  if (grid[x0][j]==0){ </p><p>  if (y>j) { </p><p>  for (i=y-1;i>=j;i-- ){ </p><p>  if (gri

27、d[x][i]!=0) {</p><p><b>  k=0;</b></p><p><b>  break;</b></p><p><b>  }</b></p><p>  else{ k=1; } </p><p><b>  }&

28、lt;/b></p><p>  if (k==1) {</p><p>  linePassOne();</p><p><b>  }</b></p><p><b>  }</b></p><p>  if (y<j){ </p><p&

29、gt;  for (i=y+1;i<=j ;i++ ){ </p><p>  if (grid[x][i]!=0){</p><p><b>  k=0;</b></p><p><b>  break;</b></p><p><b>  }</b></p>

30、;<p>  else { k=1; }</p><p><b>  }</b></p><p>  if (k==1){</p><p>  linePassOne();</p><p><b>  }</b></p><p><b>  }<

31、/b></p><p>  if (y==j ) {</p><p>  linePassOne();</p><p><b>  }</b></p><p><b>  }</b></p><p>  if (k==2) {</p><p> 

32、 if (x0==x) {</p><p><b>  remove();</b></p><p><b>  }</b></p><p>  if (x0<x) {</p><p>  for (n=x0;n<=x-1;n++ ) {</p><p>  if

33、(grid[n][j]!=0) {</p><p><b>  k=0;</b></p><p><b>  break;</b></p><p><b>  }</b></p><p>  if(grid[n][j]==0 && n==x-1) {</p

34、><p><b>  remove();</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  if (x0>x) {</p>

35、;<p>  for (n=x0;n>=x+1 ;n-- ) {</p><p>  if (grid[n][j]!=0) {</p><p><b>  k=0;</b></p><p><b>  break;</b></p><p><b>  }</b&g

36、t;</p><p>  if(grid[n][j]==0 && n==x+1) {</p><p><b>  remove();</b></p><p><b>  }</b></p><p><b>  }</b></p><p>

37、<b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  for (i=0;i<8;i++ ) { </p><p>  if (grid[i][y0]==0) {</p><p>

38、  if (x>i) {</p><p>  for (j=x-1;j>=i ;j-- ) {</p><p>  if (grid[j][y]!=0) {</p><p><b>  k=0;</b></p><p><b>  break;</b></p><p&

39、gt;<b>  }</b></p><p>  else { k=1; }</p><p><b>  }</b></p><p>  if (k==1) {</p><p>  rowPassOne();</p><p><b>  }</b><

40、;/p><p><b>  }</b></p><p>  if (x<i) {</p><p>  for (j=x+1;j<=i;j++ ) {</p><p>  if (grid[j][y]!=0) {</p><p><b>  k=0;</b></p

41、><p><b>  break;</b></p><p><b>  }</b></p><p>  else { k=1; }</p><p><b>  }</b></p><p>  if (k==1) {</p><p> 

42、 rowPassOne();</p><p><b>  }</b></p><p><b>  }</b></p><p>  if (x==i) {</p><p>  rowPassOne();</p><p><b>  }</b></p&

43、gt;<p><b>  }</b></p><p>  if (k==2){</p><p>  if (y0==y) {</p><p><b>  remove();</b></p><p><b>  }</b></p><p> 

44、 if (y0<y) {</p><p>  for (n=y0;n<=y-1 ;n++ ) {</p><p>  if (grid[i][n]!=0) {</p><p><b>  k=0;</b></p><p><b>  break;</b></p><p

45、><b>  }</b></p><p>  if(grid[i][n]==0 && n==y-1) {</p><p><b>  remove();</b></p><p><b>  }</b></p><p><b>  }</b&

46、gt;</p><p><b>  }</b></p><p>  if (y0>y) {</p><p>  for (n=y0;n>=y+1 ;n--) {</p><p>  if (grid[i][n]!=0) {</p><p><b>  k=0;</b&g

47、t;</p><p><b>  break;</b></p><p><b>  }</b></p><p>  if(grid[i][n]==0 && n==y+1) {</p><p><b>  remove();</b></p><

48、p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>

49、<b>  }</b></p><p><b>  }</b></p><p>  public void linePassOne(){</p><p>  if (y0>j){ </p><p>  for (i=y0-1;i>=j ;i-- ){ </p><p&

50、gt;  if (grid[x0][i]!=0) {</p><p><b>  k=0;</b></p><p><b>  break;</b></p><p><b>  }</b></p><p>  else { k=2; } </p><p>

51、;<b>  }</b></p><p><b>  }</b></p><p>  if (y0<j){ </p><p>  for (i=y0+1;i<=j ;i++){</p><p>  if (grid[x0][i]!=0) {</p><p><

52、;b>  k=0;</b></p><p><b>  break;</b></p><p><b>  }</b></p><p>  else{ k=2; }</p><p><b>  }</b></p><p><b>

53、;  }</b></p><p><b>  }</b></p><p>  public void rowPassOne(){</p><p>  if (x0>i) {</p><p>  for (j=x0-1;j>=i ;j-- ) {</p><p>  if (

54、grid[j][y0]!=0) {</p><p><b>  k=0;</b></p><p><b>  break;</b></p><p><b>  }</b></p><p>  else { k=2; }</p><p><b>

55、  }</b></p><p><b>  }</b></p><p>  if (x0<i) {</p><p>  for (j=x0+1;j<=i ;j++ ) {</p><p>  if (grid[j][y0]!=0) {</p><p><b>  

56、k=0;</b></p><p><b>  break;</b></p><p><b>  }</b></p><p>  else { k=2; }</p><p><b>  }</b></p><p><b>  }<

57、;/b></p><p><b>  }</b></p><p><b>  消去按鈕:</b></p><p>  public void remove(){</p><p>  firstButton.setVisible(false);</p><p>  sec

58、ondButton.setVisible(false);</p><p>  fraction();</p><p>  pressInformation=false;</p><p><b>  k=0;</b></p><p>  grid[x0][y0]=0;</p><p>  grid[

59、x][y]=0;</p><p><b>  }</b></p><p><b>  第五章 調(diào)試與測(cè)試</b></p><p><b>  第六章 總結(jié)與心得</b></p><p>  通過(guò)此次課程設(shè)計(jì),將我本學(xué)期所學(xué)的JAVA知識(shí)得到鞏固和應(yīng)用,而且學(xué)到了很多在書(shū)本上所沒(méi)

60、有學(xué)到過(guò)的知識(shí)。通過(guò)這次課程設(shè)計(jì)使我懂得了理論與實(shí)際相結(jié)合是很重要的,只有理論知識(shí)是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識(shí)與實(shí)踐相結(jié)合起來(lái),從理論中得出結(jié)論,才能真正為社會(huì)服務(wù),從而提高自己的實(shí)際動(dòng)手能力和獨(dú)立思考的能力。在設(shè)計(jì)的過(guò)程中遇到問(wèn)題,可以說(shuō)得是困難重重,這畢竟第一次做的,難免會(huì)遇到過(guò)各種各樣的問(wèn)題,同時(shí)在設(shè)計(jì)的過(guò)程中發(fā)現(xiàn)了自己的不足之處,對(duì)以前所學(xué)過(guò)的知識(shí)理解得不夠深刻,掌握得不夠牢固,尤其對(duì)函數(shù)調(diào)用的正確使用不夠熟悉,通過(guò)這次課

61、程設(shè)計(jì)之后,一定把以前所學(xué)過(guò)的知識(shí)重新溫故。而且在課程設(shè)計(jì)過(guò)程中,我也學(xué)到了很多人生的哲理,懂得怎么樣去制定計(jì)劃,怎么樣去實(shí)現(xiàn)這個(gè)計(jì)劃,并掌握了在執(zhí)行過(guò)程中怎么樣去克服心理上的不良情緒,編程看起來(lái)似乎是一件很枯燥、乏味的事情,但是經(jīng)歷了這次大程序的編輯之后,發(fā)現(xiàn)其實(shí)里面還是充滿樂(lè)趣的,一旦真的專研下去什么事情都可以放下,來(lái)認(rèn)真研究。</p><p>  這次課程設(shè)計(jì)還讓我懂得了寫(xiě)程序不能閉門(mén)造車,要努力拓寬知識(shí)面

62、,開(kāi)闊視野,拓展思維,很多設(shè)計(jì)的思想、理念在網(wǎng)上都是公布出來(lái)了的,不需要自己從頭到尾思考,可以直接沿用,這就需要提高我們的動(dòng)手能力,在網(wǎng)上從無(wú)盡的資料中找到我們所需要的。</p><p><b>  附 錄</b></p><p><b>  附錄一</b></p><p><b>  源代碼:</b>

63、;</p><p>  import javax.swing.*;</p><p>  import java.awt.*;</p><p>  import java.awt.event.*;</p><p>  public class lianliankan implements ActionListener</p>&l

64、t;p><b>  {</b></p><p>  JFrame mainFrame; </p><p>  Container thisContainer;</p><p>  JPanel centerPanel,southPanel,northPanel; </p><p>  JButton diamond

65、sButton[][] = new JButton[6][5];</p><p>  JButton exitButton,resetButton,newlyButton; </p><p>  JLabel fractionLable=new JLabel("0"); </p><p>  JButton firstButton,secondB

66、utton; </p><p>  int grid[][] = new int[8][7];</p><p>  static boolean pressInformation=false; </p><p>  int x0=0,y0=0,x=0,y=0,fristMsg=0,secondMsg=0,validateLV; </p><p&g

67、t;  int i,j,k,n;</p><p>  public void init(){</p><p>  mainFrame=new JFrame("付莉的連連看");</p><p>  thisContainer = mainFrame.getContentPane();</p><p>  thisConta

68、iner.setLayout(new BorderLayout());</p><p>  centerPanel=new JPanel();</p><p>  southPanel=new JPanel();</p><p>  northPanel=new JPanel();</p><p>  thisContainer.add(ce

69、nterPanel,"Center");</p><p>  thisContainer.add(southPanel,"South");</p><p>  thisContainer.add(northPanel,"North");</p><p>  centerPanel.setLayout(new

70、 GridLayout(6,5));</p><p>  for(int cols = 0;cols < 6;cols++){</p><p>  for(int rows = 0;rows < 5;rows++ ){</p><p>  diamondsButton[cols][rows]=new JButton(String.valueOf(grid

71、[cols+1][rows+1]));</p><p>  diamondsButton[cols][rows].addActionListener(this);</p><p>  centerPanel.add(diamondsButton[cols][rows]);</p><p><b>  }</b></p><p

72、><b>  }</b></p><p>  exitButton=new JButton("退出");</p><p>  exitButton.addActionListener(this);</p><p>  resetButton=new JButton("重列");</p>

73、<p>  resetButton.addActionListener(this);</p><p>  newlyButton=new JButton("再來(lái)一局");</p><p>  newlyButton.addActionListener(this);</p><p>  southPanel.add(exitButton

74、);</p><p>  southPanel.add(resetButton);</p><p>  southPanel.add(newlyButton);</p><p>  fractionLable.setText(String.valueOf(Integer.parseInt(fractionLable.getText())));</p>

75、<p>  northPanel.add(fractionLable);</p><p>  mainFrame.setBounds(280,100,500,450);</p><p>  mainFrame.setVisible(true);</p><p><b>  }</b></p><p>  pub

76、lic void randomBuild() {</p><p>  int randoms,cols,rows;</p><p>  for(int twins=1;twins<=15;twins++) {</p><p>  randoms=(int)(Math.random()*25+1);</p><p>  for(int a

77、like=1;alike<=2;alike++) {</p><p>  cols=(int)(Math.random()*6+1);</p><p>  rows=(int)(Math.random()*5+1);</p><p>  while(grid[cols][rows]!=0) {</p><p>  cols=(int)(

78、Math.random()*6+1);</p><p>  rows=(int)(Math.random()*5+1);</p><p><b>  }</b></p><p>  this.grid[cols][rows]=randoms;</p><p><b>  }</b></p>

79、;<p><b>  }</b></p><p><b>  }</b></p><p>  public void fraction(){</p><p>  fractionLable.setText(String.valueOf(Integer.parseInt(fractionLable.getTex

80、t())+100));</p><p><b>  }</b></p><p>  public void reload() {</p><p>  int save[] = new int[30];</p><p>  int n=0,cols,rows;</p><p>  int grid[

81、][]= new int[8][7];</p><p>  for(int i=0;i<=6;i++) {</p><p>  for(int j=0;j<=5;j++) {</p><p>  if(this.grid[i][j]!=0) {</p><p>  save[n]=this.grid[i][j];</p>

82、;<p><b>  n++;</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  n=n-1;</b></p

83、><p>  this.grid=grid;</p><p>  while(n>=0) {</p><p>  cols=(int)(Math.random()*6+1);</p><p>  rows=(int)(Math.random()*5+1);</p><p>  while(grid[cols][row

84、s]!=0) {</p><p>  cols=(int)(Math.random()*6+1);</p><p>  rows=(int)(Math.random()*5+1);</p><p><b>  }</b></p><p>  this.grid[cols][rows]=save[n];</p>

85、<p><b>  n--;</b></p><p><b>  }</b></p><p>  mainFrame.setVisible(false);</p><p>  pressInformation=false; </p><p><b>  init();<

86、/b></p><p>  for(int i = 0;i < 6;i++){</p><p>  for(int j = 0;j < 5;j++ ){</p><p>  if(grid[i+1][j+1]==0)</p><p>  diamondsButton[i][j].setVisible(false);</

87、p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  public void estimateEven(int placeX,int placeY,JButton bz) {</p>&

88、lt;p>  if(pressInformation==false) {</p><p><b>  x=placeX;</b></p><p><b>  y=placeY;</b></p><p>  secondMsg=grid[x][y];</p><p>  secondButton

89、=bz;</p><p>  pressInformation=true;</p><p><b>  }</b></p><p><b>  else {</b></p><p><b>  x0=x;</b></p><p><b>  y

90、0=y;</b></p><p>  fristMsg=secondMsg;</p><p>  firstButton=secondButton;</p><p><b>  x=placeX;</b></p><p><b>  y=placeY;</b></p>&l

91、t;p>  secondMsg=grid[x][y];</p><p>  secondButton=bz;</p><p>  if(fristMsg==secondMsg && secondButton!=firstButton){</p><p><b>  xiao();</b></p><p&

92、gt;<b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  public void xiao() { </p><p>  if((x0==x &&(y0==y+1||y0==y-1)) ||

93、 ((x0==x+1||x0==x-1)&&(y0==y))){ </p><p><b>  remove();</b></p><p><b>  }</b></p><p><b>  else{</b></p><p>  for (j=0;j<7

94、;j++ ) {</p><p>  if (grid[x0][j]==0){ </p><p>  if (y>j) { </p><p>  for (i=y-1;i>=j;i-- ){ </p><p>  if (grid[x][i]!=0) {</p><p><b>  k=0;<

95、;/b></p><p><b>  break;</b></p><p><b>  }</b></p><p>  else{ k=1; } </p><p><b>  }</b></p><p>  if (k==1) {</p>

96、;<p>  linePassOne();</p><p><b>  }</b></p><p><b>  }</b></p><p>  if (y<j){ </p><p>  for (i=y+1;i<=j ;i++ ){ </p><p>

97、;  if (grid[x][i]!=0){</p><p><b>  k=0;</b></p><p><b>  break;</b></p><p><b>  }</b></p><p>  else { k=1; }</p><p><

98、b>  }</b></p><p>  if (k==1){</p><p>  linePassOne();</p><p><b>  }</b></p><p><b>  }</b></p><p>  if (y==j ) {</p>

99、<p>  linePassOne();</p><p><b>  }</b></p><p><b>  }</b></p><p>  if (k==2) {</p><p>  if (x0==x) {</p><p><b>  remove(

100、);</b></p><p><b>  }</b></p><p>  if (x0<x) {</p><p>  for (n=x0;n<=x-1;n++ ) {</p><p>  if (grid[n][j]!=0) {</p><p><b>  k=0

101、;</b></p><p><b>  break;</b></p><p><b>  }</b></p><p>  if(grid[n][j]==0 && n==x-1) {</p><p><b>  remove();</b></p&

102、gt;<p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  if (x0>x) {</p><p>  for (n=x0;n>=x+1 ;n-- ) {</p>

103、<p>  if (grid[n][j]!=0) {</p><p><b>  k=0;</b></p><p><b>  break;</b></p><p><b>  }</b></p><p>  if(grid[n][j]==0 &&

104、 n==x+1) {</p><p><b>  remove();</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>

105、  }</b></p><p><b>  }</b></p><p>  for (i=0;i<8;i++ ) { </p><p>  if (grid[i][y0]==0) {</p><p>  if (x>i) {</p><p>  for (j=x-1;j&g

106、t;=i ;j-- ) {</p><p>  if (grid[j][y]!=0) {</p><p><b>  k=0;</b></p><p><b>  break;</b></p><p><b>  }</b></p><p>  else

107、 { k=1; }</p><p><b>  }</b></p><p>  if (k==1) {</p><p>  rowPassOne();</p><p><b>  }</b></p><p><b>  }</b></p>

108、<p>  if (x<i) {</p><p>  for (j=x+1;j<=i;j++ ) {</p><p>  if (grid[j][y]!=0) {</p><p><b>  k=0;</b></p><p><b>  break;</b></p>

109、<p><b>  }</b></p><p>  else { k=1; }</p><p><b>  }</b></p><p>  if (k==1) {</p><p>  rowPassOne();</p><p><b>  }</

110、b></p><p><b>  }</b></p><p>  if (x==i) {</p><p>  rowPassOne();</p><p><b>  }</b></p><p><b>  }</b></p><

111、p>  if (k==2){</p><p>  if (y0==y) {</p><p><b>  remove();</b></p><p><b>  }</b></p><p>  if (y0<y) {</p><p>  for (n=y0;n<

112、;=y-1 ;n++ ) {</p><p>  if (grid[i][n]!=0) {</p><p><b>  k=0;</b></p><p><b>  break;</b></p><p><b>  }</b></p><p>  if(

113、grid[i][n]==0 && n==y-1) {</p><p><b>  remove();</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p

114、><p>  if (y0>y) {</p><p>  for (n=y0;n>=y+1 ;n--) {</p><p>  if (grid[i][n]!=0) {</p><p><b>  k=0;</b></p><p><b>  break;</b>&l

115、t;/p><p><b>  }</b></p><p>  if(grid[i][n]==0 && n==y+1) {</p><p><b>  remove();</b></p><p><b>  }</b></p><p><

116、b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>

117、  }</b></p><p>  public void linePassOne(){</p><p>  if (y0>j){ </p><p>  for (i=y0-1;i>=j ;i-- ){ </p><p>  if (grid[x0][i]!=0) {</p><p><b

118、>  k=0;</b></p><p><b>  break;</b></p><p><b>  }</b></p><p>  else { k=2; } </p><p><b>  }</b></p><p><b>

119、;  }</b></p><p>  if (y0<j){ </p><p>  for (i=y0+1;i<=j ;i++){</p><p>  if (grid[x0][i]!=0) {</p><p><b>  k=0;</b></p><p><b>

120、  break;</b></p><p><b>  }</b></p><p>  else{ k=2; }</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</

121、b></p><p>  public void rowPassOne(){</p><p>  if (x0>i) {</p><p>  for (j=x0-1;j>=i ;j-- ) {</p><p>  if (grid[j][y0]!=0) {</p><p><b>  k=0

122、;</b></p><p><b>  break;</b></p><p><b>  }</b></p><p>  else { k=2; }</p><p><b>  }</b></p><p><b>  }</b

123、></p><p>  if (x0<i) {</p><p>  for (j=x0+1;j<=i ;j++ ) {</p><p>  if (grid[j][y0]!=0) {</p><p><b>  k=0;</b></p><p><b>  break;

124、</b></p><p><b>  }</b></p><p>  else { k=2; }</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b>&l

125、t;/p><p>  public void remove(){</p><p>  firstButton.setVisible(false);</p><p>  secondButton.setVisible(false);</p><p>  fraction();</p><p>  pressInformati

126、on=false;</p><p><b>  k=0;</b></p><p>  grid[x0][y0]=0;</p><p>  grid[x][y]=0;</p><p><b>  }</b></p><p>  public void actionPerform

127、ed(ActionEvent e) {</p><p>  if(e.getSource()==newlyButton){</p><p>  int grid[][] = new int[8][7];</p><p>  this.grid = grid;</p><p>  randomBuild();</p><p&

128、gt;  mainFrame.setVisible(false);</p><p>  pressInformation=false;</p><p><b>  init();</b></p><p><b>  }</b></p><p>  if(e.getSource()==exitButt

129、on)</p><p>  System.exit(0);</p><p>  if(e.getSource()==resetButton)</p><p><b>  reload();</b></p><p>  for(int cols = 0;cols < 6;cols++){</p><

130、;p>  for(int rows = 0;rows < 5;rows++ ){</p><p>  if(e.getSource()==diamondsButton[cols][rows])</p><p>  estimateEven(cols+1,rows+1,diamondsButton[cols][rows]);</p><p><b&g

131、t;  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  public static void main(String[] args) {</p><p>  lianliankan llk = new lianliankan

132、();</p><p>  llk.randomBuild();</p><p>  llk.init();</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  附錄二: </b></p>

溫馨提示

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

評(píng)論

0/150

提交評(píng)論