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

正文內(nèi)容

java課程設(shè)計報告--hannoi塔-展示頁

2025-01-27 22:24本頁面
  

【正文】 i游戲。 ().stop()。 String str=().getText()。 =true。 } //匹配盤子及判斷盤子是否可以移動 } public void mouseReleased(MouseEvent e) { //判斷游戲是否結(jié)束,如果結(jié)束則停止計時線程 if(pointB[0].getHaveDisc()||pointC[0].getHaveDisc()){ end_flag=true。 ()。 } } 其中通過flag來保證能夠獲得用戶用鼠標(biāo)移動第一個盤子的時間,其中主要涉及的問題是如何保證顯示同步,相關(guān)內(nèi)容在5 設(shè)計總結(jié)與心得體會有講解。 } While(flag){ Date currentDate=new Date()。關(guān)鍵代碼結(jié)構(gòu)如下: public void run(){ if(flag){ startDate=new Date()。其中主要的方法是run()方法即線程體。 } } } 。其中最主要的代碼是計時器監(jiān)聽,代碼大致結(jié)構(gòu)如下: public void actionPerformed(ActionEvent e) { if(()==time){ //移動信息輸入對話框 //移動游戲區(qū)盤子 } else if(()==btn_start){ //迭代字符串求解 ()。 } } } 以上代碼是判斷選中的盤子是否是A座上的盤子同時判斷是否可以移動?首先通過if(pointA[i].equals(startPoint))判斷是否相等,如果相等則繼續(xù)判斷盤子是否為最上方的盤子或者盤子的上方無盤子,如果仍成立,則將可移動標(biāo)示設(shè)為true。!pointA[m1].haveDisc)){ move_flag=true。 if((m==0)||(m0amp。i。 } 其中最主要的是知道Java圖形界面的坐標(biāo)系是采用的是倒坐標(biāo)系,所以pointA或pointB數(shù)組中最后的一個TowerPoint對象就是A或B座最底下的一個盤子的坐標(biāo) HandMouse類 HandMouse類主要處理的是鼠標(biāo)對盤子移動。i。 vertialDistance=vertialDistance+discHeight。 pointB[i]=new TowerPoint(2*maxDiscWidth20,100+vertialDistance)。i。其關(guān)鍵代碼如下: //設(shè)置塔點(diǎn)的x,y int vertialDistance=discHeight。 Tower類 : Tower類中主要的功能就是確定塔、盤子的位置以及畫圖。 } ()。 if(equalsColor()){ (null, 背景色與盤子顏色相 同,設(shè)置無效)。主要的功能就是監(jiān)聽JMenuItem對象如gStart等的監(jiān)聽。 ,其主要的功能是彈出一個界面,其中包含游戲的基本設(shè)置項目,通過此界面的操作來調(diào)整游戲區(qū)的相關(guān)信息。 ,其主要的功能是彈出一個對話框在其中顯示字符移動的全過程,與此同時移動游戲區(qū)的盤子直至游戲結(jié)束。Tower類主要的功能是設(shè)置游戲區(qū)的所有組件的位置等相關(guān)信息以及注冊其中的監(jiān)聽器。五種重要類型對象為:Tower、JMenuBar、JMenu、JMenuItem和GameSettings 對象。 所示:HannoiWindow TowerJMenuItemJMenuBarGameSettingSJMenuGameMusicAutoMoveDiscHandleMouseDiscTowerPointTimeCount 類之間的組合關(guān)系 主要類功能設(shè)計 HannoiWindows類主要負(fù)責(zé)創(chuàng)建Hannoi塔的主窗口,該類包含main()方法,Hannoi塔從此類開始執(zhí)行。 游戲外觀設(shè)置功能 用戶可以通過游戲》外觀可以設(shè)置游戲的背景顏色以及盤子的顏色2 總體設(shè)計 總體概述 在設(shè)計Hannoi塔時,需要編寫9個Java源文件:、。其中主要的規(guī)則就是:(1) 移動盤子時,盤子上方必須無盤子(2) 放置盤子時,其位置必須在塔點(diǎn)處,而且盤子必須比下方盤子?。?) 游戲結(jié)束的條件是:所有的盤子均從A座移到B或C座 游戲設(shè)置功能 用戶可以通過游戲》選項來設(shè)置游戲的一些基本的屬性,如是否播放音樂、難度、盤子大小等等 游戲幫助功能 用戶可以通過菜單欄中的幫助能過初步了解游戲的相關(guān)信息,以及如何操作。初始狀態(tài)下A座有三個大小不等的盤子,其按照從大到小的順序依次擺放在A座上。 課 程 設(shè) 計 報 告 課程名稱 Java程序設(shè)計 課題名稱 Hannoi塔 專 業(yè) 計算機(jī)科學(xué)與技術(shù) 班 級 學(xué) 號 姓 名 指導(dǎo)教師 李遠(yuǎn)輝 2013 年 6月 27日 湖南工程學(xué)院課 程 設(shè) 計 任 務(wù) 書課程名稱 Java程序設(shè)計 課 題 Hannoi塔 專業(yè)班級 學(xué)生姓名 學(xué) 號 指導(dǎo)老師 李遠(yuǎn)輝 審 批 李遠(yuǎn)輝 任務(wù)書下達(dá)日期 2013 年 6 月20 日任務(wù)完成日期 2013 年 6 月 27 日目錄1. 設(shè)計要求……………………………………………………………1 界面要求…………………………………………………………1 功能要求…………………………………………………………1 2. 總體設(shè)計 ………………………………………………………… 2 總體概述…………………………………………………………2 主要類功能設(shè)計…………………………………………………33. 詳細(xì)設(shè)計……………………………………………………………5 HannoiWindow類 ………………………………………………5 Tower類 …………………………………………………………5 HandleMouse類 …………………………………………………6 AutoMoveDisc類…………………………………………………7 TimeCount類 ……………………………………………………84. 調(diào)試與結(jié)果分析……………………………………………………9 初級游戲…………………………………………………………9 游戲界面屬性設(shè)置………………………………………………10 游戲外觀設(shè)置……………………………………………………10 自動移動演示……………………………………………………105. 設(shè)計總結(jié)與心得體會………………………………………………12附錄 ……………………………………………………………………13 1 參考書………………………………………………………………13 2 源代碼………………………………………………………………13 1 設(shè)計要求 界面要求 用戶界面為GUI界面,其分為菜單欄以及游戲區(qū)兩個部分。游戲區(qū)中分布有三座Hannoi塔,其名字分別為A、B、C。 功能要求 游戲規(guī)則 用戶用鼠標(biāo)選中盤子,然后通過拖動鼠標(biāo)來移動盤子、釋放鼠標(biāo)來放置該盤子。其中必須實現(xiàn)游戲的自動完成功能以指導(dǎo)用戶如何操作。 Hannoi塔除了要編寫的10個Java源文件所給出的類外,還需要Java系統(tǒng)提供的一些重要的類,如JMenuBar、JMenu、JMenuItem和JButton。HannoiWindows類的成員變量有五種重要類型對象以及一個char型數(shù)組。: 主界面 ,創(chuàng)建的容器被添HannoiWindow窗體的中心。 HandleMouse類主要負(fù)責(zé)的是鼠標(biāo)移動游戲區(qū)組件所有的事件,其主要實現(xiàn)了 MouseListener,MouseMotionListener兩個接口的方法。其中包含的操作有開始、結(jié)束、繼續(xù)、暫停、保存五大操作。 3 詳細(xì)設(shè)計 HannoiWindow類 其主要的方法是actionPerformed(ActionEvent e),其是ActionListenter接口的方法的實現(xiàn)。 其部分代碼如下: else if(()==gFColor){ =(this,請選擇背景 色 ,new Color(255,0,0))。 return。 } 以上代碼是監(jiān)聽到盤子設(shè)置菜單選擇點(diǎn)擊事件,系統(tǒng)彈出一個顏色的對話框,()刷新游戲區(qū)。其中最主要的是位置的確定。 for(int i=0。i++){ pointA[i]=new TowerPoint(maxDiscWidth20,100+vertialDistance)。 pointC[i]=new TowerPoint(3*maxDiscWidth20,100+vertialDistance)。 } for(int i=0。i++){ pointA[i].putDisc(discs[i],this)。其中主要涉及的是鼠標(biāo)選中 盤子、鼠標(biāo)拖動盤子、鼠標(biāo)放置盤子,所以其中主要的方法有三個:(1) mousePressed(MouseEvent e)(2)mouseDragged(MouseEvent e)(3)mouseReleased(MouseEvent e) ,下面主要介紹一下mousePress(MouseEvent e)方法對鼠標(biāo)選中盤子時判斷是否可以移動時的處理,其主要代碼如下: for(int i=0。i++){ if(pointA[i].equals(startPoint)){ m=i。amp。 break。 Tower類圖 HandleMouse類圖 AutoMoveDisc類 。 } else if(()==btn_stop){ If(){ ()。 AutoMoveDisc類UML圖 TimeCount類 TimeCount類繼承了JLabel類,實現(xiàn)了Runnale接口。其中通過取得系統(tǒng)時間與記錄的游戲開始時間的差來刷新其組件上的內(nèi)容。 flag=false。 //將currentDatr與startDate之差以為時:分:秒:毫秒:格式轉(zhuǎn)為字符串str (str)。 本類主要用在HandleMouse類中,其中控制結(jié)構(gòu)如下: //通過start_flag控制是否開始進(jìn)程 public void mousePressed(MouseEvent e) { if(start_flag){ thread=new Thread(runThread)。 start_flag=false。 start_flag=true。 ()。 (null, YOU WIN\n+用時+str)。 } } 以上代碼核心為start_flag控制,其他相關(guān)控制在5設(shè)計總結(jié)和心得體會可以解答。從圖中可以看出實現(xiàn)了游戲的基本規(guī)則以及界面要求還有就是計時要求。 其bug出現(xiàn)的原因是因為在放置盤子后沒有將move_flag修改為false. 游戲界面屬性設(shè)置 游戲界面屬性設(shè)置主要是采用Checkbox類設(shè)計,其布局管理器為GridBagLayout。后來將游戲區(qū)tower作為參數(shù)傳入直接重繪。鼠標(biāo)點(diǎn)擊游戲》外觀》背景顏色, 自動移動演示 背景色設(shè)置 圖 自動移動演示 5 設(shè)計總結(jié)和心得體會 本次課程由于老師已經(jīng)將部分源代碼分發(fā)以及星期一、二的上課,可以說對整個游戲的結(jié)構(gòu)已經(jīng)比較清晰了。 數(shù)據(jù)傳遞問題在調(diào)試與結(jié)果分析 ,接下來在詳細(xì)的說明。 還
點(diǎn)擊復(fù)制文檔內(nèi)容
高考資料相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1