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

正文內(nèi)容

java課程設(shè)計報告--hannoi塔-wenkub

2023-04-26 22:19:00 本頁面
 

【正文】 box類設(shè)計,其布局管理器為GridBagLayout。 } } 以上代碼核心為start_flag控制,其他相關(guān)控制在5設(shè)計總結(jié)和心得體會可以解答。 ()。 start_flag=false。 //將currentDatr與startDate之差以為時:分:秒:毫秒:格式轉(zhuǎn)為字符串str (str)。其中通過取得系統(tǒng)時間與記錄的游戲開始時間的差來刷新其組件上的內(nèi)容。 } else if(()==btn_stop){ If(){ ()。 break。i++){ if(pointA[i].equals(startPoint)){ m=i。i++){ pointA[i].putDisc(discs[i],this)。 pointC[i]=new TowerPoint(3*maxDiscWidth20,100+vertialDistance)。 for(int i=0。 } 以上代碼是監(jiān)聽到盤子設(shè)置菜單選擇點擊事件,系統(tǒng)彈出一個顏色的對話框,()刷新游戲區(qū)。 其部分代碼如下: else if(()==gFColor){ =(this,請選擇背景 色 ,new Color(255,0,0))。其中包含的操作有開始、結(jié)束、繼續(xù)、暫停、保存五大操作。: 主界面 ,創(chuàng)建的容器被添HannoiWindow窗體的中心。 Hannoi塔除了要編寫的10個Java源文件所給出的類外,還需要Java系統(tǒng)提供的一些重要的類,如JMenuBar、JMenu、JMenuItem和JButton。 功能要求 游戲規(guī)則 用戶用鼠標(biāo)選中盤子,然后通過拖動鼠標(biāo)來移動盤子、釋放鼠標(biāo)來放置該盤子。 課 程 設(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ū)兩個部分。其中主要的規(guī)則就是:(1) 移動盤子時,盤子上方必須無盤子(2) 放置盤子時,其位置必須在塔點處,而且盤子必須比下方盤子小(3) 游戲結(jié)束的條件是:所有的盤子均從A座移到B或C座 游戲設(shè)置功能 用戶可以通過游戲》選項來設(shè)置游戲的一些基本的屬性,如是否播放音樂、難度、盤子大小等等 游戲幫助功能 用戶可以通過菜單欄中的幫助能過初步了解游戲的相關(guān)信息,以及如何操作。 所示:HannoiWindow TowerJMenuItemJMenuBarGameSettingSJMenuGameMusicAutoMoveDiscHandleMouseDiscTowerPointTimeCount 類之間的組合關(guān)系 主要類功能設(shè)計 HannoiWindows類主要負(fù)責(zé)創(chuàng)建Hannoi塔的主窗口,該類包含main()方法,Hannoi塔從此類開始執(zhí)行。Tower類主要的功能是設(shè)置游戲區(qū)的所有組件的位置等相關(guān)信息以及注冊其中的監(jiān)聽器。 ,其主要的功能是彈出一個界面,其中包含游戲的基本設(shè)置項目,通過此界面的操作來調(diào)整游戲區(qū)的相關(guān)信息。 if(equalsColor()){ (null, 背景色與盤子顏色相 同,設(shè)置無效)。 Tower類 : Tower類中主要的功能就是確定塔、盤子的位置以及畫圖。i。 vertialDistance=vertialDistance+discHeight。 } 其中最主要的是知道Java圖形界面的坐標(biāo)系是采用的是倒坐標(biāo)系,所以pointA或pointB數(shù)組中最后的一個TowerPoint對象就是A或B座最底下的一個盤子的坐標(biāo) HandMouse類 HandMouse類主要處理的是鼠標(biāo)對盤子移動。 if((m==0)||(m0amp。 } } } 以上代碼是判斷選中的盤子是否是A座上的盤子同時判斷是否可以移動?首先通過if(pointA[i].equals(startPoint))判斷是否相等,如果相等則繼續(xù)判斷盤子是否為最上方的盤子或者盤子的上方無盤子,如果仍成立,則將可移動標(biāo)示設(shè)為true。 } } } 。關(guān)鍵代碼結(jié)構(gòu)如下: public void run(){ if(flag){ startDate=new Date()。 } } 其中通過flag來保證能夠獲得用戶用鼠標(biāo)移動第一個盤子的時間,其中主要涉及的問題是如何保證顯示同步,相關(guān)內(nèi)容在5 設(shè)計總結(jié)與心得體會有講解。 } //匹配盤子及判斷盤子是否可以移動 } public void mouseReleased(MouseEvent e) { //判斷游戲是否結(jié)束,如果結(jié)束則停止計時線程 if(pointB[0].getHaveDisc()||pointC[0].getHaveDisc()){ end_flag=true。 String str=().getText()。4 調(diào)試與結(jié)果分析 初級游戲 圖 初級游戲 上圖是游戲難度為初級即盤子數(shù)量為3的Hannoi游戲。鼠標(biāo)點擊游戲》 圖 選項 其中初稿主要的問題是由于GameSettingS類是JFrame的一個子類,其 與主窗口為不同的進(jìn)程因此修改的屬性值無法在主窗口中體現(xiàn)出來。其中主要的問題是數(shù)據(jù)傳遞問題以及線程問題。如在游戲時中途設(shè)置游戲難度為中級,在初稿中則會出現(xiàn)計數(shù)器無法重新計數(shù)。 總的來說,在本次課程設(shè)計中學(xué)到了很多,如StartUML軟件的使用以及如何活用適配器以及監(jiān)聽接口、內(nèi)部類等。,39。}。 private GameSettingS set。 (120)。 add(tower,)。 gStart=new JMenuItem(新游戲)。 gExit=new JMenuItem(退出)。 (gSetting)。 (this)。 (this)。 helpAuto=new JMenuItem(Hannoi演示)。 (this)。 setResizable(false)。 setDefaultCloseOperation()。 int k=()。 ()。 } else if(()==gBColor){ =(this,請選擇背景色 ,new Color(255,0,0))。 } else if(()==gFColor){ =(this,請選擇背景色 ,new Color(255,0,0))。 } else if(()==helpword){ ().setThreadField()。 ()。 ().setSize(400,().height)。import 。 public TowerPoint(int x,int y){ =x。 } public int getX(){ return x。()==()){ return true。 //獲取disc的大小相關(guān)信息 int w=().width。 //記錄屬性 haveDisc=true。 } //移除盤子 public void removeDisc(Component ,Container con){ if(!=null) ()。public class Disc extends JButton{ private int large。import .*。 //柱子上的坐標(biāo)信息 TowerPoint startPoint,endPoint。 private Thread thread。 private boolean end_flag=false。 start_flag=true。 } //鼠標(biāo)事件處理 /* * 鼠標(biāo)在組件下按下(nonJavadoc) * 判斷盤子是否可以移動 */ public void mousePressed(MouseEvent e) { if(start_flag){ thread=new Thread(runThread)。 if(().getClass()==){ disc=(Disc)()。 int m=0。 //盤子為A處最頂尖的盤子或者盤子上方無盤子 if((m==0)|| (m0amp。 } } }//end_for(pointA) for(int i=0。 if((m==0)|| (m0amp。 } } }//end_for(pointB) for(int i=0。 if((m==0)|| (m0amp。 } } }//end_for(pointC) }//end_mousePressed(MouseEvent e) //鼠標(biāo)選中組件并拖動信息 public void mouseDragged(MouseEvent e){ Disc disc=null。 int x=()。 if(move_flag==true) (leftXX0,leftYY0)。 int x=1。i。 //如果塔點坐標(biāo)在最上方且無盤子 if((i==) amp。 } //如果塔點坐標(biāo)不為最上方且無盤子 //下方有盤子且盤子的大小小于此盤子 e
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1