亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于JAVA的拼圖游戲開(kāi)發(fā)

        2021-07-25 11:00:37管敏
        科技尚品 2021年3期

        管敏

        摘 要:文章基于JAVA的拼圖游戲開(kāi)發(fā)進(jìn)行設(shè)計(jì),主要運(yùn)用JAVA中繪制圖形界面的Swing包進(jìn)行拼圖游戲界面設(shè)計(jì),通過(guò)設(shè)計(jì)圖片移動(dòng)算法實(shí)現(xiàn)拼圖游戲主體功能滑塊移動(dòng)的實(shí)現(xiàn)以獲得圖片按鈕移動(dòng)功能。在進(jìn)行菜單功能設(shè)計(jì)時(shí),使用了監(jiān)聽(tīng)方法使得菜單按鈕能夠正常使用,并使用lang包中的異常處理類(lèi)以及線(xiàn)程類(lèi)進(jìn)一步優(yōu)化拼圖游戲界面,最后提出了一些界面算法優(yōu)化的問(wèn)題。

        關(guān)鍵詞:Swing包;拼圖游戲;圖片移動(dòng)算法;lang包

        中圖分類(lèi)號(hào):TP312 文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1674-1064(2021)03-044-02

        DOI:10.12310/j.issn.1674-1064.2021.03.020

        拼圖游戲的趣味源遠(yuǎn)流長(zhǎng)[1]。拼圖游戲深受大眾喜愛(ài),不僅有趣休閑,還能鍛煉人的思維能力。隨著計(jì)算機(jī)、手機(jī)的普及,人們已不再滿(mǎn)足于線(xiàn)下拼圖游戲。從玩家角度來(lái)看,線(xiàn)上拼圖游戲不僅操作方便,而且可以通過(guò)提升游戲難度激起讀者的挑戰(zhàn)心。拼圖游戲?qū)和某砷L(zhǎng)十分有利,在娛樂(lè)游戲盛行的游戲市場(chǎng),拼圖等益智類(lèi)小游戲似乎更適合兒童使用。從編程初學(xué)者來(lái)說(shuō),課堂上以做拼圖游戲項(xiàng)目為中心進(jìn)行有關(guān)JAVA的學(xué)習(xí),更加吸引人,有利于提高學(xué)生的學(xué)習(xí)興趣[2],進(jìn)而對(duì)JAVA進(jìn)行深入研究[3]。

        1 JAVA Swing簡(jiǎn)介

        其是用來(lái)設(shè)計(jì)界面的工具包,是對(duì)AWT包的擴(kuò)展,組件以J開(kāi)頭,并且Swing界面在不同平臺(tái)上的外觀(guān)完全一樣,真正做到了平臺(tái)獨(dú)立,可以用來(lái)對(duì)拼圖游戲的圖形用戶(hù)界面進(jìn)行設(shè)計(jì)[4-5]。

        2 拼圖游戲的設(shè)計(jì)過(guò)程及功能驗(yàn)證

        2.1 拼圖游戲設(shè)計(jì)流程

        首先,采用從整體到局部的面向?qū)ο笤O(shè)計(jì)方法,以拼圖游戲軟件功能為核心,對(duì)拼圖游戲軟件進(jìn)行分析、設(shè)計(jì)、實(shí)現(xiàn)。

        其中,搭建游戲界面使用的是容器知識(shí)點(diǎn),容器使用頂級(jí)容器和中層容器進(jìn)行搭建。其次,使用布局進(jìn)行界面劃分,拼圖需要把圖分成等分的幾部分。要使得拼圖游戲能夠進(jìn)行,就必須使各個(gè)部分的圖片發(fā)生交換,這時(shí)需要設(shè)計(jì)圖片交換算法。

        最后,對(duì)功能部分進(jìn)行設(shè)置。首先設(shè)置的就是菜單欄,以及菜單欄中的菜單項(xiàng),包括菜單、菜單中的開(kāi)始、結(jié)束、查看背景圖片以及選擇等五個(gè)按鈕鍵。而在程序設(shè)計(jì)時(shí),分四個(gè)部分寫(xiě)程序,分別為圖片切割程序、頂級(jí)容器界面、中級(jí)容器界面、按鈕界面。然后就是計(jì)算時(shí)間以及步數(shù)。計(jì)算時(shí)間以及步數(shù)需要用到線(xiàn)程知識(shí),注意一下小細(xì)節(jié),就是需要設(shè)置更換圖片以及進(jìn)行等級(jí)后清零的設(shè)置,拼圖游戲設(shè)計(jì)流程如圖1所示。

        2.2 拼圖游戲界面設(shè)計(jì)

        首先進(jìn)行整體面板布局。直接使用Jframe類(lèi)下的setTitle()、setDefaultCloseOpearation()、setLocationRelativeTo()、setSize()、setResizable()方法分別設(shè)置窗口的標(biāo)題、關(guān)閉圖標(biāo)、在屏幕的位置、窗口大小以及是否由用戶(hù)更改窗口的大小。然后創(chuàng)建中間容器,添加到頂層容器內(nèi),再創(chuàng)建基本組件,添加到中間容器內(nèi)。整體界面搭建好后,對(duì)游戲界面進(jìn)行布局,此次拼圖游戲采用網(wǎng)格布局GridBayLayout,即將中間容器設(shè)置為表格布局,然后設(shè)置按鈕的圖片背景,最后添加按鈕組件至中間容器。

        其次,進(jìn)行圖片切割算法設(shè)計(jì)。使用圖片切割方法cutImage,先創(chuàng)建相應(yīng)的圖片文件夾,放置原始圖片至文件夾,然后調(diào)用方法,生成切割文件至相應(yīng)目錄。

        在進(jìn)行圖片移動(dòng)算法設(shè)計(jì)前,先用random隨機(jī)生成器隨機(jī)打亂圖片的順序。先創(chuàng)建放置圖片順序的隨機(jī)數(shù)組,根據(jù)隨機(jī)數(shù)組生成圖片位置,創(chuàng)建按鈕組件,并為按鈕設(shè)置圖表,添加按鈕組件至中間容器Jpanel。實(shí)現(xiàn)按鈕組件的移動(dòng),根據(jù)拼圖游戲的規(guī)則,就是點(diǎn)擊空白按鈕相鄰的圖片按鈕,使得空白按鈕和圖片按鈕發(fā)生交換。移動(dòng)算法設(shè)計(jì)的步驟:

        按鈕對(duì)象設(shè)計(jì)繼承于JButton,使得其具有橫縱坐標(biāo)屬性,主要用于判斷空白按鈕的周邊按鈕是否為鄰近按鈕;

        獲得空白按鈕的橫縱坐標(biāo);

        獲得點(diǎn)擊按鈕的橫縱坐標(biāo);

        判斷點(diǎn)擊按鈕是否與空白按鈕相鄰[6]。

        下一步進(jìn)行菜單組件的繪制。首先創(chuàng)建菜單JMenu、菜單欄JMenubar以及菜單項(xiàng)JMenuItem,然后進(jìn)行菜單各功能的設(shè)計(jì)。為了實(shí)現(xiàn)功能,對(duì)菜單和菜單項(xiàng)添加監(jiān)聽(tīng)。

        最后一步在設(shè)置時(shí)間和步數(shù)的顯示前,先對(duì)菜單欄的開(kāi)始和結(jié)束按鈕功能進(jìn)行設(shè)計(jì)。開(kāi)始按鈕可獲得設(shè)置的圖片及難度級(jí)別,進(jìn)行圖片切割,然后為按鈕設(shè)置監(jiān)聽(tīng)。而結(jié)束按鈕則是當(dāng)所有按鈕的坐標(biāo)位置和隨機(jī)數(shù)組的位置相符時(shí),則拼圖成功,游戲結(jié)束。時(shí)間和步數(shù)就是設(shè)置兩個(gè)菜單項(xiàng),然后對(duì)其進(jìn)行線(xiàn)程設(shè)置,能夠使其在開(kāi)始游戲時(shí)進(jìn)行執(zhí)行。而在開(kāi)始后,能夠重置時(shí)間與步數(shù)[7]。

        2.3 拼圖游戲功能實(shí)現(xiàn)及驗(yàn)證

        在進(jìn)行拼圖游戲的過(guò)程中,程序運(yùn)行結(jié)果框中出現(xiàn)了圖片的原始順序,但是在移動(dòng)滑塊的時(shí)候,并沒(méi)有根據(jù)算法的基本思路運(yùn)行,而是未完成拼圖就顯示了“拼圖完成”的消息框。原算法的思路如下:隨機(jī)打亂圖片順序,然后移動(dòng)圖片滑塊,當(dāng)圖片滑塊的順序與按鈕的順序相同時(shí),即按鈕的順序是0~9,而圖片滑塊的順序是亂序。當(dāng)亂序變成順序,與按鈕順序一一對(duì)應(yīng)時(shí),則表示拼圖完成,如圖2所示。

        在進(jìn)行拼圖游戲的過(guò)程中,時(shí)間與步數(shù)正常顯示。

        選擇另一個(gè)能夠正常進(jìn)行拼圖游戲的代碼進(jìn)行算法思路比較。

        對(duì)比結(jié)果顯示:數(shù)組維度的區(qū)別。

        點(diǎn)擊“菜單”下的“背景”,則背景圖片正常顯示。

        點(diǎn)擊“選擇”,然后點(diǎn)擊“圖片更換”,最后點(diǎn)擊“開(kāi)始”,則此功能正常使用、無(wú)異常,并且時(shí)間與步數(shù)會(huì)清零。

        點(diǎn)擊“選擇”,然后進(jìn)行“等級(jí)”切換,點(diǎn)擊“開(kāi)始”,切換正常,并且時(shí)間與步數(shù)正常清零。

        3 結(jié)語(yǔ)

        目前,對(duì)于拼圖游戲的開(kāi)發(fā)并不局限于JAVA,還包括各類(lèi)語(yǔ)言如C#、matlab等,不過(guò)主要以JAVA為主。但是,JAVA在開(kāi)發(fā)拼圖游戲時(shí)還存在一些算法優(yōu)化問(wèn)題:判斷游戲是否結(jié)束的算法,以及圖片問(wèn)題:圖片大小根據(jù)窗口大小進(jìn)行縮放。

        在開(kāi)發(fā)JAVA的過(guò)程中,出現(xiàn)了必須要將窗口大小設(shè)置成圖片大小的情況,當(dāng)插入的圖片大小不同時(shí),怎么控制圖片大小根據(jù)窗口大小進(jìn)行調(diào)整呢?再者,判斷拼圖游戲完成的算法在思路上并未有什么問(wèn)題,但是在實(shí)施的情況下,卻出現(xiàn)了圖片還未拼成原圖就顯示“拼圖完成”的信息提示框。

        根據(jù)第二個(gè)問(wèn)題,對(duì)比了一個(gè)拼圖游戲開(kāi)發(fā)的代碼,發(fā)現(xiàn)兩者的區(qū)別在于數(shù)組維度的區(qū)別,兩者都是通過(guò)位置對(duì)比的算法進(jìn)行判斷拼圖是否完成。而通過(guò)二維數(shù)組進(jìn)行位置對(duì)比時(shí),游戲能夠正常識(shí)別出拼圖是否完成。而一維數(shù)組卻不能識(shí)別,甚至出現(xiàn)任意位置都可顯示拼圖完成。

        由于開(kāi)發(fā)游戲時(shí)使用的是JAVA語(yǔ)言,所以這個(gè)拼圖軟件可以在很多平臺(tái)上運(yùn)行,比如PC端以及安卓系統(tǒng)等,在各個(gè)系統(tǒng)上都可兼容。

        參考文獻(xiàn)

        [1] 宋愛(ài)新,桂鵬飛.基于MFC的數(shù)字拼圖游戲設(shè)計(jì)與實(shí)現(xiàn)[J].智慧密集,2015(18):35-38.

        [2] 劉立云,趙慧勤.基于自主探究理念的拼圖教育游戲的設(shè)計(jì)開(kāi)發(fā)[J].數(shù)字社區(qū),2017(20):70-71.

        [3] 余戰(zhàn)秋.基于A(yíng)pp Inventor的九宮格拼圖游戲設(shè)計(jì)與實(shí)現(xiàn)[J].智慧密集,2017(18):34-36.

        [4] 茍雨晴,蘭全祥.基于Java的拼圖游戲設(shè)計(jì)與實(shí)現(xiàn)[J].電腦知識(shí)與技術(shù),2019,2(15):45-47.

        [5] 秦鵬珍.基于Java的拼圖游戲?qū)崿F(xiàn)[J].電子技術(shù)與軟件工程,2019(13),237-238.

        [6] 張國(guó)榮.拼圖游戲APP的設(shè)計(jì)與實(shí)現(xiàn)[J].電腦知識(shí)與技術(shù),2019,3(15):1009-3044.

        [7] 劉丹.基于A(yíng)ndroid的拼圖游戲設(shè)計(jì)與實(shí)現(xiàn)[J].湖北理工學(xué)院學(xué)報(bào),2019,6(35):2095-4565.

        亚洲av毛片一区二区久久| 三上悠亚av影院在线看| 国产污污视频| 日韩av免费在线不卡一区| 国产自拍偷拍视频免费在线观看| 青青草国产精品一区二区| 十八岁以下禁止观看黄下载链接| 中文字幕有码在线视频| 美女视频黄a视频全免费网站色| 亚洲爆乳精品无码一区二区三区| 欧美性猛交内射兽交老熟妇| 中文乱码字幕高清在线观看| 麻豆精品国产免费av影片| 日本精品久久久久中文字幕| 久久久久久久久久久国产| 丰满人妻无套中出中文字幕| 人妻少妇被猛烈进入中文| 日本一卡二卡3卡四卡免费观影2022| 亚洲精品综合一区二区三| 999久久久免费精品国产牛牛| 免费看片的网站国产亚洲| 人人妻人人澡人人爽国产一区| 亚洲av无码电影网| 国产呦系列呦交| 国产精品成人av大片| 亚洲色成人www永久在线观看| 毛片免费在线观看网址| 日韩女同一区在线观看| 亚洲av无码国产精品色午夜软件 | 亚洲人成网7777777国产| yw193.can尤物国产在线网页| 免费一区二区在线观看视频在线| 99久久婷婷国产综合精品青草免费 | 亚洲色欲色欲www在线播放| 亚洲国产成人无码电影| 亚洲乱码一区二区av高潮偷拍的| 中文字幕人妻中文| 亚洲国产午夜精品乱码| 久久精品国产亚洲av热东京热| 五月av综合av国产av| 黑人巨大videos极度另类|