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

正文內(nèi)容

畢業(yè)論文-基于java的魔板游戲的設(shè)計(jì)與開(kāi)發(fā)-在線瀏覽

2024-09-20 23:13本頁(yè)面
  

【正文】 板游戲詳細(xì)設(shè)計(jì)這一章時(shí)介紹開(kāi)發(fā)環(huán)境和用到的開(kāi)發(fā)工具,系統(tǒng)主要的功能設(shè)計(jì),系統(tǒng)的數(shù)據(jù)流程圖,UML圖。此項(xiàng)目魔板游戲可由用戶(hù)選擇3*3和4*4兩個(gè)不同難度,N*N的魔板游戲原理與此相同,游戲可以通過(guò)下拉列表實(shí)現(xiàn)選擇不同的游戲圖像,增加游戲的趣味性。通過(guò)不斷地移動(dòng)方塊,可以將方塊一行一行按數(shù)字或圖片依次拼圖。 系統(tǒng)的詳細(xì)設(shè)計(jì) PuzzleGame類(lèi)效果圖PuzzlePad創(chuàng)建的窗口效果如圖5所示。puzzlePad:PuzzlePad digitPlay,imagePlay:JRadioButtonbar:JMenuBar startButton:JButtongradMenu,choiceImage:JMenu tool:ToolkitoneGrade,twoGrade:JMenuItem image:ImagenewImage,defaultImage:JMenuItemPuzzleGame():無(wú)類(lèi)型 actionPerformed(ActionEvent):voidmain(String[]):voidJFramePuzzleGame圖6 PuzzleGame類(lèi)的UML圖以下是UML圖中有關(guān)數(shù)據(jù)和方法的詳細(xì)說(shuō)明。bar被放置在窗口的頂部l gradeMenu和choiceImage是JMenu創(chuàng)建的菜單,其名字分別為“選擇級(jí)別”和“選擇圖像”。l oneGrade、twoGrade、newImage和defaultImage是JMenuItem創(chuàng)建的菜單項(xiàng),名字依次為“初級(jí)”,“高級(jí)”,“選擇一幅新圖像”和“使用默認(rèn)圖像”,oneGrade和twoGrade菜單項(xiàng)被添加到菜單gradeMenu 中,newImage和defaultImage都將當(dāng)前窗口注冊(cè)為自己的ActionEvent事件監(jiān)視器。同一時(shí)刻digitPlay和imagePlay中只能有一個(gè)處于選中狀態(tài)。startButton將當(dāng)前窗口注冊(cè)為自己的ActionEvent事件監(jiān)視器。l tool是Toolkit對(duì)象,負(fù)責(zé)創(chuàng)建image對(duì)象2)方法l PuzzleGame()是構(gòu)造方法,負(fù)責(zé)完成窗口的初始化操作。PuzzleGame類(lèi)創(chuàng)建的窗口是菜單中的菜單項(xiàng)、單選框以及按鈕上的ActionEvent事件監(jiān)視器。如果用戶(hù)選中newImage或defaultImage菜單項(xiàng)時(shí),actionPerformed(ActionEvent)方法所執(zhí)行的操作就是分別改變image對(duì)象。l main方法是程序運(yùn)行的入口方法。(a)數(shù)字魔板(b)圖像魔板圖7 PuzzlePad創(chuàng)建的魔板對(duì)象 UML圖,所創(chuàng)建的對(duì)象:puzzlePad是PuzzleGame類(lèi)中最重要的成員之一,作為一個(gè)容器添加到PuzzleGame窗口的中心。PuzzlePadpoint:Point[][] handleImage:HandleImageblock:Block[][]。1)成員變量l point是Point類(lèi)型的而為數(shù)組,單元為Point類(lèi)創(chuàng)建的對(duì)象,用來(lái)確定魔板中的方塊的位置l block是Block類(lèi)型的二維數(shù)組,單元為Block類(lèi)創(chuàng)建的對(duì)象,用來(lái)表示魔板中的方塊。Point對(duì)象根據(jù)distance的值來(lái)進(jìn)行初始化,以便確定Point對(duì)象之間的距離。Grade的值代表魔板的級(jí)別,默認(rèn)值是1.l handleMove是HandleMove類(lèi)創(chuàng)建的對(duì)象,負(fù)責(zé)處理Block對(duì)象上的鼠標(biāo)事件。l verifySuccess是VerifySuccess類(lèi)創(chuàng)建的對(duì)象,負(fù)責(zé)驗(yàn)證用戶(hù)是否按要求成功排列了魔板中的方塊。l tool是Toolkit對(duì)象,負(fù)責(zé)創(chuàng)建Image聲明的圖像對(duì)象:image。l Puzzlepad對(duì)象調(diào)用getHandleMove()方法返回其中的HandleMove對(duì)象,即返回handleMove。l PuzzlePad對(duì)象調(diào)用setGrade(int)方法設(shè)置魔板的級(jí)別。l PuzzlePad對(duì)象調(diào)用needInit()方法負(fù)責(zé)完成Block和Point對(duì)象的創(chuàng)建,以及完成對(duì)其他的對(duì)象的初始化。l PuzzlePad對(duì)象調(diào)用setIsImagePlay()方法將魔板設(shè)置為圖像玩法。 Black類(lèi)效果圖Block創(chuàng)建的對(duì)象效果如圖9所示。Block型數(shù)組block是PuzzlePad類(lèi)的重要成員之一。JTextFieldPoint :PointObject:ObjectBlock():無(wú)類(lèi)型 setObject(Object):voidsetAtPoint(Point):void getObject():ObjectgetAtPoint():Point paintConent(Graphics):voidBlockPuzzlePad block :Block[][]圖10 Block類(lèi)的UML圖以下是UML圖中有關(guān)數(shù)據(jù)和方法的詳細(xì)說(shuō)明。l object是Object類(lèi)型的對(duì)象,用來(lái)確定Block對(duì)象上所顯示的數(shù)字或圖像。l Block對(duì)象調(diào)用setAtPoint()返回自己所在的“點(diǎn)”即返回point對(duì)象的引用。l Block對(duì)象調(diào)用paintComponent(Graphics)方法繪制出Image對(duì)象。Point創(chuàng)建的對(duì)象沒(méi)有可顯示的效果圖。Point類(lèi)創(chuàng)建的對(duì)象是二維數(shù)組point的單元中的對(duì)象。標(biāo)明point類(lèi)的主要成員變量和方法以及和puzzlePad類(lèi)之間組合關(guān)系的UML圖如圖11所示。1)成員變量l x和y是Point對(duì)象中的兩個(gè)int類(lèi)型數(shù)據(jù),分別用來(lái)表示容器坐標(biāo)系中的x軸坐標(biāo)和y軸坐標(biāo)值。l block是Block類(lèi)聲明的對(duì)象,用來(lái)存放一個(gè)Block對(duì)象的引用,標(biāo)明該Block對(duì)象在當(dāng)前point對(duì)象上。l Point對(duì)象調(diào)用isHaveBlock()方法返回一個(gè)boolean型數(shù)據(jù),如果當(dāng)前Point對(duì)象上有Block對(duì)象,isHaveBlock()方法返回true;否則返回false。l Point對(duì)象調(diào)用getX()和getY()方法可以返回其中的x軸坐標(biāo)和y軸坐標(biāo)。l Point對(duì)象調(diào)用setBlock(Block)方法,將參數(shù)指定的Block對(duì)象放置在當(dāng)前point對(duì)象上。 HandleImage類(lèi)q 效果圖HandleImage創(chuàng)建的對(duì)象負(fù)責(zé)將一幅圖像分解為諾干個(gè)小的圖像,沒(méi)有可顯示的效果圖。HandleImage類(lèi)的主要成員變量和方法以及和PuzzlePad類(lèi)之間的組合關(guān)系的UML圖像如圖12所示。1) 成員變量l imageWidth和imageHeight是int型數(shù)據(jù),用來(lái)存儲(chǔ)圖像的寬和高。2) 方法l HandleImage()是構(gòu)造方法,負(fù)責(zé)完成HandleImage對(duì)象的初始化。3) 代碼() HangleMove類(lèi) 效果圖andleMove創(chuàng)建的對(duì)象效果如圖13所示。當(dāng)用戶(hù)用鼠標(biāo)單擊Block對(duì)象后,handleMove對(duì)象負(fù)責(zé)給出移動(dòng)Block對(duì)象有關(guān)的算法,并顯示用戶(hù)的時(shí)間。JPanelMouseListenerActionListenerHandleMovepoint:Point[][] showTime:JTextFieldspendTime:int verifSuccessrecordTime:TimerHandMove():setPoint(Point[][]):voidintSpendTime():voidsetVerifySuccess(VerifySuccess):viodactionPerformed(ActionEvent):voidmousePressed(MouseEvent e):voidmouseReleased(MouseEvent e):voidPuzzlePadhandleMove:HandleMove圖14 HandleMove類(lèi)的UML圖以下是UML圖中有關(guān)數(shù)據(jù)和方法的詳細(xì)說(shuō)明 成員變量l Point是Point類(lèi)型二維數(shù)組,用來(lái)存放PuzzlePad魔板容器中point數(shù)組的引用l SpendTime用來(lái)記錄用戶(hù)玩魔板游戲的用時(shí)l recordTime是計(jì)時(shí)器l showTime是JTextField創(chuàng)建的文本框,負(fù)責(zé)顯示用時(shí)l verify是VerifySuccess聲明的對(duì)象,用來(lái)存放PuzzlePad魔板中verifySuccess對(duì)象的引用。我們使用Timer類(lèi)的構(gòu)造法國(guó)法Timer(int a,Object b)創(chuàng)建了計(jì)時(shí)器recordTime,其中的參數(shù)a的單位是毫秒,確定計(jì)時(shí)器每隔a毫秒“振鈴”一次,參數(shù)b是計(jì)時(shí)器的監(jiān)視器。計(jì)時(shí)器方式的振鈴事件是ActionEvent類(lèi)型事件,當(dāng)振鈴事件發(fā)生時(shí),監(jiān)視器就會(huì)監(jiān)視到這個(gè)事件,監(jiān)視器就調(diào)用actionPerformed(ActionEvent)方法。 VerifySuccess類(lèi) 效果圖沒(méi)有可見(jiàn)的效果圖。標(biāo)明VerifySuccess類(lèi)的主要成員變量和方法以及和PuzzlePad類(lèi)之間組合關(guān)系的UML圖15所示。1) 成員變量l point是Point類(lèi)型二維數(shù)組,用來(lái)存放PuzzlePad魔板容器中point數(shù)組的引用。2) 方法l VerifySuccess對(duì)象調(diào)用setPoint(Point[][])方法將PuzzlePad魔板中的point對(duì)象的引用傳遞給該對(duì)象中的pointl VerifySuccess對(duì)象調(diào)用setPoint(Object[][])方法可以將PuzzlePad魔板容器的Integer數(shù)組或Image數(shù)組的引用傳遞給該對(duì)象中的objectl VerifySuccess對(duì)象調(diào)用isSuccess()方法判斷用戶(hù)是否按要求成功排列魔板中的方塊,如果成功isSuccess()方法返回true;否則返回false 第三章 魔板游戲系統(tǒng)的具體實(shí)現(xiàn) 游戲主類(lèi)的設(shè)計(jì) 主類(lèi)主要定義了游戲界面的布局,以及調(diào)用的一些類(lèi)來(lái)實(shí)現(xiàn)游戲的進(jìn)行。//創(chuàng)建一個(gè)菜單條 bar=new JMenuBar()。//建立指定標(biāo)題為“選擇級(jí)別”的菜單 choiceImage=new JMenu(選擇圖像)。//建立指定標(biāo)題為“初級(jí)”的菜單選項(xiàng) twoGrade=new JMenuItem(高級(jí))。//建立指定標(biāo)題為“選擇一幅新圖像”的菜單選項(xiàng) defaultImage=new JMenuItem(使用默認(rèn)圖像)。//向gradeMenu添加由參數(shù)oneGrade指定的菜單選項(xiàng)對(duì)象 (twoGrade)。//向choiceImage添加由參數(shù)newImage指定的菜單選項(xiàng)對(duì)象 (defaultImage)。//向bar菜單條添加由參數(shù)gradeMenu指定的菜單選項(xiàng)對(duì)象 (choiceImage)。//設(shè)置菜單條里面的組件 魔板對(duì)象的實(shí)現(xiàn)該游戲由數(shù)字或者圖像兩種選擇。生成的魔板顯示為: 主要代碼: public void setIsDigitPlay(){//將魔板設(shè)置為數(shù)字玩法 needInit()。//當(dāng)魔板玩法是數(shù)字玩法時(shí) ArrayListInteger numberList=new ArrayListInteger()。km*n1。 } Object []object=()。 (numberList)。 for(int i=0。i++){ if(im1) for(int j=0。j++){ block[i][j].setObject((k))。 } else for(int j=0。j++){ block[i][j].setObject((k))。 } } repaint()。//this代表使用該方法的當(dāng)前對(duì)象 if(object instanceof Integer){//條件判斷語(yǔ)句,滿足要求時(shí)執(zhí)行下列語(yǔ)句 Integer number=(Integer)object。 } else if(object instanceof Image){//不滿足if條件語(yǔ)句是執(zhí)行的條件 repaint()。//返回值 } 游戲使用時(shí)間的設(shè)計(jì)智力類(lèi)的游戲都會(huì)記錄下游戲所用的時(shí)間,魔板游戲?qū)儆谥橇︻?lèi)游戲之一,因此,對(duì)于時(shí)間的記錄也將在我們的設(shè)計(jì)范圍之內(nèi)。時(shí)間顯示如下:部分代碼:public void mousePressed(MouseEvent e) {//鼠標(biāo)事件 ()。//設(shè)置數(shù)據(jù)為空 block = (Block) ()。 i 。 j point[0].length。 startJ = j。 } } for (int i = 0。 i++) { for (int j = 0。 j++) if (point[i][j].isHaveBlock() == false) {
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1