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

下載本文檔

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

文檔簡介

1、<p>  JAVA語言課程設(shè)計(jì)報(bào)告</p><p>  題 目:掃雷小游戲</p><p>  設(shè) 計(jì) 者: </p><p><b>  專業(yè)班級: </b></p><p><b>  學(xué) 號: </b></p><p><b> 

2、 指導(dǎo)教師: </b></p><p>  2011年 12月 12日</p><p><b>  計(jì)算機(jī)學(xué)院</b></p><p><b>  目錄:</b></p><p>  1·設(shè)計(jì)內(nèi)容及要求…………………………………………………..1</p>

3、<p>  1.1·掃雷小游戲的基本要求……………………………………….1</p><p>  1.2 需求實(shí)現(xiàn)的主要功能…………………………………………...1</p><p>  2·需求分析…………………………………………………………..1</p><p>  2.1 掃雷區(qū)域的布局設(shè)計(jì)…………………………………………...1&l

4、t;/p><p>  2.2 雷區(qū)的設(shè)計(jì)………………………………………………………1</p><p>  2.3 音效的設(shè)計(jì)…………………………………………………….1</p><p>  3· 總體設(shè)計(jì)………………………………………………………..2</p><p>  3.1總體功能圖……………………………………………………..2&

5、lt;/p><p>  3.2游戲設(shè)計(jì)流程圖…………………………………………………2</p><p>  4· 主要功能設(shè)計(jì)……………………………………………………3</p><p>  4.1 雷區(qū)設(shè)計(jì)流程圖…………………………………………………3</p><p>  4.2 音效設(shè)計(jì)流程圖…………………………………………………4&l

6、t;/p><p>  4.3 排行榜設(shè)計(jì)流程圖………………………………………………5</p><p>  5· 代碼實(shí)現(xiàn)………………………………………………………….6</p><p>  5.1 類之間的關(guān)系圖…………………………………………………6</p><p>  5.2 各界面圖及代碼:………………………………………………6&

7、lt;/p><p>  5.2.1 游戲菜單界面………………………………………………6</p><p>  5.2.2 游戲登錄界面(初級、中級、高級)…………………….8</p><p>  5.2.3自定義掃雷界面……………………………………………..15</p><p>  6·掃雷總結(jié)…………………………………………………………

8、…18</p><p>  7·參考文獻(xiàn)…………………………………………………………18</p><p><b>  1·設(shè)計(jì)內(nèi)容及要求</b></p><p>  1.1·掃雷小游戲的基本要求</p><p>  掃雷小游戲主要采用Java語言編寫,適合windows XP 以下的系統(tǒng),以

9、eclipse為平臺。具體要求如下:</p><p>  <1> 掃雷小游戲分為初級、中級和高級三個級別,掃雷排行榜保存著每個級別的最好成績,即挖出全部的地雷并且用時最少。單機(jī)游戲菜單選擇“初級”、“中級”和“高級”。</p><p>  <2> 游戲默認(rèn)的是初級級別,用戶可以選擇不同級別將出現(xiàn)對應(yīng)級別的掃雷區(qū)域,單擊掃雷區(qū)域任一方格以便啟動計(jì)時器。</p&g

10、t;<p>  <3> 用戶選擇某個方格,單擊它就行。若所選擇的放閣下有雷,這一局就結(jié)束了,若所選擇方格下無雷,則會顯示一個數(shù)字,該數(shù)字代表方格周圍8個方格中共有幾顆雷。</p><p>  <4> 如果用戶認(rèn)為某個方格下有雷,單擊右鍵可以在方格上標(biāo)記一個用戶認(rèn)為是雷的圖標(biāo)(一個小旗子)。</p><p>  <5> 用戶可以選擇標(biāo)記為疑問

