2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩29頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p><b>  成 績(jī) 評(píng) 定 表</b></p><p><b>  課程設(shè)計(jì)任務(wù)書</b></p><p><b>  目 錄</b></p><p>  1.設(shè)計(jì)目的 ---------------------------------------------------------

2、-------------------- 4</p><p>  2.總體設(shè)計(jì) ----------------------------------------------------------------------------- 4</p><p>  3.關(guān)鍵技術(shù) -----------------------------------------------------------

3、------------------ 5</p><p>  4.程序流程 ----------------------------------------------------------------------------- 8</p><p>  5.主要源代碼 ------------------------------------------------------------

4、-------------- 8</p><p>  6.運(yùn)行結(jié)果及結(jié)論 ------------------------------------------------------------------- 26</p><p>  7.參考文獻(xiàn) -----------------------------------------------------------------------

5、---- 29</p><p><b>  1.設(shè)計(jì)目的</b></p><p>  通過選擇掃雷游戲軟件設(shè)計(jì),這個(gè)綜合性的題目作為本次的課程設(shè)計(jì)。可以讓我們更加熟悉Java程序設(shè)計(jì)這門課程,學(xué)會(huì)熟練使用Java這個(gè)軟件,加深對(duì)Java語言的掌握,提高編程水平。同時(shí)培養(yǎng)獨(dú)立思考和同學(xué)間團(tuán)結(jié)合作的能力,為畢業(yè)設(shè)計(jì)以及將來的工作打下堅(jiān)實(shí)的基礎(chǔ)。</p>&l

6、t;p><b>  2.總體設(shè)計(jì)</b></p><p><b>  2.1 設(shè)計(jì)需求</b></p><p>  在設(shè)計(jì)掃雷游戲時(shí),需要編寫7個(gè)源文件:MineGame.java,MineArea.java,Block.java,BlockView.java,LayMines.java,ShowRecord.java,Record.jav

7、a 除了這七個(gè)源文件外,還需要Java系統(tǒng)提供一些重要的類,如File,JButton和JLabel等類。</p><p>  2.2 系統(tǒng)功能設(shè)計(jì)流程圖</p><p>  2.3 類的組合關(guān)系</p><p><b>  3.關(guān)鍵技術(shù)</b></p><p>  3.1 MineGame.java(主類):</

8、p><p>  3.1.1 成員變量</p><p>  bar和fileMenu 提供菜單操作,單擊菜單操作中的選項(xiàng)為“初級(jí)”,“中級(jí)”,“高級(jí)”或“掃雷英雄榜”;mineArea 是掃雷區(qū)域,提供有關(guān)雷的主要功能;英雄榜”負(fù)責(zé)存放三個(gè)級(jí)別的掃雷最好成績(jī);showHeroRecord負(fù)責(zé)顯示英雄榜中的數(shù)據(jù)</p><p><b>  3.1.2 方法<

9、/b></p><p>  MineGame()是構(gòu)造窗口,負(fù)責(zé)完成窗口的初始化。</p><p>  ActionPerformed(ActionEvent)方法是MineGame類實(shí)現(xiàn)的ActionListener接口中的方法,該方法負(fù)責(zé)執(zhí)行菜單發(fā)出的有關(guān)命令。用戶選擇菜單中的菜單項(xiàng)可觸發(fā)ActionEvent事件,導(dǎo)致actionPerformed(ActionEvent)方法

10、執(zhí)行相應(yīng)的操作。</p><p>  Main(String[])方法是程序運(yùn)行的入口方法。</p><p>  3.2 MineArea.java:</p><p>  3.2.1 成員變量</p><p>  block和Block類型的數(shù)組,用來確定雷區(qū)有多少需進(jìn)行掃雷的方塊;</p><p>  blockVi

