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

正文內(nèi)容

基于java的魔板游戲的設(shè)計(jì)與開發(fā)-閱讀頁(yè)

2024-12-07 21:54本頁(yè)面
  

【正文】 19 PuzzlePad類 效果圖 PuzzlePad 創(chuàng)建的魔板對(duì)象效果如圖 7 所示。標(biāo)明 PuzzlePad 類的主要成員變量、方法以及和 PuzzleGame 類之間組合關(guān)系的 UML 圖如圖 8 所示。 1)成員變量 ? point 是 Point 類型的而為數(shù)組,單元為 Point 類創(chuàng)建的對(duì)象,用來(lái)確定魔板中的方塊的位置 ? block 是 Block 類型的二維數(shù)組,單元為 Block 類創(chuàng)建的對(duì)象,用來(lái)表示魔板中的方塊。 Point 對(duì)象根據(jù) distance 的值來(lái)進(jìn)行初始化,以便確定 Point 對(duì)象之間的距離。 Grade 的值 代表魔板的級(jí)別,默認(rèn)值是 1. ? handleMove 是 HandleMove 類創(chuàng)建的對(duì)象,負(fù)責(zé)處理 Block 對(duì)象上的鼠標(biāo)事件。 ? verifySuccess 是 VerifySuccess 類創(chuàng)建的對(duì)象,負(fù)責(zé)驗(yàn)證用戶是否按要求成功排列了魔板中的方塊。 PuzzlePad point:Point[][] handleImage:HandleImage block:Block[][]。、 2)方法 ? PuzzlePad()是構(gòu)造方法,負(fù)責(zé)創(chuàng)建 PuzzlePad 對(duì)象。 ? PuzzlePad 對(duì)象調(diào)用 setImage(Image)方法設(shè)置 image 對(duì)象。 ? PuzzlePad 對(duì)象調(diào)用 getGrade()方法返回 grade。、 ? PuzzlePad 對(duì)象調(diào)用 setIsDigitPlay()方法將魔板設(shè)置為數(shù)字玩法。 ? PuzzlePad 對(duì)象調(diào)用 paintComponent(Graphics)方法將魔板使用的圖像,即image 對(duì)象,繪制在魔板的右側(cè)。 ( a)對(duì)象 1 ( b)對(duì)象 2 圖 9 Block 創(chuàng)建的兩個(gè)對(duì)象 UML 圖 Block 類是 包中 JTextField 類的一個(gè)子類,創(chuàng)建的對(duì)象是二維數(shù)組 block 的單元中的對(duì)象。標(biāo)明 Block 類的主要成員變量和方法以及和 PuzzlePad 類之間組合關(guān)系的 UML圖如圖 10 所示。 1) 成員變量 ? point 是 Point 型對(duì)象,用來(lái)確定 Block 對(duì)象在 PuzzlePad 所創(chuàng)建的魔板容器中的位置。 2)方法 ? Block 對(duì)象調(diào)用 setAtPoint( Point)方法設(shè)置自己所在的“點(diǎn)”,即設(shè)置 point對(duì)象的引用。 ? Block 對(duì)象調(diào)用 setObject( Object)方法設(shè)置自己的成員 object,當(dāng)設(shè)置object 是 Integer 對(duì)象時(shí),當(dāng)前的 Block 對(duì)象顯示 Integer 對(duì)象中的數(shù)字;當(dāng)設(shè)置 object 是 Image 對(duì)象時(shí),當(dāng)前 Block 對(duì)象將調(diào)用 repaint()方法重新繪制 Image 對(duì)象。 Point 類 效果圖 Point 創(chuàng)建的對(duì)象負(fù)責(zé)確定 Block 對(duì)象在 PuzzlePad 魔板容器中所在的位置。 JTextField Point : Point Object: Object Block():無(wú)類型 setObject(Object):void setAtPoint(Point):void getObject():Object getAtPoint():Point paintConent(Graphics):void Block PuzzlePad block : Block[][] 2020 級(jí)程序設(shè)計(jì)綜合實(shí)驗(yàn)報(bào)告 23 UML 圖 Point 創(chuàng)建的對(duì)象含有兩個(gè)重要 int 型數(shù)據(jù),分別用來(lái)表示 puzzlePad 魔板容器坐標(biāo)系中的 x 軸坐標(biāo)和 y 軸坐標(biāo)值,坐標(biāo)系的原點(diǎn)是 puzzlePad 魔板容器的左上角,向右 是 x 軸的正向,向下是 y 軸的正向。 Point 型二維數(shù)組 point 是 puzzlePad 魔板容器的重要成員之一,其單元中的 point 對(duì)象用來(lái)確定 block對(duì)象在 puzzlePad 魔板容器中的位置。 圖 11 Point 類的 UML 圖 以下是 UML 圖中有關(guān)數(shù)據(jù)和方法的詳細(xì)說(shuō)明。 ? haveBlock 是 boolean 型數(shù)據(jù),如果有 Block 對(duì)象在該 Point 對(duì)象上時(shí),該數(shù)據(jù)為 true;否則為 false。 2)方法 ? Point( int , int)是構(gòu)造方法,用來(lái)創(chuàng)建 Point 對(duì)象。 ? Point 對(duì)象調(diào)用 setHaveBlock( boolean)方法可以根據(jù)參數(shù)的值設(shè)置當(dāng)前 point對(duì)象上是否有 block 對(duì)象。 ? Point 對(duì)象調(diào)用 equals( TowerPoint)方法可以判斷當(dāng)前 point 對(duì)象是否和參數(shù)指定的 point 對(duì)象相同。 ? Point 對(duì)象調(diào)用 getBlock()方法可以返回當(dāng)前 point 對(duì)象上的 Block 對(duì)象。 ? UML 圖 HandleImage 類是 包中 JComponent 類的一個(gè)子類,創(chuàng)建的對(duì)象 handleImage 負(fù)責(zé)將一幅圖像分解成諾干幅小圖像,是 PuzzlePad 類的重要成員之一。 圖 12 HandleImage 類的 UML 圖 以下是 UML 圖中有關(guān)數(shù)據(jù)和方法的說(shuō)明。 ? tool 是 Toolkit 對(duì)象,用來(lái)獲得 Image 對(duì)象。 ? getImages( Image, int, int)方法將參數(shù)指定的圖像分成諾干個(gè)更 小的圖像,并將這些圖像存放到一個(gè) Image 數(shù)組中,然后返回該數(shù)組。 圖 13 HandMove 創(chuàng)建的對(duì)象 UML 圖 HandleMove 類是 包中 JPanel 容器的一個(gè)子類,并實(shí)現(xiàn)了MouseListener 和 ActionListener 接口,創(chuàng)建的對(duì)象 handleMove 是 PuzzlePad 類的成員之一,負(fù)責(zé)監(jiān)視 PuzzlePad 類中的 Block 對(duì) 象上的鼠標(biāo)事件。標(biāo)明 HandleMove 要成員變量、方法以及和 PuzzlePad 類之間組合關(guān)系的 UML 圖如圖 14 所示。 方法 ? HandleMove()是構(gòu)造方法,負(fù)責(zé)創(chuàng)建 handleMove 對(duì)象 ? handleMove 對(duì)象調(diào)用 setPoint(Point[][])方法將 PuzzlePad 魔板容器的 point 對(duì)象的引用傳遞給該對(duì)象中的 point,以便 handleMove 移動(dòng) PuzzlePad 魔板 容器中的 Block 對(duì)象 ? handleMove 對(duì)象調(diào)用 setVerifySuccess( VerifySuccess)方法將 PuzzlePad 魔板容器的 verifySuccess 對(duì)象的引用傳遞給該對(duì)象中的 verify, verify 對(duì)象負(fù)判斷魔板中的 Block 對(duì)象是否成功地按要求排列完畢 JPanel MouseListener ActionListener HandleMove point: Point[][] showTime:JTextField spendTime:int verifSuccess recordTime:Timer HandMove(): setPoint(Point[][]):void intSpendTime():void setVerifySuccess(VerifySuccess):viod actionPerformed(ActionEvent):void mousePressed(MouseEvent e):void mouseReleased(MouseEvent e):void PuzzlePad handleMove:HandleMove 2020 級(jí)程序設(shè)計(jì)綜合實(shí)驗(yàn)報(bào)告 27 ? handleMove 對(duì)象調(diào)用 initSpendTime()將 spendTime 的值設(shè)置為 0 ? mousePressed( KeyEvent)方法是 HandleMove 類實(shí)現(xiàn)的 MouseListener 借口中的方法,當(dāng)在 Block 對(duì)象 上按下鼠標(biāo)左鍵時(shí),將觸發(fā) MouseEvent 鍵盤事件, handleMove 對(duì)象將調(diào)用執(zhí)行 mousePressed( KeyEvent)方法對(duì)事件作出處理,即根據(jù)規(guī)則移動(dòng) block 對(duì)象 ? mouseReleased( MouseEvent)方法是 HandleMove 類實(shí)現(xiàn)的 MouseListener借口中的方法,當(dāng)用在 Block 對(duì)象上釋放鼠標(biāo)左鍵時(shí),將觸發(fā) MouseEvent鍵盤事件, handleMove 對(duì)象將調(diào)用執(zhí)行 mouseReleased(MouseEvent)方法對(duì)事件作出處理,其主要操作時(shí)判斷用戶是否已經(jīng) 成功地將 Block 對(duì)象按要求排列完畢 ? actionPerformed( ActionEvent)是 HandleMove 類實(shí)現(xiàn)的 ActionListener 借口中的方法。在這里我們?nèi)?a=1000,監(jiān)視器 b 是當(dāng)前handleMove 對(duì)象。當(dāng)振鈴每隔 1000 毫秒發(fā)生一次時(shí),方法actionPerformed(ActionEvent)就被執(zhí)行一次,所執(zhí)行的操作就是現(xiàn)實(shí)用戶當(dāng)前的用時(shí)。 UML 圖 VerifySuccess 創(chuàng)建的對(duì)象負(fù)責(zé)驗(yàn)證用戶是否按要求成功排列魔板中的方塊,創(chuàng)建的對(duì)象 verifySuccess 是 PuzzlePad 類的重要成員之一。 2020 級(jí)程序設(shè)計(jì)綜合實(shí)驗(yàn)報(bào)告 28 圖 15 VerifySuccess 類的 UML 圖 以下是 UML 圖中有關(guān)數(shù)據(jù)和方法的詳細(xì)說(shuō)明。 ? object 是 Object 數(shù)組,其單元可以存放任何對(duì)象。其主要的效 果圖展示即為: 核心代碼展示: public PuzzleGame(){ tool=getToolkit()。 gradeMenu=new JMenu(選擇級(jí)別 )。//建立指定標(biāo)題為“選擇圖像”的菜單 oneGrade=new JMenuItem(初級(jí) )。//建立指定標(biāo)題為“高級(jí)”的菜單選項(xiàng) newImage=new JMenuItem(選擇一幅新圖像 )。//建立指定標(biāo)題為“使用默認(rèn)圖像”的菜單選項(xiàng) (oneGrade)。//向 gradeMenu 添加由參數(shù) twoGrade 指定的菜單選項(xiàng)對(duì)象 (newImage)。//向 choiceImage 添加由參數(shù) defaultImage 指定的菜單選項(xiàng)對(duì)象 (gradeMenu)。//向 bar 菜單條添加由參數(shù) choiceImage 指定的菜單選項(xiàng)對(duì)象 setJMenuBar(bar)。同時(shí),又有高級(jí)和級(jí)低的游戲選擇,因此我們需要通過(guò)一個(gè)程序來(lái)實(shí)現(xiàn)魔板的生成以及對(duì)象的實(shí)現(xiàn)。 isDigitPlay=true。//創(chuàng)建方格的數(shù)字對(duì)象 for(int k=0。k++){ (k+1)。 (object)。 //隨機(jī)排列數(shù)字 int k=0。im。jn。 k++。jn1。 k++。 } 魔板中每一個(gè)小塊的形成 以及圖片分割之后的對(duì)象的實(shí)現(xiàn): 效果如圖: 主要代碼顯示: public void setObject(Object object){//定義 setObject 類 =object。 setText(+())。 } } public Object getObject(){//創(chuàng)建該類 return object。實(shí)現(xiàn)的結(jié)果可以給 游戲者一個(gè)提示。//開始時(shí)間觸發(fā) Block block = null。//調(diào)用 block 類 ...... for (int i = 0。 i++) {//用 for 循環(huán)來(lái)實(shí)現(xiàn)魔板游戲的進(jìn)行 for (int j = 0。 j++) if (point[i][j].equals(startPoint)) { startI = i。 break。 i 。 j point[0].length。 endJ = j。 break。amp。//判斷在行上是否滿足了條件 boolean moveCondition2 = (endJ startJ) == 1 amp。 endI == startI。 主要代碼: public void mouseReleased(MouseEvent
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1