999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

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

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

管敏

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

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

中圖分類號:TP312 文獻標(biāo)識碼:A文章編號:1674-1064(2021)03-044-02

DOI:10.12310/j.issn.1674-1064.2021.03.020

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

1 JAVA Swing簡介

其是用來設(shè)計界面的工具包,是對AWT包的擴展,組件以J開頭,并且Swing界面在不同平臺上的外觀完全一樣,真正做到了平臺獨立,可以用來對拼圖游戲的圖形用戶界面進行設(shè)計[4-5]。

2 拼圖游戲的設(shè)計過程及功能驗證

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

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

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

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

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

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

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

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

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

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

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

判斷點擊按鈕是否與空白按鈕相鄰[6]。

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

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

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

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

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

選擇另一個能夠正常進行拼圖游戲的代碼進行算法思路比較。

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

點擊“菜單”下的“背景”,則背景圖片正常顯示。

點擊“選擇”,然后點擊“圖片更換”,最后點擊“開始”,則此功能正常使用、無異常,并且時間與步數(shù)會清零。

點擊“選擇”,然后進行“等級”切換,點擊“開始”,切換正常,并且時間與步數(shù)正常清零。

3 結(jié)語

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

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

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

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

參考文獻

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

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

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

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

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

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

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

主站蜘蛛池模板: 久久亚洲国产一区二区| 国产精品久久久久鬼色| 色妞www精品视频一级下载| 久久国产乱子伦视频无卡顿| 色婷婷久久| 一级香蕉视频在线观看| 亚洲精品va| 奇米影视狠狠精品7777| 国产人碰人摸人爱免费视频 | 国产高清在线观看91精品| 亚洲国产成人精品无码区性色| 人妻丝袜无码视频| 97视频免费在线观看| 免费高清a毛片| 欧美日韩成人在线观看| 狠狠五月天中文字幕| 国产精品私拍99pans大尺度| 国产精品手机在线观看你懂的| 亚洲欧美另类日本| 男人的天堂久久精品激情| 日韩区欧美区| 久久精品国产精品国产一区| 婷婷丁香在线观看| 亚洲AV无码乱码在线观看代蜜桃| 5555国产在线观看| 国产chinese男男gay视频网| 国产区在线观看视频| 性色在线视频精品| 免费又黄又爽又猛大片午夜| 国产亚洲精品yxsp| 青草精品视频| 国国产a国产片免费麻豆| 国产一区二区三区免费观看| 亚洲黄色成人| 亚洲精品日产精品乱码不卡| 亚洲视屏在线观看| 日本伊人色综合网| 国产又色又爽又黄| 日本免费精品| 国产一区二区精品福利| 国内精品久久久久久久久久影视 | 亚洲欧美日韩中文字幕一区二区三区 | 无码一区中文字幕| 日韩精品毛片| 毛片免费视频| 亚洲欧美成aⅴ人在线观看| 亚洲男人的天堂视频| 国产精品视频导航| 欧洲在线免费视频| 天堂网亚洲系列亚洲系列| 日韩精品成人网页视频在线 | 国产欧美在线视频免费| 欧美乱妇高清无乱码免费| 国产国语一级毛片| 久热精品免费| 精品小视频在线观看| 国产精品永久不卡免费视频 | 99这里只有精品6| 久久99国产乱子伦精品免| 99久久国产综合精品2020| 国产成人一二三| 免费在线一区| 国产精品理论片| 欧美成人免费午夜全| 亚洲无码一区在线观看| 女人18一级毛片免费观看| 无码精品福利一区二区三区| 999精品视频在线| 日韩无码视频专区| 日韩在线第三页| 亚洲国内精品自在自线官| 永久毛片在线播| 在线看片中文字幕| 欧美在线精品一区二区三区| 激情综合婷婷丁香五月尤物| 日韩免费毛片视频| 国产综合亚洲欧洲区精品无码| 婷婷激情亚洲| 综合亚洲色图| 青草娱乐极品免费视频| 伊人精品成人久久综合| 在线国产91|