11、的方格,可以選擇游戲菜單下的標(biāo)記,或者雙擊右鍵所選方格顯示(?)圖標(biāo)。</p><p>  <6> 掃雷完成后,程序彈出保存成績的對話框,用戶可以根據(jù)自身選擇是否保存。</p><p>  <7> 如果用戶喜歡有提示音,可以選擇游戲菜單中的聲音選項(xiàng),單擊掃雷區(qū)域任一方格,就會聽到吧嗒聲。當(dāng)點(diǎn)中地雷時,將會有爆炸聲音響起,勝利后,將播放凱旋的旋律。</p>

12、<p>  1.2 需求實(shí)現(xiàn)的主要功能</p><p>  (1) 該游戲具有計(jì)時功能,即掃完全部地雷所花費(fèi)的時間。</p><p> ?。?) 用戶可以選擇是否有音效。</p><p> ?。?) 用戶可以自定義級別,還可以輸入任意地雷數(shù)。</p><p> ?。?) 自動保存掃雷排行榜。</p><p&g

13、t;<b>  2·需求分析</b></p><p>  2.1 掃雷區(qū)域的布局設(shè)計(jì)</p><p>  系統(tǒng)的整體布局為:CardLayout 布局,采用菜單、按鈕、面板……等組件,菜單項(xiàng)主要有開始,選擇級別,自定義,標(biāo)記,聲音,掃雷排行榜,退出,按鈕的功能是重新開始游戲(可以選擇游戲菜單里的開局,也可以點(diǎn)擊企鵝圖標(biāo)重新開始游戲)。</p>

14、<p><b>  2.2 雷區(qū)的設(shè)計(jì)</b></p><p>  MineArea類是javax.swing 包中Jpanel容器的子類,實(shí)現(xiàn)了ActionListener和MouseListener接口,所創(chuàng)建的對象:mineArea是MineGame類中最重要的成員之一,作為一個容器添加到MineGame窗口的中心。</p><p><b>

15、  2.3 音效的設(shè)計(jì)</b></p><p>  music類是java.awt包中Frame的子類,通過構(gòu)造音效聲音方法,在MainFrame主類中,通過ActionListener來監(jiān)視是否已開始游戲,來決定播放計(jì)時聲,之后又通過ActionListener來監(jiān)視是否踩到雷和是否完成來決定,播放相應(yīng)的音樂。</p><p><b>  2.4 排行榜設(shè)計(jì)<

16、/b></p><p>  LogDialog是javax.swing包中Jdialog對話框的子類,并實(shí)現(xiàn)了ActiongListener接口。LogDialog創(chuàng)建的對象dialog是MainFrame類(主類)的成員之一,當(dāng)用戶選擇查看“英雄榜”菜單項(xiàng)時,該對話框可見,提供了查看掃雷的最好成績的界面。</p><p><b>  3· 總體設(shè)計(jì)</b&

17、gt;</p><p><b>  3.1總體功能圖</b></p><p>  圖1-1 總體功能圖</p><p>  3.2游戲設(shè)計(jì)流程圖</p><p>  圖1-2 游戲設(shè)計(jì)流程圖</p><p><b>  4· 主要功能設(shè)計(jì)</b></p>

18、<p>  4.1 雷區(qū)設(shè)計(jì)流程圖</p><p>  圖1-3 雷區(qū)設(shè)計(jì)流程圖</p><p>  4.2 音效設(shè)計(jì)流程圖</p><p>  圖1-4 音效設(shè)計(jì)流程圖</p><p>  4.3 排行榜設(shè)計(jì)流程圖</p><p>  圖 1-5 排行榜設(shè)計(jì)流程圖</p><p>

19、;<b>  5· 代碼實(shí)現(xiàn)</b></p><p>  5.1 類之間的關(guān)系圖</p><p>  圖1-6 類之間的關(guān)系圖</p><p>  5.2 各界面圖及代碼:</p><p>  5.2.1 游戲菜單界面</p><p>  圖1-7 游戲菜單界面</p>&