11、ew是BlockView類型的數(shù)組,負(fù)責(zé)block數(shù)組中Block對(duì)象提供視圖;</p><p>  lay是LayMines類型的對(duì)象,負(fù)責(zé)設(shè)置block數(shù)組中的哪些方塊不是雷;</p><p>  record負(fù)責(zé)提供保存成績(jī)的界面,是一個(gè)對(duì)話框,默認(rèn)為不可見,用戶只有掃雷成功后,才可以看見該對(duì)話框;</p><p>  reStart是一個(gè)按鈕對(duì)象,用戶單擊它

12、重新開始游戲;</p><p>  time是計(jì)時(shí)器對(duì)象,負(fù)責(zé)計(jì)算用戶用時(shí)。</p><p><b>  3.2.2 方法</b></p><p>  initMineArea(int,int,int,int)方法可根據(jù)參數(shù)提供的數(shù)據(jù)設(shè)置雷區(qū)的寬度,高度,類的數(shù)目以及雷區(qū)的級(jí)別。</p><p>  actionPerf

13、ormed(actionEvent)是MineArea類實(shí)現(xiàn)的ActionListener接口中的方法。當(dāng)用戶單擊blockView中的某個(gè)方塊時(shí)actionPerformed(actionEvent)執(zhí)行有關(guān)算法。</p><p>  Show()方法是一個(gè)遞歸方法,actionPerformed(actionEvent)方法執(zhí)行將調(diào)用show方法進(jìn)行掃雷。</p><p>  mous

14、ePressed(mouseEvent)方法是MineArea類實(shí)現(xiàn)的MouseListener接口中的方法,當(dāng)用戶按下鼠標(biāo)右鍵時(shí),mousePressed(mouseEvent)方法負(fù)責(zé)讓方塊上顯示一個(gè)探雷標(biāo)記。</p><p>  inquireWin()方法用來判斷用戶掃雷是否成功,如果成功該方法負(fù)責(zé)讓record對(duì)話框可見。</p><p>  3.3 Block.java:<

15、;/p><p>  3.3.1 成員變量</p><p>  name方塊上的名字</p><p>  aroundMineNumber是方塊周圍雷的數(shù)目</p><p>  mineIcon是方塊上雷的圖標(biāo)</p><p>  isMine用來表示方塊是否是雷</p><p>  isMark用來

16、表示方塊是否被標(biāo)記</p><p>  isOpen用來表示方塊是否被挖開</p><p><b>  3.3.2 方法</b></p><p>  setAroundMineNumber(int)方法用來設(shè)置aroundMineNumber的值;getAroundMineNumber()方法用來獲取aroundMineNumber的值。<

17、;/p><p>  3.4 BlockView.java</p><p>  3.4.1 成員變量</p><p>  blockNameOrIcon用來顯示Block對(duì)象的name,number和mineIcon屬性;blockCover用來遮擋blockNameOrIcon;card卡片式布局。</p><p><b>  3.4.

18、2 方法</b></p><p>  giveView(Block block)方法給參數(shù)指定的Block對(duì)象提供視圖;seeBlockNameOrIcon()方法讓用戶看見視圖中的標(biāo)簽,無法看見按鈕;seeBlockCover()方法讓用戶看見視圖中的按鈕,無法看見標(biāo)簽。</p><p>  3.5LayMines.java:</p><p>  3.

19、5.1 成員變量</p><p>  mineIcon用來存放一個(gè)格式為gif的圖像。</p><p><b>  3.5.2 方法</b></p><p>  layMinesForBlock(Block[][],int)方法對(duì)參數(shù)指定的Block數(shù)組進(jìn)行設(shè)置,其中int參數(shù)指定雷的數(shù)目。</p><p>  3.6R

20、ecord.java:</p><p>  3.6.1 成員變量</p><p>  textName提供用戶掃雷優(yōu)勝者出入姓名;用戶單擊“確定”按鈕,可以保存成績(jī)。</p><p><b>  3.6.2 方法</b></p><p>  actionPerformed(ActionEvent)方法是Record類實(shí)現(xiàn)

