freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于java的掃雷游戲的設計與實現(xiàn)-在線瀏覽

2025-07-10 20:22本頁面
  

【正文】 分配高級雷區(qū)按扭布局。如果按鈕按鍵觸發(fā),調(diào)用 ScanLei1 類中的 out()方法進行掃雷。如果該按鈕沒有被右擊過,在該按鈕中添加圖標,并將雷的個數(shù)減一。 開 始開 始定 義 并 初 始 化M i n e G r i d 類獲 取 相 應 的 設置 , 并 為 方 塊 產(chǎn)生 隨 機 數(shù) 字 賦 值計 數(shù) 器 數(shù) 小 于 等 級 雷 數(shù)存 放 賦 值 雷區(qū) , 計 數(shù) 器 加 1鼠 標 是 否 點 擊處 理 周 圍 信 息 ,并 顯 示 相 應 效 果YNYN 圖 雷區(qū)設計流程圖 功能分析 用戶可以玩掃雷游戲并能自定義級別(初等,中等,高等);具有計時功能,即顯示用戶完成掃雷任務所花費的時間。 6 (2)actionPerformed(ActionEvent)是 MineArea 類實現(xiàn)的 ActionListener接 口 中 的 方 法 。 (3)show()方法是一個遞歸方法。 (4)mousePressed(MouseEvent)方法是 MineArea 類實現(xiàn)的 MouseListener接口中的方法,當用戶按下鼠標有件事 mousePressed(MouseEvent)方法負責讓方塊上顯示一個探雷標記。所謂掃雷成功是指不僅找到了全部的累而且用時最少。 經(jīng)過編寫這個掃雷游戲,我認識到應該注意細節(jié)問題,雖然是很小的問題,但可以提高自己編程的能力,而且還可以培養(yǎng)自己編程的嚴謹性,同時還可以為以后的編程積累經(jīng)驗。感觸最深的就是我們真的要扎扎實實的打基礎!并且我感覺到只要我們自己肯下功夫?qū)W習,我們也可以做出很好的東西,不需要每次都抄襲別人的,只有自己的才是最珍貴的! 11 參考文獻 [1] 耿祥義. Java 大學實用教程.北京:清華大學出版社, 2021. [2] 耿祥義. Java 課程設計.北京:清華大學出版社, 2021. [3] 王鵬. Java Swing 圖形界面開發(fā)與案例詳解.北京:清華大學出版社, 2021. [4] 丁振凡. Java 語言實驗教程 .北京:北京郵電大學出版社, 2021. [5] 鄭莉. Java語言程序設計.北京:清華大學出版社, 2021. [6].孫全黨 王吳迪 趙楓朝, Java 程序設計應用教程,電子工業(yè)出版社, [7].雷之宇, Java 項目開發(fā)實踐 — 網(wǎng)絡篇,中國鐵道出版社, [8].趙玉陽, Java 從入門到精通,清華大學出版社, [9].李蘢怡, Java 編程實例講解,高等教育出版社, [10].張利國, Java 實用教程案例,北京:清華大學出版社, 12 附 錄 import 。 //導入一個容器,也是一個組件,在這個容器里你可以添加其他 awt 的組件 import 。 //導入網(wǎng)格式布局 import 。它指 定一個容器在它的各個邊界上應留出的空白區(qū)間。 import 。 import 。繼承自 EventListener。 //導入鼠 標監(jiān)聽適配器,負責對鼠標事件進行監(jiān)聽 import 。//導入按鈕類 import 。//導入標簽類 import 。 //用來創(chuàng)建水平菜單欄 import 。 //面板 import 。 public class ScanLei1 extends JFrame implements ActionListener{ //掃雷類繼承了 JFrame 實現(xiàn)了 ActionListener 接口 private static final long serialVersionUID = 1L。 //內(nèi)容面板,每一個 JFrame 對應一個內(nèi)容面板,所有的組件應該置于內(nèi)容面板之上 private JButton btn。//聲明一個按鈕數(shù)組 雷區(qū)的每一個雷都是一個按鈕,所有按鈕放置到該數(shù)組中 private JLabel b1。 //聲明一個標簽對象,該標簽用于放置已經(jīng)游戲的時間 private JLabel b3。//聲明一個定時器對象 private int row=9。 //列 用于指定雷區(qū)的列 private int bon=10。//聲明一個 int 型的二維數(shù)組,二維數(shù)組的中元素,有以下含義,值為 0說明該元素所對應的坐標所在的按鈕既不是雷又不是周圍有雷的按鈕,如果是 100,則說明 private int b。//聲明 int 型數(shù)組 a1,放置隨機數(shù),用于確定雷應該布到雷區(qū)的位置 private JPanel p,p1,p2,p3。//調(diào)用 JFrame 的構造方法,將 title 字符串傳入該構造方法,這樣的話窗體顯示時,標題欄會顯示傳入的 title 值 contentPane=getContentPane()。//設置掃雷窗體的大小事 300*400 像素 (400, 100, 400, 500)。 x:組件在容器 X軸上的起點 y:組件在容器 Y 軸上的起點 width:組件的長度 height:組件的高度 14 setDefaultCloseOperation()。//每隔 1000 毫秒觸發(fā)一次動作事件的監(jiān)聽 a = new int[row+2][col+2]。 //調(diào)用初始化圖形界面方法 } public void initGUI(){//聲明初始化圖形界面方法 p3=new JPanel()。//將 bon 的值賦值給變量 b JMenuBar menuBar=new JMenuBar()。//創(chuàng)建游戲菜單 JMenu menu2=new JMenu(幫助 )。//創(chuàng)建初級菜單項 JMenuItem mi2 = new JMenuItem(中級 )。//創(chuàng)建高級菜單項 (this)。 (this)。 (this)。//以上幾個操作類 似 (menu1)。//將幫助菜單加入到菜單欄 15 (menuBar)。//創(chuàng)建一個標簽 ,標簽的內(nèi)容是 bon 的值 10 a1=new int[bon]。//創(chuàng)建開始按鈕 (this)。//創(chuàng)建標簽 b2, b2 的內(nèi)容是 0 b3=new JLabel()。//創(chuàng)建一個按鈕數(shù)組,數(shù)組的個數(shù)為 row*col,這個程序中就是 9*9 個,每一個雷的位置就是一個按鈕 p=new JPanel()。 //設置容器的邊框布局,邊框布局的樣式大致是這樣 (p)。//p3 添加到面板的北邊,也就是在北邊放上了菜單欄,結(jié)果就如圖了 //bo=new JComboBox(new Object[]{初級 ,中級 ,高級 } )。*/ p1=new JPanel()。 //Alignment 列隊 (b1)。//將開始按鈕添加到面板上 (b2)。//將標簽 b3 添加到面板 上 16 (p3,)。//將帶有一個開始按鈕,三個標簽的按鈕加入到窗體的中間位置 p2=new JPanel()。 // GridLayout 網(wǎng)格布局, p2 設置為網(wǎng)格布局,該布局的最多可以 9 行 9 列,正好可以放置 81 個雷按鈕,按鈕和按鈕之間的水 for(int i=0。i++){//為按鈕數(shù)組賦值,此處的作用是創(chuàng)建 81 個雷按鈕對象 btns[i]=new JButton()。//設置雷按鈕與其他組件的間距 btns[i].setFont(new Font(null,25))。黑體 25px btns[i].addActionListener(this)。//添加鼠標監(jiān)聽器,監(jiān)聽普通鼠標事件 (btns[i])。 (p2,)。//設置是否顯示窗體,設置為 true 就是顯示當前窗體 } public static void main(String[] args){//主方法,作用是實例化窗體對象,調(diào)用 go 方法將窗體顯示到屏幕上來 new ScanLei1(11 計科 2 班掃雷軟件 ).go()。 if(a[x][y]==0){//如果一個按鈕既不是雷周圍又沒有雷 a[x][y]=10。 //且這個按鈕不可用狀態(tài) for(int l=y1。l++){//排除按鈕左右的位置 int m=x11。//左兩列 p=1。 if(n1amp。ncolamp。m1amp。mrow) {//如果 n 值和 m 值在雷區(qū)的范圍之內(nèi) for(int q=0。amp。q++){//colrow。amp。amp。// 那么應該將周圍雷的個數(shù)顯示到按鈕上去 a[x1][l]=10。//設置按鈕不可用 } else if(a[x1][l]==0){//如果這個按鈕上一行前面和左右方向仍然是既不是雷又不是周圍有雷,那么遞歸判斷這個 //a[x1][l]=10。 out(a,btns,e,n+col*q,x1,l)。 btns[n+col*q].setEnabled(false)。 } } } p=1。 if(n1amp。ncolamp。m1amp。mcol) { for(int q=0。amp。q++){ if(((n+col*q)=(m*col))amp。((n+col*q)(m+1)*col)){ //如果該按鈕下一行后面以及左右的按鈕相應位置的值既不是雷又沒雷且又不 if(a[x+1][l]!=0amp。a[x+1][l]!=10){ btns[n+col*q].setText(a[x+1][l]+)。 btns[n+col*q].setEnabled(false)。///55//// a[x+1][l]=10。 } p=0。 int n=y11。 if(n1amp。ncolamp。m1amp。mcol) { for(int q=0。amp。q++){ if(((n+col*q)=(m*col))amp。((n+col*q)(m+1)*col)){ if(a[x][y1]!=0amp。a[x][y1]!=10){ btns[n+col*q].setText(a[x][y1]+)。 btns[n+col*q].setEnabled(false)。 20 a[x][y1]=10。 } p=0。 m=x1。 if(n1amp。ncolamp。m1amp。mcol) { for(int q=0。amp。q++){ if(((n+col*q)=(m*col))amp。((n+col*q)(m+1)*col)){ if(a[x][y+1]!=0amp。a[x][y+1]!=10){ btns[n+col*q].setText(a[x][y+1]+)。 btns[n+col*q].setEnabled(false)。 a[x][y+1]=10。 } p=0。//設置雷的行數(shù)是 9 col=9。 a1=new int[bon]。 //setSize(297,377)。 (p2)。//計時器停止 (10)。//b2 的標簽內(nèi)容為 0 ()。//創(chuàng)建雷區(qū)雷按鈕數(shù)組 p2=new JPanel()。//設置 p2 為網(wǎng)格布局,同樣還是 9行 9 列,每一個單元格放一個雷 for(int i=0。i++){ btns[i]=new JButton( )。//設置雷按鈕的間距
點擊復制文檔內(nèi)容
教學課件相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1