20、lt;p>  其主要代碼為:private void setMenuBar() {//設(shè)置菜單項(xiàng)</p><p>  JMenuBar menuBar = new JMenuBar();</p><p>  menuBar.setBorder(BorderFactory.createLineBorder(Color.WHITE, 2));</p><p>  

21、JMenu gameMenu = new JMenu("游戲(G)");</p><p>  JMenu helpMenu = new JMenu("幫助(H)");</p><p>  gameMenu.setMnemonic('G');</p><p>  helpMenu.setMnemonic('

22、;H');</p><p>  聲音=new Voice();</p><p>  startItem = new JMenuItem("開局(N)");</p><p>  startItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F2,0));</p><

23、;p>  logItem = new JMenuItem("掃雷英雄榜(T)...");</p><p>  markCheckItem = new JCheckBoxMenuItem("標(biāo)記(?)(M)");</p><p>  soundItem=new JCheckBoxMenuItem("聲音(S)");</p

24、><p>  exitItem = new JMenuItem("退出(X)");</p><p>  aboutItem = new JMenuItem("關(guān)于掃雷(A)...");</p><p>  startItem.setMnemonic('N');</p><p>  exitI

25、tem.setMnemonic('X');</p><p>  aboutItem.setMnemonic('A');</p><p>  aboutItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F1,0));</p><p>  logItem.setMnemonic(

26、'T');</p><p>  soundItem.setMnemonic('S');</p><p>  soundItem.setSelected(sound);</p><p>  markCheckItem.setMnemonic('M');</p><p>  markCheckIte

27、m.setSelected(markCheck);</p><p>  gameMenu.add(startItem);</p><p>  gameMenu.addSeparator();</p><p>  //radio group</p><p>  levelItem = new JRadioButtonMenuItem[4];&l

28、t;/p><p>  ButtonGroup levelGroup = new ButtonGroup();</p><p>  levelItem[0] = new JRadioButtonMenuItem("初級(B)");</p><p>  levelItem[1] = new JRadioButtonMenuItem("中級(I)

29、");</p><p>  levelItem[2] = new JRadioButtonMenuItem("高級(E)");</p><p>  levelItem[3] = new JRadioButtonMenuItem("自定義(C)...");</p><p>  levelItem[0].setMnemo

30、nic('B');</p><p>  levelItem[1].setMnemonic('I');</p><p>  levelItem[2].setMnemonic('E');</p><p>  levelItem[3].setMnemonic('C');</p><p>

31、;  for(int i=0;i<4;i++) {</p><p>  levelGroup.add(levelItem[i]);</p><p>  levelItem[i].addActionListener(this);</p><p>  gameMenu.add(levelItem[i]);</p><p><b>

32、  }</b></p><p>  levelItem[currentLevel].setSelected(true);</p><p>  gameMenu.addSeparator();</p><p>  gameMenu.add(markCheckItem);</p><p>  gameMenu.addSeparator

33、();</p><p>  gameMenu.add(soundItem);</p><p>  gameMenu.addSeparator();</p><p>  gameMenu.add(logItem);</p><p>  gameMenu.addSeparator();</p><p>  gameMenu

34、.add(exitItem);</p><p>  helpMenu.add(aboutItem);</p><p>  startItem.addActionListener(this);</p><p>  markCheckItem.addActionListener(this);</p><p>  soundItem.addActi

35、onListener(this);</p><p>  logItem.addActionListener(this);</p><p>  exitItem.addActionListener(this);</p><p>  aboutItem.addActionListener(this);</p><p>  menuBar.add(

36、gameMenu);</p><p>  menuBar.add(helpMenu);</p><p>  setJMenuBar(menuBar);</p><p><b>  } </b></p><p>  5.2.2 游戲登錄界面(初級、中級、高級)</p><p>  圖1-8 初級掃雷

37、界面 圖1-9 中級掃雷界面</p><p>  圖2.0 高級掃雷界面</p><p>  其主要代碼為:private LevelLog levelLog[];</p><p>  private JTextArea logArea;</p><p>  private JButton resetButton;<