21、的ActionListener接口中的方法,當(dāng)用戶單擊“確定”按鈕后,該方法被執(zhí)行,所執(zhí)行的操作就是獲取用戶輸入的名字和用時(shí),然后調(diào)用writeRecord(String,String)方法將信息寫入英雄榜中;writeRecord(String,String)負(fù)責(zé)將有關(guān)信息寫入“英雄榜”文件。</p><p>  3.7 ShowRecord:</p><p>  3.7.1 成員變量&

22、lt;/p><p>  file存放文件的引用,用戶單擊“顯示成績(jī)”按鈕,可以查看各個(gè)級(jí)別的最好成績(jī);用戶單擊“重新計(jì)分”按鈕,可以將“英雄榜”中的成績(jī)恢復(fù)為初始值。</p><p><b>  3.7.2 方法</b></p><p>  actionPerformed(ActionEvent)方法是ShowRecord類實(shí)現(xiàn)的ActionLis

23、tener接口中的方法,當(dāng)用戶單擊“顯示成績(jī)”按鈕后,該方法被執(zhí)行,所執(zhí)行的操作就是調(diào)用readAndShow()方法;readAndShow()方法負(fù)責(zé)讀取存放在文件中的各個(gè)級(jí)別的掃雷最好成績(jī)以及掃雷者姓名,并顯示這些相關(guān)信息。</p><p><b>  4.程序流程</b></p><p><b>  5.主要源代碼</b></p&g

24、t;<p>  import java.awt.event.*;</p><p>  import java.awt.*;</p><p>  import javax.swing.*;</p><p>  import javax.swing.border.*;</p><p>  import java.util.*;<

25、;/p><p>  import java.io.*;</p><p>  public class MineGame extends JFrame implements ActionListener{</p><p>  JMenuBar bar;</p><p>  JMenu fileMenu;</p><p>  

26、JMenuItem 初級(jí),中級(jí),高級(jí),掃雷英雄榜;</p><p>  MineArea mineArea=null;</p><p>  File 英雄榜=new File("英雄榜.txt");</p><p>  Hashtable hashtable=null;</p><p>  ShowRecord showH

27、eroRecord=null;</p><p>  MineGame(){</p><p>  mineArea=new MineArea(16,16,40,1);</p><p>  add(mineArea,BorderLayout.CENTER);</p><p>  bar=new JMenuBar();</p><

28、;p>  fileMenu=new JMenu("游戲");</p><p>  初級(jí)=new JMenuItem("初級(jí)");</p><p>  中級(jí)=new JMenuItem("中級(jí)");</p><p>  高級(jí)=new JMenuItem("高級(jí)");</p>

29、;<p>  掃雷英雄榜=new JMenuItem("掃雷英雄榜"); </p><p>  fileMenu.add(初級(jí));</p><p>  fileMenu.add(中級(jí));</p><p>  fileMenu.add(高級(jí));</p><p>  fileMenu.add(掃雷英雄榜);&l

30、t;/p><p>  bar.add(fileMenu);</p><p>  setJMenuBar(bar);</p><p>  初級(jí).addActionListener(this);</p><p>  中級(jí).addActionListener(this);</p><p>  高級(jí).addActionListen

31、er(this);</p><p>  掃雷英雄榜.addActionListener(this);</p><p>  hashtable=new Hashtable();</p><p>  hashtable.put("初級(jí)","初級(jí)#"+999+"#匿名"); </p><p&g

32、t;  hashtable.put("中級(jí)","中級(jí)#"+999+"#匿名");</p><p>  hashtable.put("高級(jí)","高級(jí)#"+999+"#匿名");</p><p>  if(!英雄榜.exists()) {</p><p&g

33、t;  try{ FileOutputStream out=new FileOutputStream(英雄榜);</p><p>  ObjectOutputStream objectOut=new ObjectOutputStream(out);</p><p>  objectOut.writeObject(hashtable);</p><p>  objec

34、tOut.close();</p><p>  out.close();</p><p><b>  }</b></p><p>  catch(IOException e){}</p><p><b>  }</b></p><p>  showHeroRecord=new

35、 ShowRecord(this,hashtable);</p><p>  setBounds(100,100,280,380);</p><p>  setVisible(true);</p><p>  setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);</p><p>  validate(

36、);</p><p><b>  }</b></p><p>  public void actionPerformed(ActionEvent e){</p><p>  if(e.getSource()==初級(jí)){</p><p>  mineArea.initMineArea(8,8,10,1);</p>

37、;<p>  setBounds(100,100,200,280); </p><p><b>  }</b></p><p>  if(e.getSource()==中級(jí)){</p><p>  mineArea.initMineArea(16,16,40,2);</p><p>  setBounds(

38、100,100,280,380);</p><p><b>  }</b></p><p>  if(e.getSource()==高級(jí)){</p><p>  mineArea.initMineArea(22,22,99,3);</p><p>  setBounds(100,100,350,390);</p&g

39、t;<p><b>  }</b></p><p>  if(e.getSource()==掃雷英雄榜){ </p><p>  if(showHeroRecord!=null)</p><p>  showHeroRecord.setVisible(true);</p><p><b>  }&

40、lt;/b></p><p>  validate();</p><p><b>  }</b></p><p>  public static void main(String args[]){</p><p>  new MineGame();</p><p><b>  }&

