版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 掃雷小游戲課程設(shè)計(jì)
- java課程設(shè)計(jì)--掃雷游戲報(bào)告
- java課程設(shè)計(jì)-掃雷游戲
- java掃雷游戲課程設(shè)計(jì)
- 基于java的掃雷游戲課程設(shè)計(jì)
- 打飛機(jī)小游戲-java課程設(shè)計(jì)
- java課程設(shè)計(jì)-21點(diǎn)小游戲
- 掃雷游戲課程設(shè)計(jì)報(bào)告
- 掃雷游戲課程設(shè)計(jì)報(bào)告
- java掃雷課程設(shè)計(jì)
- java 課程設(shè)計(jì) 掃雷
- java課程設(shè)計(jì)--基于java的掃雷游戲軟件設(shè)計(jì)
- 2048小游戲java課程設(shè)計(jì)報(bào)告書大學(xué)論文
- 《猜拳小游戲》課程設(shè)計(jì)報(bào)告
- c程序課程設(shè)計(jì)報(bào)告(掃雷游戲)
- java_掃雷游戲課程設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)設(shè)計(jì)
- 掃雷游戲程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告
- 基于java的掃雷課程設(shè)計(jì)
- 基于java的掃雷課程設(shè)計(jì)
- java火柴游戲課程設(shè)計(jì)報(bào)告
評論
0/150
提交評論