資源描述:
《java課程設計報告-掃雷游戲》由會員上傳分享,免費在線閱讀,更多相關內容在行業(yè)資料-天天文庫。
1、Java課程設計課程名稱:掃雷姓名:學號:專業(yè):電子信息工程摘要Windows2000/XP系統(tǒng)提供的掃雷游戲是一個很有趣的游戲。本章的課程設計使用Java語言編寫一個與其類似的掃雷游戲。具體要求如下:(1)掃雷游戲分為初級、中級和高級三個級別,掃雷英雄榜存儲每個級別的最好成績,即挖出全部的地雷且用時最少者。單擊游戲菜單可以選擇“初級”、“中級”和“高級”或“查看英雄版”。(2)選擇級別后將出現(xiàn)相應級別的掃雷區(qū)域,這是用戶使用鼠標左鍵單擊雷區(qū)中任何一個方塊便啟動計時器。(3)用戶要揭開某個方塊,可單擊它。若所揭方塊下有淚,用戶便輸了這一局,若所揭方塊下五雷,則顯示一
2、個數(shù)字,該數(shù)字代表方塊的周圍的8個方塊中共有多少顆雷。(4)如果用戶認為某個方塊下埋著雷,單擊右鍵可以在方塊上標識一個用戶認為是雷的圖標,即給出一個掃雷標記。用戶每標記出一個掃雷標記(無論用戶的標記是否正確),程序將顯示的剩余雷數(shù)減少一個。(5)掃雷勝利后(用時最少者),程序彈出保存成績的對話框。(6)用戶可以選擇標記疑問的方塊,用可以勾選游戲菜單下的標記即可,此時雙擊右鍵并可出現(xiàn)“?”標記。另有顏色選項,當用戶勾選此項時,游戲將以最低圖像像素來顯示。正文一.設計目的:本次課程設計的主要目的是為了通過具體的程序來加深對Java語言的掌握,提高自己的編程水平。選擇的題
3、目來自《Java課程設計(第二版)》中的掃雷游戲,這是一個綜合性的題目,可以對Java中的各項功能有更好的理解和使用,同時也為以后的工作打下一定的基礎。二.總體設計:(1)用戶可以自定義級別并且可以任意輸入雷數(shù);(2)具有計時功能,即顯示用戶完成移動盤子所花費的時間;(3)用戶可以選擇是否有音效;(4)自動保存掃雷英雄榜。三.關鍵技術:四.程序流程:五.主要源代碼:importjavax.swing.ImageIcon;publicclassBlock{Stringname;//名字,比如"雷"或數(shù)字intaroundMineNumber;//周圍雷的數(shù)目Image
4、IconmineIcon;//雷的圖標booleanisMine=false;//是否是雷booleanisMark=false;//是否被標記booleanisOpen=false;//是否被挖開publicvoidsetName(Stringname){this.name=name;}publicvoidsetAroundMineNumber(intn){aroundMineNumber=n;}publicintgetAroundMineNumber(){returnaroundMineNumber;}publicStringgetName(){returnna
5、me;}publicbooleanisMine(){returnisMine;}publicvoidsetIsMine(booleanb){isMine=b;}publicvoidsetMineIcon(ImageIconicon){mineIcon=icon;}publicImageIcongetMineicon(){returnmineIcon;}publicbooleangetIsOpen(){returnisOpen;}publicvoidsetIsOpen(booleanp){isOpen=p;}publicbooleangetIsMark(){retur
6、nisMark;}publicvoidsetIsMark(booleanm){isMark=m;}}importjavax.swing.*;importjava.awt.*;publicclassBlockViewextendsJPanel{JLabelblockNameOrIcon;//用來顯示Block對象的name、number和mineIcon屬性JButtonblockCover;//用來遮擋blockNameOrIcon.CardLayoutcard;//卡片式布局BlockView(){card=newCardLayout();setLayout(ca
7、rd);blockNameOrIcon=newJLabel("",JLabel.CENTER);blockNameOrIcon.setHorizontalTextPosition(AbstractButton.CENTER);blockNameOrIcon.setVerticalTextPosition(AbstractButton.CENTER);blockCover=newJButton();add("cover",blockCover);add("view",blockNameOrIcon);}publicvoidgiveView(Blockblock){