41、lt;/b></p><p><b>  }</b></p><p>  import java.awt.*;</p><p>  import java.awt.event.*;</p><p>  import javax.swing.*;</p><p>  public class

42、MineArea extends JPanel implements ActionListener,MouseListener{</p><p>  JButton reStart;</p><p>  Block [][] block;</p><p>  BlockView [][] blockView;</p><p>  LayMin

43、es lay;</p><p>  int row,colum,mineCount,markMount;//雷區(qū)的行數(shù)、列數(shù)以及地雷個(gè)數(shù)和用戶給出的標(biāo)記數(shù)</p><p>  ImageIcon mark;</p><p>  int grade; </p><p>  JPanel pCenter,pNorth;</p>&l

44、t;p>  JTextField showTime,showMarkedMineCount; //顯示用時(shí)以及標(biāo)記數(shù)</p><p>  Timer time; //計(jì)時(shí)器</p><p>  int spendTime=0;</p><p>  Record record;</p><p>  public MineArea(int

45、 row,int colum,int mineCount,int grade) {</p><p>  reStart=new JButton("重新開始");</p><p>  mark=new ImageIcon("mark.gif"); //探雷標(biāo)記</p><p>  time=new Timer(1000,thi

46、s);</p><p>  showTime=new JTextField(5);</p><p>  showMarkedMineCount=new JTextField(5);</p><p>  showTime.setHorizontalAlignment(JTextField.CENTER);</p><p>  showMarke

47、dMineCount.setHorizontalAlignment(JTextField.CENTER);</p><p>  showMarkedMineCount.setFont(new Font("Arial",Font.BOLD,16));</p><p>  showTime.setFont(new Font("Arial",Font.BO

48、LD,16)); </p><p>  pCenter=new JPanel();</p><p>  pNorth=new JPanel();</p><p>  lay=new LayMines(); </p><p>  initMineArea(row,colum,mineCount,grade

49、); //初始化雷區(qū),見下面的LayMines()</p><p>  reStart.addActionListener(this);</p><p>  pNorth.add(showMarkedMineCount);</p><p>  pNorth.add(reStart);</p><p>  pNorth.add(showTime

50、);</p><p>  setLayout(new BorderLayout());</p><p>  add(pNorth,BorderLayout.NORTH);</p><p>  add(pCenter,BorderLayout.CENTER);</p><p><b>  }</b></p>