38、;/p><p>  private JButton confirmButton;</p><p>  public LogDialog(JFrame frame, LevelLog log[]) {</p><p>  super(frame, "掃雷英雄榜", true);</p><p>  getContentPane(

39、).setLayout(null);</p><p>  levelLog = log;</p><p>  logArea = new JTextArea();</p><p>  logArea.setEditable(false);</p><p>  logArea.setBackground(UIManager.getColor(&

40、quot;CheckBox.background"));</p><p>  logArea.setBounds(10,10,160,60);</p><p>  getContentPane().add(logArea, null);</p><p>  resetButton = new JButton("重新計(jì)分");</p

41、><p>  resetButton.setBounds(10,70,90,25);</p><p>  resetButton.addActionListener(this);</p><p>  getContentPane().add(resetButton, null);</p><p>  setTextArea();</p>

42、;<p>  confirmButton = new JButton("確定");</p><p>  confirmButton.setBounds(105,70,60,25);</p><p>  confirmButton.addActionListener(this);</p><p>  getContentPane().

43、add(confirmButton, null);</p><p>  setSize(180,140);</p><p>  setLocationRelativeTo(frame);</p><p>  setResizable(false);</p><p><b>  show();</b></p>

44、<p><b>  }</b></p><p>  private void setTextArea() {</p><p>  logArea.setText("初級:" + levelLog[0].toString()</p><p>  + "中級:" + levelLog[1].toS

45、tring()</p><p>  + "高級:" + levelLog[2].toString());</p><p><b>  }</b></p><p>  public void actionPerformed(ActionEvent e) {</p><p>  if(e.getSourc

46、e()==resetButton) {</p><p>  for(int i=0;i<3;i++) {</p><p>  levelLog[i].setDefault();</p><p><b>  }</b></p><p>  setTextArea();</p><p><

47、b>  } else {</b></p><p>  dispose();</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  雷區(qū)界面設(shè)計(jì)代碼:</b></p><p>  pr

48、ivate Polygon segmentPolygon[];</p><p>  private int numberSegment[][] = {</p><p>  {0, 1, 2, 3, 4, 5 }, //0</p><p>  {1, 2 }, //1</p><p>  {0, 1, 3, 4, 6 }, //2

49、</p><p>  {0, 1, 2, 3, 6 }, //3</p><p>  {1, 2, 5, 6 }, //4</p><p>  {0, 2, 3, 5, 6 }, //5</p><p>  {0, 2, 3, 4, 5, 6 }, //6</p><p>  {0, 1, 2 },

50、 //7</p><p>  {0, 1, 2, 3, 4, 5, 6 }, //8</p><p>  {0, 1, 2, 3, 5, 6 } //9</p><p><b>  };</b></p><p>  private int div[] = {1,10,100,1000,10000,100000};&l

51、t;/p><p>  private Image numberImage[];</p><p>  private Color fontColor = Color.red; //the color of number</p><p>  private Color bgColor = Color.black;</p><p>  privat

52、e Color maskColor = Color.darkGray;</p><p>  private int dWidth = 12;</p><p>  private int dHeight = 21;</p><p>  public LedNumber() {</p><p><b>  init();</b&g

53、t;</p><p><b>  }</b></p><p>  public LedNumber(Color fc) {</p><p>  fontColor = fc;</p><p><b>  init();</b></p><p><b>  }<

54、/b></p><p>  public LedNumber(Color fc, Color bgc) {</p><p>  bgColor = bgc;</p><p>  fontColor = fc;</p><p><b>  init();</b></p><p><b&g

55、t;  }</b></p><p>  public LedNumber(Color fc,Color bgc,Color mc) {</p><p>  bgColor = bgc;</p><p>  fontColor = fc;</p><p>  maskColor = mc;</p><p>&

56、lt;b>  init();</b></p><p><b>  }</b></p><p>  public Image getLedImage(int dg, int bound) {</p><p>  dg %= div[bound];</p><p>  Image image = new B

57、ufferedImage(dWidth*bound, dHeight,BufferedImage.TYPE_INT_RGB);</p><p>  Graphics g = image.getGraphics();</p><p><b>  bound--;</b></p><p>  for(int i = bound;i>=0;i-

58、-) {</p><p>  g.drawImage(numberImage[dg/div[i]],(bound-i)*dWidth,0,this);</p><p>  dg %= div[i];</p><p><b>  }</b></p><p>  return image;</p><p&

59、gt;<b>  }</b></p><p>  public void init() {</p><p>  segmentPolygon = new Polygon[7];</p><p>  numberImage = new Image[10];</p><p>  //setup polygons</p&

60、gt;<p>  setNumberPolygon();</p><p>  setNumberImage();</p><p><b>  }</b></p><p>  public void setBackGround(Color bgc) {</p><p>  bgColor = bgc;<

61、/p><p><b>  }</b></p><p>  public void setFontColor(Color fc) {</p><p>  fontColor = fc;</p><p><b>  }</b></p><p>  public void setMas

62、kColor(Color mkc) {</p><p>  maskColor = mkc;</p><p><b>  }</b></p><p>  public void setDigitWidth(int w) {</p><p>  dWidth = w;</p><p><b&g

63、t;  init();</b></p><p><b>  }</b></p><p>  public void setDigitHeight(int h) {</p><p>  dHeight = h;</p><p><b>  init();</b></p>&l

64、t;p><b>  }</b></p><p>  public void setDigitSize(int w, int h) {</p><p>  dWidth = w;</p><p>  dHeight = h;</p><p><b>  init();</b></p>

65、<p><b>  }</b></p><p>  private void setNumberImage() {</p><p>  int i = 0;</p><p>  int j = 0;</p><p><b>  int k;</b></p><p&g

66、t;  Graphics g;</p><p>  while(i<10) {</p><p>  numberImage[i] = new BufferedImage(15,20,BufferedImage.TYPE_INT_RGB);</p><p>  g = numberImage[i].getGraphics();</p><p&

67、gt;  g.setColor(bgColor);</p><p>  g.fillRect(0,0,15,20);</p><p>  g.setColor(Color.DARK_GRAY);</p><p><b>  j = 0;</b></p><p>  while(j<numberSegment[8].

68、length) {</p><p>  k = numberSegment[8][j];</p><p>  g.fillPolygon(segmentPolygon[k]);</p><p><b>  j++;</b></p><p><b>  }</b></p><p&g

69、t;  g.setColor(fontColor);</p><p><b>  j = 0;</b></p><p>  while(j<numberSegment[i].length) {</p><p>  k = numberSegment[i][j];</p><p>  g.fillPolygon(se

70、gmentPolygon[k]);</p><p><b>  j++;</b></p><p><b>  }</b></p><p><b>  i++;</b></p><p><b>  }</b></p><p><

71、b>  }</b></p><p>  public void setNumberPolygon() {</p><p>  int mid = dHeight/2+1;</p><p>  segmentPolygon[0] = new Polygon();</p><p>  segmentPolygon[0].addP

72、oint(2, 1);</p><p>  segmentPolygon[0].addPoint(dWidth-2,1);</p><p>  segmentPolygon[0].addPoint(dWidth-5,4);</p><p>  segmentPolygon[0].addPoint(4,4);</p><p>  segment

73、Polygon[1] = new Polygon();</p><p>  segmentPolygon[1].addPoint(dWidth-1, 1);</p><p>  segmentPolygon[1].addPoint(dWidth-1, mid-1);</p><p>  segmentPolygon[1].addPoint(dWidth-2, mid

74、-1);</p><p>  segmentPolygon[1].addPoint(dWidth-4, mid-3);</p><p>  segmentPolygon[1].addPoint(dWidth-4, 4);</p><p>  segmentPolygon[2] = new Polygon();</p><p>  segmen

75、tPolygon[2].addPoint(dWidth-1, mid);</p><p>  segmentPolygon[2].addPoint(dWidth-1, dHeight-2);</p><p>  segmentPolygon[2].addPoint(dWidth-4, dHeight-5);</p><p>  segmentPolygon[2].a

76、ddPoint(dWidth-4, mid+1);</p><p>  segmentPolygon[2].addPoint(dWidth-3, mid);</p><p>  segmentPolygon[3] = new Polygon();</p><p>  segmentPolygon[3].addPoint(dWidth-2, dHeight-1);&l

77、t;/p><p>  segmentPolygon[3].addPoint(1, dHeight-1);</p><p>  segmentPolygon[3].addPoint(4, dHeight-4);</p><p>  segmentPolygon[3].addPoint(dWidth-4, dHeight-4);</p><p>  

78、segmentPolygon[4] = new Polygon();</p><p>  segmentPolygon[4].addPoint(1, dHeight-2);</p><p>  segmentPolygon[4].addPoint(1, mid);</p><p>  segmentPolygon[4].addPoint(3, mid);</p

79、><p>  segmentPolygon[4].addPoint(4, mid+1);</p><p>  segmentPolygon[4].addPoint(4, dHeight-5);</p><p>  segmentPolygon[5] = new Polygon();</p><p>  segmentPolygon[5].addP

80、oint(1, mid-1);</p><p>  segmentPolygon[5].addPoint(1, 1);</p><p>  segmentPolygon[5].addPoint(4, 4);</p><p>  segmentPolygon[5].addPoint(4, mid-3);</p><p>  segmentPol

81、ygon[5].addPoint(2, mid-1);</p><p>  segmentPolygon[6] = new Polygon();</p><p>  segmentPolygon[6].addPoint(3, mid-1);</p><p>  segmentPolygon[6].addPoint(4, mid-2);</p><

82、p>  segmentPolygon[6].addPoint(dWidth-4, mid-2);</p><p>  segmentPolygon[6].addPoint(dWidth-3, mid-1);</p><p>  segmentPolygon[6].addPoint(dWidth-5, mid+1);</p><p>  segmentPolyg

83、on[6].addPoint(4, mid+1);</p><p><b>  }</b></p><p>  5.2.3自定義掃雷界面</p><p>  圖2-1 自定義掃雷界面</p><p>  其主要代碼為:private JTextField widthField;</p><p> 

84、 private JTextField heightField;</p><p>  private JTextField mineField;</p><p>  private JButton confirmButton;</p><p>  private JButton cancelButton;</p><p>  private

85、static LevelInfo level;</p><p>  public CustomDialog(Frame frame, LevelInfo levelInfo) {</p><p>  super(frame,"自定義雷區(qū)",true);</p><p>  getContentPane().setLayout(null);<

86、/p><p>  JLabel tempLabel = new JLabel("高度:");</p><p>  tempLabel.setBounds(10,10,30,20);</p><p>  heightField = new JTextField(""+levelInfo.getXBound());</p>

87、<p>  heightField.setBounds(50,10,40,20);</p><p>  getContentPane().add(tempLabel,null);</p><p>  getContentPane().add(heightField,null);</p><p>  tempLabel = new JLabel(&quo

88、t;寬度:");</p><p>  tempLabel.setBounds(10,40,30,20);</p><p>  widthField = new JTextField(""+levelInfo.getYBound());</p><p>  widthField.setBounds(50,40,40,20);</p&

89、gt;<p>  getContentPane().add(tempLabel,null);</p><p>  getContentPane().add(widthField,null);</p><p>  tempLabel = new JLabel("雷數(shù):");</p><p>  tempLabel.setBounds(

90、10,70,30,20);</p><p>  mineField = new JTextField(""+levelInfo.getMineCount());</p><p>  mineField.setBounds(50,70,40,20);</p><p>  getContentPane().add(tempLabel,null);&l

91、t;/p><p>  getContentPane().add(mineField,null);</p><p>  confirmButton = new JButton("確定");</p><p>  confirmButton.addActionListener(this);</p><p>  confirmButt

92、on.setBounds(100,10,60,25);</p><p>  getContentPane().add(confirmButton,null);</p><p>  cancelButton = new JButton("取消");</p><p>  cancelButton.addActionListener(this);<

93、;/p><p>  cancelButton.setBounds(100,45,60,25);</p><p>  getContentPane().add(cancelButton,null);</p><p>  setSize(180,137);</p><p>  setLocationRelativeTo(frame);</p&g

94、t;<p>  setResizable(false);</p><p><b>  show();</b></p><p><b>  }</b></p><p>  public void actionPerformed(ActionEvent e) {</p><p>  lev

95、el = null;</p><p>  if(e.getSource()==confirmButton) {</p><p>  int x = Integer.parseInt(heightField.getText());</p><p>  int y = Integer.parseInt(widthField.getText());</p>

96、<p>  int m = Integer.parseInt(mineField.getText());</p><p>  level = new LevelInfo(x,y,m);</p><p><b>  }</b></p><p>  dispose();</p><p><b>  }&l

97、t;/b></p><p>  public static LevelInfo getUserLevel(JFrame frame, LevelInfo levelInfo) {</p><p>  CustomDialog dialog = new CustomDialog(frame, levelInfo);</p><p>  return level;

98、</p><p><b>  }</b></p><p>  5.2.4掃雷排行榜界面</p><p>  圖2-2 掃雷排行榜界面</p><p>  其主要代碼為:public LogDialog(JFrame frame, LevelLog log[]) {</p><p>  super(

99、frame, "掃雷英雄榜", true);</p><p>  getContentPane().setLayout(null);</p><p>  levelLog = log;</p><p>  logArea = new JTextArea();</p><p>  logArea.setEditable(fa

100、lse);</p><p>  logArea.setBackground(UIManager.getColor("CheckBox.background"));</p><p>  logArea.setBounds(10,10,160,60);</p><p>  getContentPane().add(logArea, null);<

101、;/p><p>  resetButton = new JButton("重新計(jì)分");</p><p>  resetButton.setBounds(10,70,90,25);</p><p>  resetButton.addActionListener(this);</p><p>  getContentPane()

102、.add(resetButton, null);</p><p>  setTextArea();</p><p>  confirmButton = new JButton("確定");</p><p>  confirmButton.setBounds(105,70,60,25);</p><p>  confirmB

103、utton.addActionListener(this);</p><p>  getContentPane().add(confirmButton, null);</p><p>  setSize(180,140);</p><p>  setLocationRelativeTo(frame);</p><p>  setResizab

104、le(false);</p><p><b>  show();</b></p><p><b>  }</b></p><p>  private void setTextArea() {</p><p>  logArea.setText("初級:" + levelLog[0

105、].toString()</p><p>  + "中級:" + levelLog[1].toString()</p><p>  + "高級:" + levelLog[2].toString());</p><p><b>  }</b></p><p>  public voi

106、d actionPerformed(ActionEvent e) {</p><p>  if(e.getSource()==resetButton) {</p><p>  for(int i=0;i<3;i++) {</p><p>  levelLog[i].setDefault();</p><p><b>  }&l

107、t;/b></p><p>  setTextArea();</p><p><b>  } else {</b></p><p>  dispose();</p><p><b>  }</b></p><p><b>  }</b></p

108、><p><b>  6·掃雷總結(jié)</b></p><p>  在編寫掃雷這個游戲的過程中,讓我注意到許多以前沒有在意的細(xì)節(jié),這些細(xì)節(jié)在編程的過程中必不可少。以前自以為是的認(rèn)為數(shù)據(jù)結(jié)構(gòu),算法不重要,只要學(xué)會編程就行了,但是在編寫掃雷這個游戲中的部分都用到了算法,如雷區(qū)的布局,沒有算法,基本就進(jìn)行不下去。這是自己的不足之處,也是自己的待補(bǔ)處,特別是數(shù)據(jù)結(jié)構(gòu)--必備

109、品。算法可以多看一點(diǎn),不必深究。</p><p>  雖然編寫掃雷游戲困難重重,但所幸自己還是堅(jiān)持了下來,萬事開頭難,有了第一次,第二次就不那么困難了。堅(jiān)持自己的本心,堅(jiān)持不懈地努力下去,總有收獲的,哪怕再少,長久的積累總會有巨額自身資本的。</p><p><b>  7·參考文獻(xiàn)</b></p><p>  【1】《Java核心技

溫馨提示

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

評論

0/150

提交評論