51、<p>  public void initMineArea(int row,int colum,int mineCount,int grade){</p><p>  pCenter.removeAll();</p><p>  spendTime=0;</p><p>  markMount=mineCount;</p><p>

52、;  this.row=row;</p><p>  this.colum=colum;</p><p>  this.mineCount=mineCount; </p><p>  this.grade=grade; </p><p>  block=new Block[row][colum];</p><p>  

53、for(int i=0;i<row;i++){</p><p>  for(int j=0;j<colum;j++)</p><p>  block[i][j]=new Block();</p><p><b>  }</b></p><p>  lay.layMinesForBlock(block,mine

54、Count); </p><p>  blockView=new BlockView[row][colum];</p><p>  pCenter.setLayout(new GridLayout(row,colum));</p><p>  for(int i=0;i<row;i++) {</p><p>  for(int j

55、=0;j<colum;j++) {</p><p>  blockView[i][j]=new BlockView(); </p><p>  blockView[i][j].giveView(block[i][j]); //給block[i][j]提供視圖</p><p>  pCenter.add(blockView[i][j]);</p>

56、<p>  blockView[i][j].getBlockCover().addActionListener(this);</p><p>  blockView[i][j].getBlockCover().addMouseListener(this);</p><p>  blockView[i][j].seeBlockCover();</p><p>

57、;  blockView[i][j].getBlockCover().setEnabled(true);</p><p>  blockView[i][j].getBlockCover().setIcon(null);</p><p><b>  }</b></p><p><b>  }</b></p>&

58、lt;p>  showMarkedMineCount.setText(""+markMount); </p><p>  validate();</p><p><b>  }</b></p><p>  public void setRow(int row){</p><p>  this.r

59、ow=row;</p><p><b>  }</b></p><p>  public void setColum(int colum){</p><p>  this.colum=colum;</p><p><b>  }</b></p><p>  public vo

60、id setMineCount(int mineCount){</p><p>  this.mineCount=mineCount;</p><p><b>  }</b></p><p>  public void setGrade(int grade) {</p><p>  this.grade=grade;&l

61、t;/p><p><b>  }</b></p><p>  public void actionPerformed(ActionEvent e) {</p><p>  if(e.getSource()!=reStart&&e.getSource()!=time) {</p><p>  time.star

62、t(); </p><p>  int m=-1,n=-1; </p><p>  for(int i=0;i<row;i++) {</p><p>  for(int j=0;j<colum;j++) {</p><p>  if(e.getSource()==blockView[i][j].getBlockCover()){

63、</p><p><b>  m=i;</b></p><p><b>  n=j;</b></p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  }<

64、/b></p><p><b>  }</b></p><p>  if(block[m][n].isMine()) {</p><p>  for(int i=0;i<row;i++) {</p><p>  for(int j=0;j<colum;j++) {</p><p>

65、;  blockView[i][j].getBlockCover().setEnabled(false);</p><p>  if(block[i][j].isMine())</p><p>  blockView[i][j].seeBlockNameOrIcon(); </p><p><b>  }</b></p><

66、p><b>  }</b></p><p>  time.stop();</p><p>  spendTime=0;</p><p>  markMount=mineCount;</p><p><b>  }</b></p><p><b>  else

67、{ </b></p><p>  show(m,n); //見本類后面的show方法</p><p><b>  }</b></p><p><b>  }</b></p><p>  if(e.getSource()==reStart) {</p>&l

68、t;p>  initMineArea(row,colum,mineCount,grade);</p><p><b>  }</b></p><p>  if(e.getSource()==time){</p><p>  spendTime++;</p><p>  showTime.setText("

69、"+spendTime);</p><p><b>  }</b></p><p>  inquireWin();</p><p><b>  }</b></p><p>  public void show(int m,int n) {</p><p>  if(

70、block[m][n].getAroundMineNumber()>0&&block[m][n].getIsOpen()==false){</p><p>  blockView[m][n].seeBlockNameOrIcon();</p><p>  block[m][n].setIsOpen(true);</p><p><b>

71、;  return;</b></p><p><b>  }</b></p><p>  else if(block[m][n].getAroundMineNumber()==0&&block[m][n].getIsOpen()==false){</p><p>  blockView[m][n].seeBlockN

72、ameOrIcon();</p><p>  block[m][n].setIsOpen(true);</p><p>  for(int k=Math.max(m-1,0);k<=Math.min(m+1,row-1);k++) {</p><p>  for(int t=Math.max(n-1,0);t<=Math.min(n+1,colum-1)

73、;t++)</p><p>  show(k,t);</p><p><b>  } </b></p><p><b>  } </b></p><p><b>  }</b></p><p>  public void mousePresse

74、d(MouseEvent e){</p><p>  JButton source=(JButton)e.getSource();</p><p>  for(int i=0;i<row;i++) {</p><p>  for(int j=0;j<colum;j++) {</p><p>  if(e.getModifiers(

75、)==InputEvent.BUTTON3_MASK&&</p><p>  source==blockView[i][j].getBlockCover()){</p><p>  if(block[i][j].getIsMark()) {</p><p>  source.setIcon(null);</p><p>  b

76、lock[i][j].setIsMark(false);</p><p>  markMount=markMount+1;</p><p>  showMarkedMineCount.setText(""+markMount);</p><p><b>  }</b></p><p><b>

77、;  else{</b></p><p>  source.setIcon(mark);</p><p>  block[i][j].setIsMark(true);</p><p>  markMount=markMount-1;</p><p>  showMarkedMineCount.setText(""

78、;+markMount);</p><p><b>  }</b></p><p><b>  } </b></p><p><b>  }</b></p><p><b>  }</b></p><p><b> 

79、 }</b></p><p>  public void inquireWin(){</p><p>  int number=0;</p><p>  for(int i=0;i<row;i++) {</p><p>  for(int j=0;j<colum;j++) {</p><p> 

80、 if(block[i][j].getIsOpen()==false)</p><p><b>  number++;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  if(number==mineCount){<

81、;/p><p>  time.stop();</p><p>  record=new Record();</p><p>  switch(grade){</p><p>  case 1: record.setGrade("初級(jí)");</p><p><b>  break;</b&

82、gt;</p><p>  case 2: record.setGrade("中級(jí)");</p><p><b>  break;</b></p><p>  case 3: record.setGrade("高級(jí)");</p><p><b>  break;</

83、b></p><p><b>  }</b></p><p>  record.setTime(spendTime);</p><p>  record.setVisible(true); </p><p><b>  }</b></p><p><b>  

84、}</b></p><p>  public void mouseReleased(MouseEvent e){}</p><p>  public void mouseEntered(MouseEvent e){}</p><p>  public void mouseExited(MouseEvent e){}</p><p>

85、;  public void mouseClicked(MouseEvent e){}</p><p><b>  }</b></p><p>  import javax.swing.ImageIcon;</p><p>  public class Block {</p><p>  String name;

86、 //名字,比如"雷"或數(shù)字</p><p>  int aroundMineNumber; //周圍雷的數(shù)目</p><p>  ImageIcon mineIcon; //雷的圖標(biāo)</p><p>  boolean isMine=false; //是否是雷</p><p> 

87、 boolean isMark=false; //是否被標(biāo)記</p><p>  boolean isOpen=false; //是否被挖開</p><p>  public void setName(String name) { </p><p>  this.name=name; </p><p><b>  }</b

88、></p><p>  public void setAroundMineNumber(int n) { </p><p>  aroundMineNumber=n;</p><p><b>  }</b></p><p>  public int getAroundMineNumber() {</p>

89、<p>  return aroundMineNumber;</p><p><b>  }</b></p><p>  public String getName() { </p><p>  return name; </p><p><b>  }</b></p>

90、<p>  public boolean isMine() {</p><p>  return isMine;</p><p><b>  } </b></p><p>  public void setIsMine(boolean b) {</p><p><b>  isMine=b;<

91、/b></p><p><b>  }</b></p><p>  public void setMineIcon(ImageIcon icon){</p><p>  mineIcon=icon;</p><p><b>  }</b></p><p>  publi

92、c ImageIcon getMineicon(){</p><p>  return mineIcon;</p><p><b>  }</b></p><p>  public boolean getIsOpen() {</p><p>  return isOpen;</p><p><

93、;b>  } </b></p><p>  public void setIsOpen(boolean p) {</p><p><b>  isOpen=p;</b></p><p><b>  }</b></p><p>  public boolean getIsMark()

94、 {</p><p>  return isMark;</p><p><b>  }</b></p><p>  import javax.swing.*;</p><p>  import java.awt.*;</p><p>  public class BlockView extends

95、 JPanel{ </p><p>  JLabel blockNameOrIcon; //用來顯示Block對(duì)象的name、number和mineIcon屬性</p><p>  JButton blockCover; //用來遮擋blockNameOrIcon.</p><p>  CardLayout card; //卡片式布局</

96、p><p>  BlockView(){</p><p>  card=new CardLayout();</p><p>  setLayout(card);</p><p>  blockNameOrIcon=new JLabel("",JLabel.CENTER);</p><p>  block

97、NameOrIcon.setHorizontalTextPosition(AbstractButton.CENTER);</p><p>  blockNameOrIcon.setVerticalTextPosition(AbstractButton.CENTER); </p><p>  blockCover=new JButton(); </p><p>  a

98、dd("cover",blockCover);</p><p>  add("view",blockNameOrIcon);</p><p><b>  }</b></p><p>  public void giveView(Block block){</p><p>  if(

99、block.isMine){</p><p>  blockNameOrIcon.setText(block.getName());</p><p>  blockNameOrIcon.setIcon(block.getMineicon());</p><p><b>  }</b></p><p><b> 

100、 else {</b></p><p>  int n=block.getAroundMineNumber();</p><p><b>  if(n>=1)</b></p><p>  blockNameOrIcon.setText(""+n);</p><p><b>

101、  else</b></p><p>  blockNameOrIcon.setText(" ");</p><p><b>  }</b></p><p><b>  }</b></p><p>  public void seeBlockNameOrIcon(){

102、</p><p>  card.show(this,"view");</p><p>  validate();</p><p><b>  }</b></p><p>  public void seeBlockCover(){</p><p>  card.show(thi

103、s,"cover");</p><p>  validate();</p><p><b>  }</b></p><p>  public JButton getBlockCover(){</p><p>  return blockCover;</p><p><b&

104、gt;  } </b></p><p><b>  }</b></p><p>  import java.util.*;</p><p>  import javax.swing.*;</p><p>  public class LayMines{ </p><p>  Ima

105、geIcon mineIcon; </p><p>  LayMines() {</p><p>  mineIcon=new ImageIcon("mine.gif");</p><p><b>  }</b></p><p>  public void layMinesForBlock(Block

106、 block[][],int mineCount){</p><p>  int row=block.length;</p><p>  int column=block[0].length;</p><p>  LinkedList<Block> list=new LinkedList<Block>(); </p><p

107、>  for(int i=0;i<row;i++) {</p><p>  for(int j=0;j<column;j++)</p><p>  list.add(block[i][j]);</p><p><b>  } </b></p><p>  while(mineCount>0){&l

108、t;/p><p>  int size=list.size(); // list返回節(jié)點(diǎn)的個(gè)數(shù)</p><p>  int randomIndex=(int)(Math.random()*size);</p><p>  Block b=list.get(randomIndex);</p><p>  b.setIsMin

109、e(true);</p><p>  b.setName("雷");</p><p>  b.setMineIcon(mineIcon);</p><p>  list.remove(randomIndex); //list刪除索引值為randomIndex的節(jié)點(diǎn)</p><p>  mineCount--;

110、</p><p><b>  } </b></p><p>  for(int i=0;i<row;i++){</p><p>  for(int j=0;j<column;j++){</p><p>  if(block[i][j].isMine()){</p><p>  bloc

111、k[i][j].setIsOpen(false);</p><p>  block[i][j].setIsMark(false);</p><p><b>  }</b></p><p><b>  else {</b></p><p>  int mineNumber=0;</p>

112、<p>  for(int k=Math.max(i-1,0);k<=Math.min(i+1,row-1);k++) {</p><p>  for(int t=Math.max(j-1,0);t<=Math.min(j+1,column-1);t++){</p><p>  if(block[k][t].isMine())</p><p>

113、  mineNumber++; </p><p><b>  }</b></p><p><b>  }</b></p><p>  block[i][j].setIsOpen(false); </p><p>  block[i][j].setIsMark(false); </p

114、><p>  block[i][j].setName(""+mineNumber);</p><p>  block[i][j].setAroundMineNumber(mineNumber);</p><p><b>  }</b></p><p><b>  } </b><

115、/p><p><b>  } </b></p><p><b>  }</b></p><p><b>  }</b></p><p>  import java.io.*;</p><p>  import java.util.*;</p>

116、;<p>  import javax.swing.*;</p><p>  import java.awt.event.*;</p><p>  import java.awt.*;</p><p>  public class Record extends JDialog implements ActionListener{</p>

117、<p>  int time=0;</p><p>  String grade=null;</p><p>  String key=null;</p><p>  String message=null;</p><p>  JTextField textName; </p><p>  JLabel l

118、abel=null; </p><p>  JButton 確定,取消;</p><p>  public Record(){</p><p>  setTitle("記錄你的成績(jī)");</p><p>  this.time=time; </p><p>  this.grade=grade;&l

119、t;/p><p>  setBounds(100,100,240,160);</p><p>  setResizable(false);</p><p>  setModal(true); </p><p>  確定=new JButton("確定");</p><p>  取消=new JButto

120、n("取消");</p><p>  textName=new JTextField(8);</p><p>  textName.setText("匿名");</p><p>  確定.addActionListener(this);</p><p>  取消.addActionListener(th

121、is);</p><p>  setLayout(new GridLayout(2,1));</p><p>  label=new JLabel("您現(xiàn)在是...高手,輸入您的大名上榜");</p><p>  add(label);</p><p>  JPanel p=new JPanel();</p>

122、<p>  p.add(textName);</p><p>  p.add(確定);</p><p>  p.add(取消);</p><p><b>  add(p);</b></p><p>  setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);</p&

123、gt;<p><b>  }</b></p><p>  public void setGrade(String grade){</p><p>  this.grade=grade;</p><p>  label.setText("您現(xiàn)在是"+grade+"高手,輸入您的大名上榜");&

124、lt;/p><p><b>  }</b></p><p>  public void setTime(int time){</p><p>  this.time=time;</p><p><b>  }</b></p><p>  import java.io.*;<

125、/p><p>  import java.util.*;</p><p>  import javax.swing.*;</p><p>  import java.awt.event.*;</p><p>  import java.awt.*;</p><p>  public class ShowRecord ext

126、ends JDialog implements ActionListener{</p><p>  File file=new File("英雄榜.txt");</p><p>  String name=null;</p><p>  Hashtable hashtable=null;</p><p>  JButton

127、 顯示,重新記分;</p><p>  JLabel label初級(jí)[],label中級(jí)[],label高級(jí)[];</p><p>  public ShowRecord(JFrame frame,Hashtable h) {</p><p>  setTitle("掃雷英雄榜");</p><p>  hashtable

128、=h;</p><p>  setBounds(100,100,320,185);</p><p>  setResizable(false);</p><p>  setVisible(false);</p><p>  setModal(true); </p><p>  label初級(jí)=new JLabel[3]

129、;</p><p>  label中級(jí)=new JLabel[3];</p><p>  label高級(jí)=new JLabel[3];</p><p>  for(int i=0;i<3;i++) {</p><p>  label初級(jí)[i]=new JLabel();</p><p>  label初級(jí)[i].

130、setBorder(null);</p><p>  label中級(jí)[i]=new JLabel();</p><p>  label中級(jí)[i].setBorder(null);</p><p>  label高級(jí)[i]=new JLabel();</p><p>  label高級(jí)[i].setBorder(null);</p>

131、<p><b>  } </b></p><p>  label初級(jí)[0].setText("初級(jí)");</p><p>  label初級(jí)[1].setText(""+999); </p><p>  label初級(jí)[1].setText("匿名"); </p&

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲(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)論