




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
基于Java的拼圖游戲 2摘要 21緒論 41.1課題背景 41.2目的和意義 51.3可行性分析 62技術(shù)及工具介紹 62.1Eclipse 62.2awt 72.2swing 72.3SWT 83需求分析 83.1面向?qū)ο蠓椒ń榻B 83.2功能需求 103.3用戶界面需求 104程序設(shè)計(jì) 114.1總體設(shè)計(jì)方案 114.2系統(tǒng)流程圖設(shè)計(jì) 124.3詳細(xì)設(shè)計(jì) 135程序?qū)崿F(xiàn) 185.1游戲主界面設(shè)計(jì)與實(shí)現(xiàn) 185.2游戲游戲菜單設(shè)計(jì)與實(shí)現(xiàn) 195.3選擇菜單設(shè)計(jì)與實(shí)現(xiàn) 215.4幫助菜單的設(shè)計(jì)與實(shí)現(xiàn) 246軟件測(cè)試 266.1測(cè)試的目的及相關(guān)問題 266.2測(cè)試方法 266.3測(cè)試用例 276.4測(cè)試分析和總結(jié) 30結(jié)論 31參考文獻(xiàn) 32致謝 33英文原文 34中文翻譯 49摘要拼圖游戲是一種可變性很高且游戲性很強(qiáng)的游戲,在平時(shí)空閑的時(shí)候可以自己制定圖片享受智力拼圖游戲的樂趣,空閑之余不妨放松一下。拼圖是一種不分年齡不分性別都能玩的游戲,它不僅可以開發(fā)智力且?guī)椭蠹姨岣邉?dòng)腦解決問題的能力,而且可以娛樂身心,放松情緒。玩拼圖還有助于手眼協(xié)調(diào),玩家能鍛煉整體和部分的協(xié)調(diào)關(guān)系,發(fā)現(xiàn)其中的樂趣。本課題主要是用EclipseSwing對(duì)一小型程序進(jìn)行開發(fā)研究。選擇一個(gè)進(jìn)行游戲的圖片,單擊圖片碎塊可以進(jìn)行移動(dòng),然后恢復(fù)圖片原來形狀,本游戲主要考察玩家的反應(yīng)能力和應(yīng)變能力,在游戲之余提高觀察能力。本游戲中通過分析JAVA游戲的開發(fā)流程,對(duì)功能進(jìn)行設(shè)計(jì)。該游戲主要實(shí)現(xiàn)了開始游戲,更改圖片,游戲難度選擇,記錄統(tǒng)計(jì),背景音樂等功能。游戲界面美觀,操作簡單,功能齊全,是廣大游戲愛好者都喜歡的一款游戲,具有一定的游戲性和娛樂性。關(guān)鍵字:拼圖;游戲;JAVA;娛樂。AbstractAjigsawpuzzle
isa
variability
isveryhighand
stronggame
inthe
game,
inthesparetime
todeveloptheirown
pictures
toenjoythe
intellectualpuzzle
gamefun,leisure
to
relax.Thepuzzle
isagame
regardlessofage
regardlessofsex
canplay,
itnotonlycan
developintelligence
and
abilityto
helpyouimprove
thebrain
tosolveproblems,
butalsocan
entertain,
relaxmood.
Puzzles
help
handeyecoordination,
gameplayer
canexercisethe
wholepart
relationship,
findfun.Themaintaskis
todevelop
a
small
programusingEclipse
Swing.
Selecta
gamepicture,
clickthepicture
pieces
canmove,
andthenrestorethe
originalshape
ofthegame
picture,
mainlyinspectsthe
gameplayer's
reaction
abilityandthestraincapacity,
inthegame
more
toimprovetheabilitytoobserve.AnalysisofJAVA
gamedevelopment
process
throughthe
game,
carriesonthedesigntothe
function.
The
gameismainly
realized
tostartthegame,
changethepicture,
thedifficultyofthegame
selection,
statisticalrecords,
backgroundmusicandotherfunctions.
Games
beautifulinterface,
simpleoperation,
completefunctions,
is
thevastnumberofgameenthusiasts
are
like
agame,
withsomegames
andentertainment.Keywords:Jigsawpuzzle;Game;Java;Entertainment。1緒論1.1課題背景Java語言是當(dāng)下最普及,最流行的程序設(shè)計(jì)語言之一,它依靠其跨平臺(tái)性,大大地促進(jìn)了軟件產(chǎn)業(yè)和互聯(lián)網(wǎng)的發(fā)展。成為了優(yōu)秀的面向?qū)ο缶幊陶Z言,已成為軟件開發(fā)領(lǐng)域中的主流技術(shù)。不論是日常生活中的個(gè)人PC機(jī)和移動(dòng)電話,還是游戲控制臺(tái),科學(xué)計(jì)算器都廣泛應(yīng)用java開發(fā)技術(shù)。在大數(shù)據(jù)時(shí)代來臨,云計(jì)算普及,移動(dòng)互聯(lián)迅猛發(fā)展的新時(shí)代,java憑借其通用性,跨平臺(tái)性以及安全性,更具備顯著的優(yōu)勢(shì)和發(fā)展前景。作為新一代的大學(xué)生,現(xiàn)在科學(xué)技術(shù)不斷的發(fā)展,每一分,每一秒中都在改變?nèi)藗兊纳?,而且這種改變正在不斷的擴(kuò)大,不斷的深入,我們學(xué)習(xí)最新最先進(jìn)的技術(shù),站在時(shí)代的前沿,即使不創(chuàng)造新的時(shí)代,也不能被新時(shí)代淘汰,因此掌握時(shí)代動(dòng)態(tài),適應(yīng)社會(huì)發(fā)展,應(yīng)該能夠獨(dú)立完成各種任務(wù),成為一名合格的新時(shí)代的人才。Java編程語言的編寫風(fēng)格與C和C++語言接近,易于學(xué)習(xí),java語言不使用指針,并有自動(dòng)的垃圾回收站,可以很好地管理內(nèi)存。Java可以方便的與網(wǎng)絡(luò)對(duì)接,應(yīng)用javanet網(wǎng)絡(luò)接口,java的強(qiáng)制機(jī)制和異常處理機(jī)制,使java有很強(qiáng)的健壯性,并且java有很好的安全檢查機(jī)制,在應(yīng)用于網(wǎng)絡(luò)時(shí)安全是最重要的。Java使用接口實(shí)現(xiàn)多繼承,使用接口的優(yōu)勢(shì)在于程序的可維護(hù)性大大的提高,封裝保證了各個(gè)類之間互不影響,繼承縮短了程序的開發(fā)周期和可維護(hù)性。Java的主要應(yīng)用領(lǐng)域是:桌面應(yīng)用系統(tǒng)開發(fā),嵌入式系統(tǒng)開發(fā),電子商務(wù),企業(yè)級(jí)應(yīng)用開發(fā),交互式系統(tǒng)開發(fā),多媒體系統(tǒng)開發(fā),分布式系統(tǒng)開發(fā),Web應(yīng)用系統(tǒng)開發(fā)。Java無處不在,它已經(jīng)擁有幾百萬個(gè)用戶,其發(fā)展速度要快于在它之前的任何一種計(jì)算機(jī)語言。Java能夠給企業(yè)和最終用戶帶來數(shù)不盡的好處。Oracle公司董事長和首席執(zhí)行官LarruEllison說過:“java正在進(jìn)入企業(yè),家庭和學(xué)校。它正在像Internet本身一樣成為普遍存在的技術(shù)?!?.2目的和意義基于java的各類軟件,因?yàn)閖ava語言的特性因此在各種應(yīng)用中大受歡迎,特別是在手機(jī)電腦移動(dòng)設(shè)備上的游戲產(chǎn)業(yè)迅速發(fā)展。因此,基于java開發(fā)的游戲設(shè)計(jì)是java語言應(yīng)用的很重要的一方面。簡單,快捷的游戲有助于人們緩解壓力,而且不用耗費(fèi)精力,是上班族,學(xué)生,中老年人群休閑娛樂的首選。有市場(chǎng)的軟件更受歡迎。現(xiàn)在很多最新技術(shù)領(lǐng)域都在使用java開發(fā),java語言正在成為時(shí)代的主流,java是面向?qū)ο缶幊陶Z言,并涉及和很多其他語言的連接,網(wǎng)絡(luò)時(shí)代的今天網(wǎng)絡(luò)編程在各個(gè)領(lǐng)域應(yīng)用廣泛,java必然是未來的主題。該課題的主要目的是使Java游戲開發(fā)者深入理解所學(xué)的Java語言,并實(shí)踐于該游戲設(shè)計(jì)中,深刻體會(huì)以前所學(xué)的有關(guān)Java程序設(shè)計(jì)方面的語言基礎(chǔ)、類和對(duì)象,異常處理,事件處理,應(yīng)用程序以及圖形用,戶界面設(shè)計(jì)等方面的知識(shí),加深對(duì)結(jié)構(gòu)化設(shè)計(jì)思想的理解,能對(duì)系統(tǒng)功能進(jìn)行分析,并設(shè)計(jì)合理的模塊化結(jié)構(gòu)等。學(xué)會(huì)使用Java系統(tǒng),其中包括對(duì)程序的調(diào)試、運(yùn)行、保存等知識(shí)的運(yùn)用,還包括提高程序開發(fā)功能,能運(yùn)用合理的方法簡化Java程序的操作,開發(fā)過程中應(yīng)培養(yǎng)分析問題、解決問題的能力。
基于Java組件技術(shù)的拼圖游戲軟件是一款具有娛樂性、益智性、便捷性的游戲軟件。此軟件可以使用戶放松心情,享受于拼圖游戲的樂趣之中。該游戲軟件可以讓用戶選擇適合自己的主題與難度,根據(jù)用戶的不同水平,鍛煉其圖片記憶能力以及拼湊還原能力。游戲結(jié)束后亦可讓用戶清晰了解到自己的游戲狀態(tài)水平,便于調(diào)整自己對(duì)這款游戲的新的難度要求。另外要求軟件設(shè)計(jì)精致,畫面親和,人機(jī)交互高效快捷,能夠給用戶帶來人性化的服務(wù)。軟件面向的主流群體集中在年輕人,但也適宜兒童或者老人使用,提供了適宜各類用戶群體的圖片風(fēng)格與難度設(shè)置。不論是旨在輕松娛樂,還是益智教育的目的,該軟件都是一款家庭生活中以及學(xué)習(xí)生活的必備軟件。
設(shè)計(jì)并實(shí)現(xiàn)基于Java組件技術(shù)的拼圖游戲軟件作為自己的畢業(yè)課題設(shè)計(jì)
是對(duì)學(xué)?;A(chǔ)課程、專業(yè)課程以及實(shí)踐課程的一次綜合性考查。此外,JavaSwing組件在單機(jī)游戲平臺(tái)上的應(yīng)用一直處于熱門,這次的系統(tǒng)全面的實(shí)踐可以說是一次很好的鍛煉,會(huì)對(duì)以后工作生活帶來積極的影響。1.3可行性分析 系統(tǒng)可行性: 程序是基于java的單機(jī)程序,不區(qū)分系統(tǒng),對(duì)電腦配置沒有要求?;趈ava的程序不依賴系統(tǒng)可移植性高。開發(fā)的程序占用內(nèi)存很小,非常適合各種手機(jī)系統(tǒng)。開發(fā)的工具是Eclipse在各個(gè)平臺(tái)都可以安裝使用,并且沒有很大的系統(tǒng),內(nèi)存等限制。技術(shù)可行性:該程序主要是運(yùn)用java的Swing組件,技術(shù)要求不高,編程功底要求不嚴(yán)。Swing是“輕量級(jí)組件”,全部是由java語言編譯的,方便使用和讀寫,不依賴于操作系統(tǒng)的語言,可以在任何平臺(tái)上運(yùn)行。沒有數(shù)據(jù)庫等復(fù)雜的操作。只是java的類的繼承重寫,技術(shù)可行性很高。使用的是Eclipse開發(fā)工具,使用較其他工具相對(duì)簡單易用。市場(chǎng)可行性:該游戲適合大眾群體,不論是對(duì)電腦了解的工作一族,還是沒有電腦操作經(jīng)驗(yàn)的新手,都很容易上手,緩解壓力,娛樂身心。雖然市面上的游戲軟件繁多,但是無論是適合群體,上手難易度,游戲歷史,拼圖游戲都有很大的優(yōu)勢(shì)。如果程序得以推廣,會(huì)收到很好地效果。2技術(shù)及工具介紹2.1EclipseEclipse是當(dāng)下最流行最著名的跨平臺(tái)開元繼承開發(fā)環(huán)境(IDE)。最初主要用來開發(fā)java語言,而經(jīng)過很多版本的發(fā)展,很多人通過插件使其作為c++.Python.PHP等其他語言的開發(fā)工具。Eclipse的本身只是一個(gè)框架平臺(tái),但是總舵插件的支持,使得Eclipse擁有較家的靈活性。許多開發(fā)商以Eclipse為框架開發(fā)自己的IDE。Eclipse采用的技術(shù)是IBM公司開發(fā)的(SWT),這是一種基于java的窗口組件,類似java本身提供的AWT和Swing窗口組件;不過SWT比其他java窗口組件更有效率。Eclipse的用戶界面還是用了GUI中間層JFace,從而簡化了基于SWT的應(yīng)用程序構(gòu)建。Eclipse的插件機(jī)制是輕型軟件組件化構(gòu)架。在富客戶機(jī)平臺(tái)上,Eclipse使用插件來提供所有的附加功能,例如支持java意外的其他語言?,F(xiàn)在的版本已經(jīng)可以支持c/c++(CDT).PHP.Perl.Ruby.Python.telnet和數(shù)據(jù)庫開發(fā)。差價(jià)架構(gòu)總夠支持各種擴(kuò)展添加到現(xiàn)有環(huán)境中,如配置管理,不僅僅是各編程語言。Eclipse是有IBM公司投資4000萬美元開發(fā)的集成開發(fā)工具。它基于Java語言編寫,并且是開放源代碼的,可擴(kuò)展的,也是目前最流行的Java集成開發(fā)工具之一。另外,IBM公司捐出Eclipse源代碼,組建了Eclipse聯(lián)盟,由該聯(lián)盟負(fù)責(zé)這種工具的后續(xù)開發(fā)。Eclipse為編程人員提供了一流的java程序環(huán)境,它的平臺(tái)體系結(jié)構(gòu)是在插件概念的基礎(chǔ)上建立起來的,插件是Eclipse平臺(tái)最具特色的特征之一,也是其區(qū)別于其他開發(fā)軟件開發(fā)工具的特征之一。 2.2awtAWT是抽象窗口工具包,是java最早的設(shè)置圖形用戶界面的工具。Awt包中包含了很多圖形用戶界面的類,在awt中這些類常常被叫做組件。AWT提供了javaApplet和javaApplication中可用的用戶圖形界面GUI中的基本組件(components)。由于java是獨(dú)立平臺(tái)的面向?qū)ο蟮某绦蛟O(shè)計(jì)語言,無奈GUI必須依賴特定的平臺(tái),因此在AWT創(chuàng)建初期一度受到各界的懷疑,因?yàn)樗`背了java“一次編譯,到處運(yùn)行”的原則,甚至有人質(zhì)疑java是“一次編譯,到處測(cè)試”因?yàn)槌33霈F(xiàn)在windos平臺(tái)編譯的程序在其他平臺(tái)出錯(cuò)。經(jīng)過很多版本的進(jìn)步,AWT在設(shè)計(jì)上有了很大的進(jìn)步,克服了很多的缺點(diǎn)。在第二版的java開發(fā)包中,AWT的器件很大程度上被Swing工具包代替。Swing通過自己回執(zhí)幾千兒避免了AWT的各種弊端。得到了很大的支持。2.2swingSwing是一個(gè)味Java設(shè)計(jì)的工具包。它是java語言的基礎(chǔ)類。包括了文本框,按鈕,表格等圖形用戶界面(GUI)器件。Swing提供相比較AWT更好的屏幕顯示元素,更重要的是他們本身全部由java語言編譯而成,可以跨平臺(tái)運(yùn)行。輕量級(jí)原件的缺點(diǎn)是執(zhí)行速度較慢,有點(diǎn)事可以在幾乎所有平臺(tái)上采用統(tǒng)一的行為。Swing是一個(gè)基于java的跨平臺(tái)mvc框架。使用單線程模式。此框架還在代碼結(jié)構(gòu)渲染層之間插入抽象層。Swing的可擴(kuò)展性表現(xiàn)在Swing使用了高度模塊化的構(gòu)架,可以通過接口的方式擴(kuò)展Swing也可以通過繼承重寫機(jī)制達(dá)到自己想要的效果。Swing的可定制性表現(xiàn)在Swing提供了可編程渲染模式,使用戶可以對(duì)渲染細(xì)節(jié)控制。除了一般的通用元素組合,如邊框,高度等。還有用戶通過編程制定典型的通用組件,而且可以制作出特殊的GUI空間,非常具有開放性。Swing的可配置性表現(xiàn)在用戶可以在使用應(yīng)用程序時(shí),隨自己的愛好改變所示界面的狀態(tài),可見即所得,不需要改變代碼。Java的早期版本,抽象視圖工具包為用戶界面組件提供了平臺(tái)獨(dú)立的API。在AWT中,每個(gè)組件都有一個(gè)原生的等同組件生成和控制,這個(gè)原生組件是有當(dāng)前的圖形視窗系統(tǒng)決定的。Swing組件經(jīng)常被描述為輕量級(jí)組件,它不需要系統(tǒng)本身的資源,與系統(tǒng)資源毫無關(guān)系。SwingAPI的大部分是AWT的補(bǔ)充和擴(kuò)展,沒有代替AWT。Swing用來回執(zhí)輕量級(jí)組件的核心渲染功能是有java2D提供的,這是AWT的一部分。Swing是為了解決AWT的很多缺點(diǎn)而發(fā)展產(chǎn)生的。2.3SWT標(biāo)準(zhǔn)器件工具包(SWT)是一個(gè)最初由IBM開發(fā)的工具包。SWT的實(shí)現(xiàn)同重量級(jí)的組件AWT有更多的共同之處。這樣同原生視圖工具包接近。SWT是一個(gè)開元的GUI編程框架,與AWT/Swing有相似的用處,應(yīng)用最廣的Eclipse就是由SWT開發(fā)的。Sun公司在這之前已經(jīng)開發(fā)了AWT,而SWT無論是性能和外觀上,都超越了自己的前輩AWT和Swing,隨著Eclipse的發(fā)展,SWT的優(yōu)勢(shì)越來越明顯,首先性能上的穩(wěn)定,SWT最大化的利用了操作系統(tǒng)的圖形構(gòu)建API,基于系統(tǒng)的提供的圖形構(gòu)件,SWT自己做一個(gè)模擬的實(shí)現(xiàn)。因此SWT的應(yīng)用幾乎同操作系統(tǒng)一樣穩(wěn)定。然后是SWTAPI包中的類.方法和結(jié)構(gòu)是很少改變的,從一個(gè)版本的SWT更新至另一個(gè)版本,只需要把SWT包替換就可以。3需求分析3.1面向?qū)ο蠓椒ń榻B3.1.1系統(tǒng)開發(fā)方法介紹目前比較成熟的系統(tǒng)開發(fā)方法有:生命周期法、原型法、面向?qū)ο蠓ǖ取I芷诜ǎ喊岩粋€(gè)信息系統(tǒng)從其提出、分析、設(shè)計(jì)和使用,直到停止使用的整個(gè)生存期視為一個(gè)生命周期。整個(gè)生命周期劃分為五個(gè)主要工作階段:可行性分析階段、系統(tǒng)分析階段、系統(tǒng)設(shè)計(jì)階段、系統(tǒng)實(shí)施階段和系統(tǒng)運(yùn)行、維護(hù)與評(píng)價(jià)階段。通常采用結(jié)構(gòu)化系統(tǒng)分析和系統(tǒng)設(shè)計(jì)方法,自上而下分析、
設(shè)計(jì),強(qiáng)調(diào)開發(fā)過程的整體性和全局性;開發(fā)過程在時(shí)間上基本按階段進(jìn)行,任務(wù)明確;結(jié)合用戶需求進(jìn)行開發(fā);開發(fā)周期長,維護(hù)不方便。適用于開發(fā)需求較明確固定的信息系統(tǒng)。原型法:是系統(tǒng)開發(fā)者在初步了解用戶需求的基礎(chǔ)上,開發(fā)出能實(shí)現(xiàn)系統(tǒng)最基本功能的一個(gè)原型,再根據(jù)用戶對(duì)原型使用與評(píng)價(jià)的意見,提出修改方案,修改完善原型,如此反復(fù)多次,直到得到用戶滿意的最終系統(tǒng)為止。開發(fā)過程以用戶為中心,開發(fā)周期短。適用于開發(fā)需求不夠明確或不斷變化的軟件。面向?qū)ο蠓ǎ阂灶?,類的繼承,聚集等概念描述客觀事物以及聯(lián)系。為系統(tǒng)的開發(fā)提供了全新的思路,面向?qū)ο蠓椒ㄒ詫?duì)象為中心。其特征主要有模塊性,繼承性和類比性,動(dòng)態(tài)連接性。3.1.2面向?qū)ο箝_發(fā)方法的開發(fā)過程面向?qū)ο箝_發(fā)方法的開發(fā)過程:1.系統(tǒng)調(diào)查和需求分析:對(duì)系統(tǒng)將要面臨的具體管理問題以及用戶對(duì)系統(tǒng)開發(fā)的需求進(jìn)行調(diào)查研究,即先弄清要干什么的問題;2.分析問題的性質(zhì)和求解問題:在繁雜的問題域中抽象地識(shí)別出對(duì)象以及其行為、結(jié)構(gòu)、屬性、方法等。一般稱之為面向?qū)ο蟮姆治?,即OOA;3.整理問題:對(duì)分析的結(jié)果作進(jìn)一步的抽象、歸類、整理,并最終以范式的形式將它們確定下來。一般稱之為面向?qū)ο蟮脑O(shè)計(jì),即OOD;4.程序?qū)崿F(xiàn):用面向?qū)ο蟮某绦蛟O(shè)計(jì)語言將上一步整理的范式直接映射(即直接用程序設(shè)計(jì)語言來取代)為應(yīng)用軟件。一般稱之為面向?qū)ο蟮某绦?,即OOP;5.識(shí)別客觀世界中的對(duì)象以及行為,分別獨(dú)立設(shè)計(jì)出各個(gè)對(duì)象的實(shí)體;分析對(duì)象之間的聯(lián)系和相互所傳遞的信息,由此構(gòu)成信息系統(tǒng)的模型;由信息系統(tǒng)模型轉(zhuǎn)換成軟件系統(tǒng)的模型,對(duì)各個(gè)對(duì)象進(jìn)行歸并和整理,并確定它們之間的聯(lián)系;由軟件系統(tǒng)模型轉(zhuǎn)換成目標(biāo)系統(tǒng)。3.1.3面向?qū)ο箝_發(fā)方法的應(yīng)用范圍面向?qū)ο箝_發(fā)方法的應(yīng)用范圍:在大型管理信息系統(tǒng)開發(fā)中,若不經(jīng)自頂向下的整體劃分,而是一開始就自底向上地采用OO方法開發(fā)系統(tǒng),會(huì)造成系統(tǒng)結(jié)構(gòu)不合理、各部分關(guān)系失調(diào)等等問題。OO方法和結(jié)構(gòu)化方法在系統(tǒng)開發(fā)中相互依存、不可替代。綜上所述,由于面向?qū)ο箝_發(fā)方法主要針對(duì)于各類管理系統(tǒng)的開發(fā),所以該畢業(yè)設(shè)計(jì)中采用面向?qū)ο蠓椒ㄅc原型法相結(jié)合的方法進(jìn)行系統(tǒng)開發(fā),主要也因?yàn)樵头ㄊ墙鼛啄臧l(fā)展起來的一種開發(fā)方法。該方法從一個(gè)初始信息要求的集合出發(fā),在發(fā)展中逐步完善信息系統(tǒng),更簡單、易學(xué),同時(shí)也更適合該系統(tǒng)的開發(fā)。3.1.4原型法開發(fā)步驟使用原型法開發(fā)大體有以下幾個(gè)步驟:1.確定系統(tǒng)需求;2.設(shè)計(jì)初始原型,包括確定需求以及開發(fā)工作模型,例如屏幕格式、功能菜單格式以及對(duì)關(guān)鍵數(shù)據(jù)和功能的說明等;3.對(duì)初始原型進(jìn)行需求迭代,不斷進(jìn)行修正或改進(jìn),直至得到一個(gè)用戶滿意的原型,從而終止原型迭代過程;4.原型效果考察,考察用戶新加入的需求信息和組成成分的嚴(yán)格說明信息,看其對(duì)原型效果的影響,是否影響到原型的有效性,如果導(dǎo)致原型失敗,應(yīng)加以修正和改進(jìn);原型法的生命周期提供了一種完整的、靈活的、近于動(dòng)態(tài)的需求定義技術(shù)。它綜合了所有提出的必要需求,建立原型就近似于預(yù)先需求的規(guī)格說明。對(duì)原型的工作模型可以進(jìn)行必要的剪裁和組織,以便更接近目標(biāo)系統(tǒng)。它可以綜合用戶、領(lǐng)導(dǎo)和原型開發(fā)人員的各方需求。3.2功能需求該游戲是一個(gè)窗口的應(yīng)用程序,需有簡單的按鈕和各種功能。操作簡單,易上手。符合大部分人玩游戲的常規(guī)習(xí)慣,必須具備常用的功能。各種功能應(yīng)該設(shè)置鍵盤快捷鍵,方便游戲者游戲。游戲開始,暫停,繼續(xù),游戲結(jié)束功能。保證游戲能在開始時(shí)將選擇的圖片,根據(jù)然后根據(jù)所選的難度將圖片進(jìn)行切割打亂。拼圖游戲的主要功能是將圖片切割,然后通過移動(dòng)將圖片還原,當(dāng)圖片恢復(fù)到原來的形狀時(shí),游戲結(jié)束。然后顯示游戲時(shí)間和步數(shù)。如果時(shí)間短步數(shù)少,則成為最高紀(jì)錄,輸入名字保存。游戲應(yīng)提供幫助功能在游戲使用和功能介紹方面提供幫助,而且在游戲者體驗(yàn)游戲過程中如果遇到困難,提供完整圖片,以幫助游戲者得到更好的游戲體驗(yàn)。游戲應(yīng)提供圖片選擇功能,為了滿足更多游戲愛好者的需求,不僅僅提供游戲中選擇圖片進(jìn)行游戲的功能,還應(yīng)當(dāng)提供圖片添加功能游戲體驗(yàn)者可以添加自己喜歡的圖片進(jìn)行游戲。游戲應(yīng)提供難度選擇功能,為滿足不同人群的游戲者,游戲體驗(yàn)者可以根據(jù)自己對(duì)游戲的了解,選擇不同難度的游戲。游戲應(yīng)提供背景音樂選擇功能,游戲者玩游戲的過程中可以邊玩游戲邊聽音樂,而且可以根據(jù)自己愛好選擇不同的音樂。同樣可以自己添加音樂。3.3用戶界面需求利用JavaSwing組件對(duì)該游戲軟件的界面進(jìn)行設(shè)計(jì)與實(shí)現(xiàn),實(shí)現(xiàn)程序GUI圖形界面,做到界面設(shè)計(jì)簡潔大方,時(shí)尚新穎,適合各類用戶群體使用。4程序設(shè)計(jì)4.1總體設(shè)計(jì)方案在開始游戲界面后,如果直接開始游戲,本程序能夠載入默認(rèn)圖片默認(rèn)難度開始游戲,程序默認(rèn)難度為正常,還設(shè)計(jì)實(shí)現(xiàn)背景音樂的播放功能等。在本程序中,對(duì)于圖片的分割、隨機(jī)分配??傮w設(shè)計(jì)方案中主要說明前期工作中對(duì)于分割圖片以及判斷游戲結(jié)束這兩點(diǎn)的設(shè)計(jì)。4.1.1功能模塊設(shè)計(jì)關(guān)于該拼圖游戲的功能模塊設(shè)計(jì),從邏輯上分析,該拼圖游戲主要分成一塊,也就是一個(gè)主窗體,其中游戲部分又分為游戲菜單部分,選擇部分,幫助部分,下面就從這幾部分對(duì)該程序進(jìn)行功能設(shè)計(jì)分析。游戲功能分析游戲部分主要分為游戲菜單,選擇菜單,幫助菜單三個(gè)部分:1.游戲菜單功能分析游戲菜單包括:(1)新游戲;(2)記錄;(3)完整圖片(當(dāng)游戲開始之后更新);(4)退出游戲;拼圖游戲菜單功能有新游戲,記錄,完整圖片,退出游戲這幾個(gè)菜單選項(xiàng),新游戲功能為開始新游戲,記錄主要是記錄游戲的最高成績,每個(gè)難度記錄最好的成績,分別有難度顯示,姓名,時(shí)間,步數(shù)。完整圖片在新游戲開始后更新,出現(xiàn),顯示正在進(jìn)行游戲的圖片,幫助游戲者完成游戲。退出游戲。2.選擇菜單功能分析選擇菜單包括:(1)難度;(2)圖片;(3)音樂;拼圖選擇菜單功能有難度,然后難度選擇下有普通,正常,困難三個(gè)難度。用于切割圖片。圖片是選擇在背景圖片文件夾內(nèi)存儲(chǔ)的圖片,游戲者可以自己添加喜歡的圖片到背景圖片文件夾內(nèi)用于游戲。音樂功能是選擇在音樂文件夾內(nèi)的音樂,添加音樂可以在這里選擇。2.幫助菜單功能分析幫助菜單包括:幫助;(2)作者;幫助菜單幫助游戲者認(rèn)識(shí)上手游戲,介紹游戲規(guī)則。作者介紹程序作者,聯(lián)系方式。4.2系統(tǒng)流程圖設(shè)計(jì)程序流程圖又稱為方框圖。表示方法簡明直觀,是用來描述程序執(zhí)行的邏輯過程的。它把程序的基本步驟歸納為:處理、判斷、輸入/輸出、開始和結(jié)束等幾個(gè)基本功能,并用不同的記號(hào)加以表示,從而描述程序的執(zhí)行過程。返回主界面返回主界面功能選擇拼圖游戲菜單和幫助菜單功能選擇輸入/輸出操作信息進(jìn)入是否繼續(xù)YN圖4.1拼圖游戲系統(tǒng)流程圖拼圖游戲系統(tǒng)流程圖如圖所示,進(jìn)入系統(tǒng)后,用戶可選擇各功能進(jìn)行游戲,此時(shí)亦可選擇退出。選擇各功能可分別從游戲菜單,選擇菜單,幫助菜單中選擇。根據(jù)用戶的功能選擇會(huì)輸出具體對(duì)應(yīng)的操作信息,直至游戲結(jié)束。4.3詳細(xì)設(shè)計(jì)MenuFrameMenuFrameCardFrameCardFramePuzzlePuzzleGradesSplitMatrixGameOverShowImageGradesSplitMatrixGameOverShowImageButtonClickPButtonClickPoint圖4.2類之間的關(guān)系圖文件名主要功能主要說明Puzzle程序的主類,定義了程序的各個(gè)組件的動(dòng)作和為窗口設(shè)置圖標(biāo)主函數(shù)的程序CardFrame游戲界面,添加繼續(xù)按鈕MenuFrame初始化游戲界面,創(chuàng)建添加組件ShowImage顯示完整圖片Split根據(jù)難度等級(jí)切割完整圖片為拼圖塊Matrix加載打亂的圖塊進(jìn)行初始化游戲Grades游戲記錄和存檔,游戲暫停的實(shí)現(xiàn)GameOver游戲時(shí)間和步數(shù)的計(jì)算和游戲結(jié)束的判斷Point獲得拼圖的行數(shù)和列數(shù),并向其他函數(shù)傳參。ButtonClick實(shí)現(xiàn)鼠標(biāo)動(dòng)作Arg提供圖片路徑和成績記錄的路徑接口圖4.3類的主要功能下面是各個(gè)類的具體說明:類Puzzle變量說明變量類型變量名稱開始狀態(tài)BooleanStrart窗口寬度IntfirstWidth窗口高度IntfirstHeight結(jié)束游戲gameOverGameOver焦點(diǎn)控制BooleanIndex方法名稱方法功能方法說明Puzzle()創(chuàng)建游戲窗口和設(shè)置圖標(biāo)StartGame()控制游戲開始,更新游戲菜單游戲菜單添加完整圖片選項(xiàng)endGame()控制游戲結(jié)束游戲結(jié)束,更新開始菜單,顯示步數(shù)和時(shí)間。FrameLoseFocus()窗口失去焦點(diǎn)事件FrameLoseFocus()窗口得到焦點(diǎn)事件判斷是否存在圖片menuNewClick()進(jìn)行切割圖片menuGradesClick()實(shí)現(xiàn)分?jǐn)?shù)記錄和顯示menuShowClick()在游戲中顯示完整圖片menuExit()退出游戲menuHelpClick()實(shí)現(xiàn)幫助功能menuAboutClick()實(shí)現(xiàn)關(guān)于功能圖4.4類Puzzle類CardFrame變量說明變量類型變量名稱布局格式變量CardLayoutcard容器變量ContainerCon面板數(shù)組JpanelPanel[]方法名稱方法功能方法說明CardFrame()創(chuàng)建窗口,布局游戲介紹添加了焦點(diǎn)事件適配器nextCard()轉(zhuǎn)到下一張卡片采用卡片布局圖4.5類CardFrame類MenuFrame變量說明變量類型變量名稱難度等級(jí)變量Inttype文件路徑Stringfilename難度按鈕組ButtonGroupbgrp圖片選擇按鈕組ButtonGroupfrp音樂選擇按鈕組ButtonGroup菜單更新控制BooleanUpdate菜單項(xiàng)數(shù)組JMenuMm[]m[]方法名稱方法功能方法說明MenuFrame()創(chuàng)建窗口添加焦點(diǎn)事件適配器addMenu()菜單欄中添加菜單以數(shù)組形式添加多個(gè)菜單menuLevelClick()實(shí)現(xiàn)等級(jí)選擇menuBackgroundClik()實(shí)現(xiàn)背景圖片的選擇menuMusic()實(shí)現(xiàn)背景音樂的選擇getType()返回一個(gè)難度等級(jí)getFilename()獲取圖片的名字getMusicname()獲取音樂的名字initMenuBegin()初始化開始按鈕兵設(shè)置快捷鍵initMenuBackground()初始化背景菜單initMenuMusic()初始化音樂菜單initMenuOpition()初始化選擇菜單initMenuLevel()初始化等級(jí)菜單updateMenuBegin()游戲開始后更新游戲菜單圖4.6類MenuFrame類ShowImage方法名稱方法功能方法說明ShowImage()創(chuàng)建顯示圖片窗口在游戲中提供幫助使用圖4.7類ShowImage類Split變量說明變量類型變量名稱難度等級(jí)IntHARDNORMLEASY路徑名稱stringFilenamepath方法名稱方法功能方法說明Spilt()創(chuàng)建Split對(duì)象Set()創(chuàng)建存檔文件BufferedImage[]divid切割背景圖片拼圖塊Get()獲取Spilt對(duì)象圖4.8類Split類Matrix變量名稱變量類型變量說明panelJpanel面板rowInt拼圖行數(shù)calInt拼圖列數(shù)方法名稱方法功能方法說明Matrix()創(chuàng)建圖塊所在的按鈕并添加監(jiān)聽器,之后添加到面板中Init()實(shí)現(xiàn)圖塊的隨機(jī)排列打亂圖塊順序圖4.9類Matrix類Grades變量名稱變量類型變量說明Data[]Data自定義類stepInt拼圖步數(shù)timeInt拼圖計(jì)時(shí)方法名稱方法功能方法說明Grades()構(gòu)造函數(shù)creatData()生成拼圖記錄的文件readData()讀取已經(jīng)存在的記錄Set()記錄游戲的記錄Show()顯示記錄圖4.10類Grades類GameOver變量名稱變量類型變量說明stepInt移動(dòng)步數(shù)cunttimeLong游戲時(shí)間nowLong開始時(shí)間StopgameOverBoolean控制變量方法名稱方法功能方法說明GameOver()構(gòu)造函數(shù)創(chuàng)建對(duì)象Start()控制游戲開始judge()判斷游戲是否結(jié)束pause()實(shí)現(xiàn)游戲的暫停getStep()獲取移動(dòng)圖塊的步數(shù)getTime()獲取游戲時(shí)間圖4.11類GameOver類point變量名稱變量類型變量說明rowInt拼圖行數(shù)calInt拼圖列數(shù)方法名稱方法功能方法備注getRow()獲取行數(shù)getCal()獲取列數(shù)Set()設(shè)置拼圖行和列圖4.12類point類ButtonClick變量名稱變量類型變量說明按鈕JButton按鈕RowcalInt行數(shù)和列數(shù)結(jié)束標(biāo)志Boolean結(jié)束標(biāo)志方法名稱方法功能方法說明ButtonClick()獲取各個(gè)參數(shù)actionPerformed()實(shí)現(xiàn)相應(yīng)的鼠標(biāo)動(dòng)作圖4.13類ButtonClick類Arg變量名稱變量類型變量說明pathString圖片路徑接口txtString記錄文件接口muString音樂文件接口圖4.14類Arg5程序?qū)崿F(xiàn)5.1游戲主界面設(shè)計(jì)與實(shí)現(xiàn)圖5.1游戲主界面游戲主界面如圖所示,在界面上有一些提示,可以幫助開始游戲。窗口是最常見,也是最符合人們習(xí)慣的常見窗口。5.2游戲游戲菜單設(shè)計(jì)與實(shí)現(xiàn)圖5.2開始菜單點(diǎn)擊開始菜單出現(xiàn)如圖所示的下拉菜單,有新游戲,記錄和退出游戲選項(xiàng)。圖5.3完整圖片選項(xiàng)當(dāng)游戲開始以后點(diǎn)擊游戲菜單,游戲菜單更新添加了完整圖片選項(xiàng)。圖5.4完整圖片顯示完整圖片。圖5.5記錄每個(gè)難度都有一個(gè)記錄,姓名,時(shí)間,步數(shù)。圖5.6游戲暫停當(dāng)游戲失去焦點(diǎn),就會(huì)暫停游戲,點(diǎn)擊繼續(xù)可以開始游戲。5.3選擇菜單設(shè)計(jì)與實(shí)現(xiàn)圖5.7選擇菜單選擇菜單下有三個(gè)功能,難度選擇,圖片選擇,音樂選擇。圖5.8難度選擇游戲分為三個(gè)難度,簡單,正常,困難。圖5.9簡單難度簡單難度的游戲。圖5.10正常難度正常難度的游戲。圖5.11困難難度困難難度的游戲。圖5.12背景音樂音樂菜單可以選擇不同的音樂。圖5.13背景圖片選擇圖片菜單可以選擇不同的圖片。5.4幫助菜單的設(shè)計(jì)與實(shí)現(xiàn)圖5.14幫助菜單圖5.15幫助選項(xiàng)幫助選項(xiàng)是游戲的提示。圖5.16作者選項(xiàng)作者選項(xiàng)提示作者信息。6軟件測(cè)試軟件測(cè)試工程師是指理解產(chǎn)品的功能要求,并對(duì)其進(jìn)行測(cè)試,檢查軟件有沒有錯(cuò)誤,決定軟件是否具有穩(wěn)定性,寫出相應(yīng)的測(cè)試規(guī)范和測(cè)試用例的專門工作人員。簡而言之,軟件測(cè)試工程師在一家軟件企業(yè)中擔(dān)當(dāng)?shù)氖恰百|(zhì)量管理”角色,及時(shí)糾錯(cuò)及時(shí)更正,確保產(chǎn)品的正常運(yùn)作。6.1測(cè)試的目的及相關(guān)問題軟件測(cè)試分為幾個(gè)部分:單元測(cè)試(模塊測(cè)試)是開發(fā)者編寫的一小段代碼,用于檢驗(yàn)被測(cè)代碼的一個(gè)很小的、很明確的功能是否正確。通常而言,一個(gè)單元測(cè)試是用于判斷某個(gè)特定條件(或者場(chǎng)景)下某個(gè)特定函數(shù)的行為。例如,你可能把一個(gè)很大的值放入一個(gè)有序list中去,然后確認(rèn)該值出現(xiàn)在list的尾部。或者,你可能會(huì)從字符串中刪除匹配某種模式的字符,然后確認(rèn)字符串確實(shí)不再包含這些字符了。系統(tǒng)測(cè)試是將需測(cè)試的軟件,作為整個(gè)基于計(jì)算機(jī)系統(tǒng)的一個(gè)元素,與計(jì)算機(jī)硬件、外設(shè)、某些支持軟件、數(shù)據(jù)和人員等其他系統(tǒng)元素及環(huán)境結(jié)合在一起測(cè)試。在實(shí)際運(yùn)行(使用)環(huán)境下,對(duì)計(jì)算機(jī)系統(tǒng)進(jìn)行一系列的組裝測(cè)試和確認(rèn)測(cè)試。系統(tǒng)測(cè)試的目的在于通過與系統(tǒng)的需求定義作比較,發(fā)現(xiàn)軟件與系統(tǒng)定義不符合或與之矛盾的地方。在測(cè)試和調(diào)試應(yīng)用程序時(shí),應(yīng)注意以下問題:1.程序設(shè)計(jì)者不應(yīng)測(cè)試自己設(shè)計(jì)的程序;2.測(cè)試用例的設(shè)計(jì)不僅要有合理的輸入數(shù)據(jù),還要有不合理的輸出數(shù)據(jù);分別測(cè)試各種可能出現(xiàn)的結(jié)果;3.除了檢查程序正常的運(yùn)行,還得測(cè)試遇到不正常的結(jié)果,或者是不正常的步驟,程序有什么反應(yīng)。在測(cè)試和調(diào)試應(yīng)用程序后,拼圖游戲程序應(yīng)達(dá)到以下要求:1.能基本完成所有功能;2.出現(xiàn)錯(cuò)誤能提示;6.2測(cè)試方法測(cè)試,通常有兩種方式:單元測(cè)試和組裝測(cè)試。對(duì)本系統(tǒng)而言,選擇單元測(cè)試的測(cè)試方法。單元測(cè)試中設(shè)計(jì)白盒測(cè)試以及黑盒測(cè)試。白盒測(cè)試的測(cè)試方法有代碼檢查法、靜態(tài)結(jié)構(gòu)分析法、靜態(tài)質(zhì)量度量法、邏輯覆蓋法、基本路徑測(cè)試法、域測(cè)試、符號(hào)測(cè)試、路徑覆蓋和程序變異。白盒測(cè)試法的覆蓋標(biāo)準(zhǔn)有邏輯覆蓋、循環(huán)覆蓋和基本路徑測(cè)試。其中邏輯覆蓋包括語句覆蓋、判定覆蓋、條件覆蓋、判定/條件覆蓋、條件組合覆蓋和路徑覆蓋。六種覆蓋標(biāo)準(zhǔn):語句覆蓋、判定覆蓋、條件覆蓋、判定/條件覆蓋、條件組合覆蓋和路徑覆蓋發(fā)現(xiàn)錯(cuò)誤的能力呈由弱至強(qiáng)的變化。語句覆蓋每條語句至少執(zhí)行一次。判定覆蓋每個(gè)判定的每個(gè)分支至少執(zhí)行一次。條件覆蓋每個(gè)判定的每個(gè)條件應(yīng)取到各種可能的值。判定/條件覆蓋同時(shí)滿足判定覆蓋條件覆蓋。條件組合覆蓋每個(gè)判定中各條件的每一種組合至少出現(xiàn)一次。路徑覆蓋使程序中每一條可能的路徑至少執(zhí)行一次。白盒測(cè)試(white-boxtesting)又稱透明盒測(cè)試(glassboxtesting)、結(jié)構(gòu)測(cè)試(structuraltesting)等,軟件測(cè)試的主要方法之一,也稱結(jié)構(gòu)測(cè)試、邏輯驅(qū)動(dòng)測(cè)試或基于程序本身的測(cè)試。測(cè)試應(yīng)用程序的內(nèi)部結(jié)構(gòu)或運(yùn)作,而不是測(cè)試應(yīng)用程序的功能(即黑盒測(cè)試)。在白盒測(cè)試時(shí),以編程語言的角度來設(shè)計(jì)測(cè)試案例。測(cè)試者輸入數(shù)據(jù)驗(yàn)證數(shù)據(jù)流在程序中的移動(dòng)路徑,并確定適當(dāng)?shù)妮敵?,類似測(cè)試電路中的節(jié)點(diǎn)。測(cè)試者了解待測(cè)試程序的內(nèi)部結(jié)構(gòu)、算法等信息,這是從程序設(shè)計(jì)者的角度對(duì)程序進(jìn)行的測(cè)試。黑盒測(cè)試,軟件測(cè)試的主要方法之一,也可以稱為功能測(cè)試、數(shù)據(jù)驅(qū)動(dòng)測(cè)試或基于規(guī)格說明的測(cè)試。測(cè)試者不了解程序的內(nèi)部情況,不需具備應(yīng)用程序的代碼、內(nèi)部結(jié)構(gòu)和編程語言的專門知識(shí)。只知道程序的輸入、輸出和系統(tǒng)的功能,這是從用戶的角度針對(duì)軟件界面、功能及外部結(jié)構(gòu)進(jìn)行測(cè)試,而不考慮程序內(nèi)部邏輯結(jié)構(gòu)。黑盒測(cè)試也稱功能測(cè)試,它是通過測(cè)試來檢測(cè)每個(gè)功能是否都能正常使用。在測(cè)試中,把程序看作一個(gè)不能打開的黑盒子,在完全不考慮程序內(nèi)部結(jié)構(gòu)和內(nèi)部特性的情況下,在程序接口進(jìn)行測(cè)試,它只檢查程序功能是否按照需求規(guī)格說明書的規(guī)定正常使用,程序是否能適當(dāng)?shù)亟邮蛰斎霐?shù)據(jù)而產(chǎn)生正確的輸出信息。黑盒測(cè)試著眼于程序外部結(jié)構(gòu),不考慮內(nèi)部邏輯結(jié)構(gòu),主要針對(duì)軟件界面和軟件功能進(jìn)行測(cè)試。黑盒測(cè)試的缺點(diǎn)在于其難于衡量測(cè)試的完整性,而白盒測(cè)試恰恰具有易于衡量測(cè)試完整性的優(yōu)點(diǎn),兩者之間具有極好的互補(bǔ)性。所以在對(duì)一個(gè)軟件產(chǎn)品進(jìn)行測(cè)試時(shí),為了謹(jǐn)慎全面的測(cè)試出軟件的質(zhì)量,通常使用白盒測(cè)試法,也就是根據(jù)程序的內(nèi)部處理邏輯來設(shè)計(jì)測(cè)試用例。白盒測(cè)試法主要的方法有:語句覆蓋,條件覆蓋,判定覆蓋,判定條件覆蓋,條件組合覆蓋,路徑覆蓋。本系統(tǒng)根據(jù)黑盒測(cè)試法來設(shè)計(jì)測(cè)試用例。6.3測(cè)試用例6.3.1系統(tǒng)啟動(dòng)測(cè)試測(cè)試用例1描述測(cè)試拼圖游戲是否啟動(dòng)正常測(cè)試方法運(yùn)行程序期望結(jié)果啟動(dòng)成功,看到主界面,功能顯示正常測(cè)試結(jié)果(正確或錯(cuò)誤)正確測(cè)試人Date:圖6.1啟動(dòng)測(cè)試的測(cè)試用例表啟動(dòng)測(cè)試的測(cè)試用例表如圖所示,表中體現(xiàn)出該用例是針對(duì)拼圖游戲是否能和正常啟動(dòng)而進(jìn)行測(cè)試的。測(cè)試方法即運(yùn)行程序即可,若能正常啟動(dòng),達(dá)到預(yù)期目標(biāo),即啟動(dòng)成功,看到主界面,并卻能正常登錄進(jìn)入,那么說明啟動(dòng)成功,測(cè)試完成了預(yù)期目標(biāo),達(dá)到測(cè)試目的。6.3.2拼圖測(cè)試測(cè)試用例2描述測(cè)試游戲是否能拼圖,能否拼圖成功測(cè)試方法點(diǎn)擊鼠標(biāo)左鍵進(jìn)行游戲,直至拼圖成功期望結(jié)果成功產(chǎn)生相應(yīng)的拼圖成功效果測(cè)試結(jié)果(正確或錯(cuò)誤)正確測(cè)試人Date:圖6.2拼圖測(cè)試的測(cè)試用例表拼圖測(cè)試的測(cè)試用例表如圖所示,表中體現(xiàn)出該用例是針對(duì)拼圖游戲是否能和正常拼圖而進(jìn)行測(cè)試的。測(cè)試方法即運(yùn)行程序即可,若能正常拼圖,達(dá)到預(yù)期目標(biāo),即點(diǎn)擊鼠標(biāo)左鍵進(jìn)行游戲,能夠拼圖,并直至拼圖成功,那么說明拼圖過程正常,測(cè)試完成了預(yù)期目標(biāo),達(dá)到測(cè)試目的。6.3.3游戲難度測(cè)試測(cè)試用例3描述測(cè)試游戲難度情況測(cè)試方法點(diǎn)擊游戲難度選擇相應(yīng)的難度,每種都能產(chǎn)生塊數(shù)不同的圖片,難度越大,圖片塊數(shù)越多期望結(jié)果普通,正常,困難均可以產(chǎn)生圖片,能夠拼圖測(cè)試結(jié)果(正確或錯(cuò)誤)正確測(cè)試人Date:圖6.3游戲難度測(cè)試的測(cè)試用例表游戲難度測(cè)試的測(cè)試用例表如圖所示,表中體現(xiàn)出該用例是針對(duì)拼圖游戲能否正常進(jìn)行難度選擇,并完成個(gè)難度的拼圖游戲而進(jìn)行測(cè)試的。測(cè)試方法即運(yùn)行程序即可,若能選擇三中難度并且可以正常拼圖,直至拼圖成功,即點(diǎn)擊游戲難度選擇相應(yīng)的難度,每種都能拼圖成功,那么說明拼圖過程難度選擇功能正常,測(cè)試完成了預(yù)期目標(biāo),達(dá)到測(cè)試目的。6.3.4背景音樂測(cè)試測(cè)試用例4描述測(cè)試背景音樂測(cè)試方法選擇每種背景音樂,播放,可以添加音樂。期望結(jié)果播放出來的都是相應(yīng)選擇的音樂測(cè)試結(jié)果(正確或錯(cuò)誤)正確測(cè)試人Date:圖6.4背景音樂測(cè)試的測(cè)試用例表背景音樂測(cè)試的測(cè)試用例表如圖所示,表中體現(xiàn)出該用例是針對(duì)拼圖游戲能否正常進(jìn)行難度選擇,并完成個(gè)難度的拼圖游戲而進(jìn)行測(cè)試的。測(cè)試方法即運(yùn)行程序即可,若能選擇三種難度并且可以正常拼圖,直至拼圖成功,即點(diǎn)擊游戲難度選擇相應(yīng)的難度,每種都能拼圖成功,那么說明拼圖過程難度選擇功能正常,測(cè)試完成了預(yù)期目標(biāo),達(dá)到測(cè)試目的。6.3.5拼圖游戲選擇圖片的測(cè)試測(cè)試用例5描述測(cè)試游戲選擇圖片功能測(cè)試方法選擇不同的圖片,進(jìn)行游戲,游戲可以進(jìn)行期望結(jié)果得到相應(yīng)的圖片測(cè)試結(jié)果(正確或錯(cuò)誤)正確測(cè)試人Date:圖6.5游戲圖片選擇功能測(cè)試的測(cè)試用例表游戲圖片選擇功能測(cè)試的測(cè)試用例表如圖所示,表中體現(xiàn)出該用例是針對(duì)拼圖游戲是否能進(jìn)行圖片選擇的。測(cè)試方法即運(yùn)行程序即可,選擇不同的圖片進(jìn)行游戲,分別得到不同的背景圖片,然后進(jìn)行游戲,游戲可以正常完成各種功能。測(cè)試完成了預(yù)期目標(biāo),達(dá)到測(cè)試目的。6.3.6記錄的測(cè)試測(cè)試用例6描述測(cè)試游戲記錄功能測(cè)試方法程序開始后查看記錄功能,進(jìn)行游戲,刷新記錄,然后關(guān)閉游戲,重新打開程序,查看記錄是否保存期望結(jié)果游戲記錄可以保存,有新的記錄刷新測(cè)試結(jié)果(正確或錯(cuò)誤)正確測(cè)試人Date:圖6.6游戲記錄功能的測(cè)試用例表游戲記錄功能的測(cè)試用例表如表圖所示,表中體現(xiàn)出該用例是針對(duì)拼圖游戲能否正常顯示記錄,有新紀(jì)錄是否能正常保存的。測(cè)試方法即運(yùn)行程序即可,查看記錄,檢查記錄是否保存正常,重新開始游戲,查看記錄是否正常保存,那么說明拼圖游戲記錄功能正常,測(cè)試完成了預(yù)期目標(biāo),達(dá)到測(cè)試目的。6.3.7拼圖游戲完整圖片功能測(cè)試測(cè)試用例5描述測(cè)試游戲完整圖片功能測(cè)試方法開始新游戲,點(diǎn)擊完整圖片按鈕期望結(jié)果得到背景圖片的原圖測(cè)試結(jié)果(正確或錯(cuò)誤)正確測(cè)試人Date:圖6.7游戲完整圖片功能測(cè)試的測(cè)試用例表游戲完整圖片功能測(cè)試的測(cè)試用例表如圖所示,表中體現(xiàn)出該用例是針對(duì)拼圖游戲是否顯示完整圖片的功能。測(cè)試方法即運(yùn)行程序即可,選擇不同圖片進(jìn)行游戲,點(diǎn)擊完整圖片按鈕,查看是否是得到背景圖片。測(cè)試完成了預(yù)期目標(biāo),達(dá)到測(cè)試目的。6.4測(cè)試分析和總結(jié)測(cè)試的內(nèi)容應(yīng)該包括合法性測(cè)試、非法測(cè)試以及邊緣測(cè)試,所以除了以上測(cè)試用例之外,還對(duì)該軟件系統(tǒng)進(jìn)行了邊緣測(cè)試以及非法測(cè)試。通過測(cè)試,同樣可以證明軟件系統(tǒng)能夠在非法信息的錄入下報(bào)錯(cuò),并且能夠?qū)吘壭畔⒌匿浫胱龀龇磻?yīng)。所以綜上所述,該軟件一系列的測(cè)試能夠證明系統(tǒng)數(shù)據(jù)處理具有安全性及穩(wěn)定性,在數(shù)據(jù)出錯(cuò)情況下能夠給出正確提示,當(dāng)系統(tǒng)出現(xiàn)異常時(shí),能夠正確捕獲并進(jìn)行相應(yīng)的處理或給予提示。結(jié)論這次選擇了這個(gè)課題作為畢業(yè)設(shè)計(jì),想要更有特色的做這個(gè)設(shè)計(jì),不單單是簡單的功能也不是常見的那些拼圖的功能,在做這個(gè)課題之前經(jīng)過了很多的考慮,前期做的準(zhǔn)備室和常見游戲一樣實(shí)現(xiàn)普通的,大家都設(shè)計(jì)的功能,也就是基本拼圖游戲功能。在實(shí)現(xiàn)這些的基礎(chǔ)上在加入自己的獨(dú)特的部分,這個(gè)過程可以說是設(shè)計(jì)比較困難的部分,經(jīng)過觀察,試驗(yàn),發(fā)現(xiàn)很多游戲都不存在由游戲者自己添加圖片的功能,因此想到設(shè)計(jì)這個(gè)獨(dú)特的功能,自己設(shè)計(jì)了這個(gè)新的功能,游戲者可以自己添加自己較喜歡的圖片,然后進(jìn)行游戲這樣可以提高游戲的可玩性。在游戲中難度設(shè)計(jì)也是有點(diǎn)困難的地方,在參考過很多設(shè)計(jì),咨詢老師之后,完成了圖片的根據(jù)難度分割圖片功能。為了提高游戲者游戲樂趣,還添加了背景音樂,而且美化了游戲界面,簡化了各個(gè)功能。努力做到滿足各種用戶的需求。做設(shè)計(jì)以來,我對(duì)Java有了更深入的了解,以前學(xué)習(xí)的只是只是皮毛,不論開發(fā)多么簡單的程序,都需要很多的經(jīng)驗(yàn)知識(shí),學(xué)習(xí)的理論很難在實(shí)際中發(fā)揮作用,不論是前期的設(shè)計(jì),后期的測(cè)試,只有做完才能發(fā)現(xiàn)前期準(zhǔn)備是多么不足,只有做完才明白,當(dāng)時(shí)上課老師強(qiáng)調(diào)的知識(shí)點(diǎn)其實(shí)不僅僅是一個(gè)部分,前后聯(lián)系,貌似清楚,其實(shí)只是只知其一不知其二,Java的語言豐富多彩,實(shí)現(xiàn)途徑復(fù)雜多樣。首先前期為了了解常見拼圖游戲的設(shè)計(jì),我在網(wǎng)上找了很多資源,下載了不同的游戲,學(xué)習(xí)拼圖的設(shè)計(jì)理念,各個(gè)功能的設(shè)計(jì),有哪些功能,思考自己的實(shí)現(xiàn)方式,設(shè)計(jì)各個(gè)模塊的步驟設(shè)計(jì)。前期設(shè)計(jì)是程序好壞的關(guān)鍵,小的程序工作量小,修改的時(shí)間花費(fèi)也很大。設(shè)計(jì)過程中,經(jīng)常會(huì)遇到困難,我學(xué)會(huì)做任何事情都要先設(shè)計(jì)好步驟,然后再實(shí)施,實(shí)施過程中找出自己的錯(cuò)誤并加以改正,再進(jìn)行下一個(gè)步驟。這個(gè)程序就是在這樣一次的修改,一次次的完善。完成游戲雛形之后,再進(jìn)行逐步的完善。這是一個(gè)不斷學(xué)習(xí)新鮮事物的過程,從設(shè)計(jì)初的不懂到最后能夠順利完成,我體會(huì)到在實(shí)踐中學(xué)習(xí)的重要性,這對(duì)于將來我走上工作崗位具有重要意義,相信這也是布置此項(xiàng)畢業(yè)設(shè)計(jì)的初衷。經(jīng)過三個(gè)月的不斷努力,畢業(yè)設(shè)計(jì)內(nèi)容已經(jīng)完成了。回顧這個(gè)設(shè)計(jì)過程,我深刻認(rèn)識(shí)了書本上的知識(shí)和現(xiàn)實(shí)的結(jié)合。通過這次自己設(shè)計(jì)程序,豐富了自己的實(shí)踐技能,擴(kuò)展了相關(guān)知識(shí),使我收獲頗豐。感受了開發(fā)的過程設(shè)計(jì)的過程。由于我對(duì)軟件開發(fā)還只是一個(gè)新手,了解的不多,這其中一定還有很多的不足,也許有些模塊未能做得盡如人意。但可以肯定的是,通過此次畢業(yè)設(shè)計(jì),我確實(shí)收獲了許多意想不到的東西,不光是對(duì)Java的認(rèn)識(shí)對(duì)軟件工程等一些課程的知識(shí)了解更是深入。我認(rèn)為設(shè)計(jì)基本實(shí)現(xiàn),設(shè)計(jì)還是比較成功的。今后JavaSwing組件開發(fā)游戲的前景,都是很不錯(cuò)的,這也是大眾化,市場(chǎng)化的一種趨勢(shì)。JavaSwing組件給單機(jī)游戲市場(chǎng)或者說是窗口組件帶來了一股力量,在游戲市場(chǎng)所作出的貢獻(xiàn)、對(duì)軟件的發(fā)展是毋庸置疑的。相信十年甚至幾十年,單機(jī)小游戲的游戲市場(chǎng)還會(huì)隨著JavaSwing組件的發(fā)展會(huì)有很大的擴(kuò)展而且會(huì)深入大眾。參考文獻(xiàn)[1]張桂珠劉麗陳愛國Java面向?qū)ο蟪绦蛟O(shè)計(jì)(第2版)北京郵電大學(xué)出版社[2]畢廣吉Java程序設(shè)計(jì)實(shí)例教程[M]北京冶金工業(yè)出版社2007年[3][美]RogersCadenheadJava編程入門經(jīng)典梅興文譯第4版北京人民郵電出版社2007[4][美]BruceEckel.ThinkingInJava英文第4版北京機(jī)械工業(yè)出版社2007[5]陳軼姚曉昆Java程序設(shè)計(jì)實(shí)驗(yàn)指導(dǎo)北京清華大學(xué)出版社2006[6]楊昭二級(jí)Java語言程序設(shè)計(jì)教程北京中國水利水電出版社2006[7]趙文靖Java程序設(shè)計(jì)基礎(chǔ)與上機(jī)指導(dǎo)北京清華大學(xué)出版社2006[8]趙毅跨平臺(tái)程序設(shè)計(jì)語言——Java西安電子科技大學(xué)出版社2006[9][美]HerbertSchidtJava參考大全鄢愛蘭鹿江春譯清華大學(xué)出版社,2006[10][美]MwtskerSJ.Java設(shè)計(jì)模式[M]第2版電子工業(yè)出版社2012年09月致謝在本次畢業(yè)設(shè)計(jì)中,我首先要感謝的是張輝老師,在他身上我學(xué)到了很多東西。他嚴(yán)謹(jǐn)、認(rèn)真、負(fù)責(zé)的工作態(tài)度給我留下了深刻的印象。關(guān)于畢業(yè)設(shè)計(jì)檢查工作的各項(xiàng)步驟,安排,張老師都是第一時(shí)間通知我們。必須得到確認(rèn)。無論在理論上還是在實(shí)踐中,張老師都給與我很大的幫助。很多設(shè)計(jì)中的實(shí)現(xiàn),老師都悉心幫助,論文中的不足,老師都盡心指導(dǎo)。相信我的畢業(yè)設(shè)計(jì)能順利完成老師花費(fèi)了很大的時(shí)間和精力,我更是受到了老師的很多教導(dǎo)。同時(shí)在此也感謝學(xué)院的其他老師,相信沒有各位老師的共同配合,畢業(yè)設(shè)計(jì)檢查工作也不會(huì)進(jìn)行的如此井井有條,這幾個(gè)月的工作中,每位老師的辛勤付出對(duì)于本屆畢業(yè)設(shè)計(jì)檢查工作的順利進(jìn)行都是功不可沒的。英文原文WorkingwithDatabasesThischapterdescribeshowtouseSQLstatementsinembeddedapplicationstocontroldatabases.Therearethreedatabasestatementsthatsetupandopendatabasesforaccess:SETDATABASEdeclaresadatabasehandle,associatesthehandlewithanactualdatabasefile,andoptionallyassignsoperationalparametersforthedatabase.SETNAMESoptionallyspecifiesthecharactersetaclientapplicationusesforCHAR,VARCHAR,andtextBlobdata.Theserverusesthisinformationtotransliteratefromadatabase’sdefaultcharactersettotheclient’scharactersetonSELECToperations,andtotransliteratefromaclientapplication’scharactersettothedatabasecharactersetonINSERTandUPDATEoperations.gCONNECTopensadatabase,allocatessystemresourcesforit,andoptionallyassignsoperationalparametersforthedatabase.Alldatabasesmustbeclosedbeforeaprogramends.AdatabasecanbeclosedbyusingDISCONNECT,orbyappendingtheRELEASEoptiontothefinalCOMMITorROLLBACKinaprogram.DeclaringadatabaseBeforeadatabasecanbeopenedandusedinaprogram,itmustfirstbedeclaredwithSETDATABASEto:CHAPTER3WORKINGWITHDATABASES.Establishadatabasehandle.Associatethedatabasehandlewithadatabasefilestoredonalocalorremotenode.Adatabasehandleisaunique,abbreviatedaliasforanactualdatabasename.DatabasehandlesareusedinsubsequentCONNECT,COMMITRELEASE,andROLLBACKRELEASEstatementstospecifywhichdatabasestheyshouldaffect.ExceptindynamicSQL(DSQL)applications,databasehandlescanalsobeusedinsidetransactionblockstoqualify,ordifferentiate,tablenameswhentwoormoreopendatabasescontainidenticallynamedtables.Eachdatabasehandlemustbeuniqueamongallvariablesusedinaprogram.Databasehandlescannotduplicatehost-languagereservedwords,andcannotbeInterBasereservedwords.Thefollowingstatementillustratesasimpledatabasedeclaration:EXECSQLSETDATABASEDB1=’employee.gdb’;Thisdatabasedeclarationidentifiesthedatabasefile,employee.gdb,asadatabasetheprogramuses,andassignsthedatabaseahandle,oralias,DB1.Ifaprogramrunsinadirectorydifferentfromthedirectorythatcontainsthedatabasefile,thenthefilenamespecificationinSETDATABASEmustincludeafullpathname,too.Forexample,thefollowingSETDATABASEdeclarationspecifiesthefullpathtoemployee.gdb:EXECSQLSETDATABASEDB1=’/interbase/examples/employee.gdb’;Ifaprogramandadatabasefileitusesresideondifferenthosts,thenthefilenamespecificationmustalsoincludeahostname.ThefollowingdeclarationillustrateshowaUnixhostnameisincludedaspartofthedatabasefilespecificationonaTCP/IPnetwork:EXECSQLSETDATABASEDB1=’jupiter:/usr/interbase/examples/employee.gdb’;OnaWindowsnetworkthatusestheNetbeuiprotocol,specifythepathasfollows:EXECSQLSETDATABASEDB1=’//venus/C:/Interbase/examples/employee.gdb’;DECLARINGADATABASEEMBEDDEDSQLGUIDE37DeclaringmultipledatabasesAnSQLprogram,butnotaDSQLprogram,canaccessmultipledatabasesatthesametime.Inmulti-databaseprograms,databasehandlesarerequired.Ahandleisusedto:1.Referenceindividualdatabasesinamulti-databasetransaction.2.Qualifytablenames.3.SpecifydatabasestoopeninCONNECTstatements.IndicatedatabasestoclosewithDISCONNECT,COMMITRELEASE,andROLLBACKRELEASE.DSQLprogramscanaccessonlyasingledatabaseatatime,sodatabasehandleuseisrestrictedtoconnectingtoanddisconnectingfromadatabase.Inmulti-databaseprograms,eachdatabasemustbedeclaredinaseparateSETDATABASEstatement.Forexample,thefollowingcodecontainstwoSETDATABASEstatements:...EXECSQLSETDATABASEDB2=’employee2.gdb’;EXECSQLSETDATABASEDB1=’employee.gdb’;...4UsinghandlesfortablenamesWhenthesametablenameoccursinmorethanonesimultaneouslyaccesseddatabase,adatabasehandlemustbeusedtodifferentiateonetablenamefromanother.Thedatabasehandleisusedasaprefixtotablenames,andtakestheformhandle.table.Forexample,inthefollowingcode,thedatabasehandles,TESTandEMP,areusedtodistinguishbetweentwotables,eachnamedEMPLOYEE:...EXECSQLDECLAREIDMATCHCURSORFORSELECTTESTNOINTO:matchidFROMTEST.EMPLOYEEWHERETESTNO>100;EXECSQLDECLAREEIDMATCHCURSORFORSELECTEMPNOINTO:empidFROMEMP.EMPLOYEEWHEREEMPNO=:matchid;...CHAPTER3WORKINGWITHDATABASES38INTERBASE6IMPORTANTThisuseofdatabasehandlesappliesonlytoembeddedSQLapplications.DSQLapplicationscannotaccessmultipledatabasessimultaneously.4UsinghandleswithoperationsInmulti-databaseprograms,databasehandlesmustbespecifiedinCONNECTstatementstoidentifywhichdatabasesamongseveraltoopenandprepareforuseinsubsequenttransactions.DatabasehandlescanalsobeusedwithDISCONNECT,COMMITRELEASE,andROLLBACKRELEASEtospecifyasubsetofopendatabasestoclose.ToopenandprepareadatabasewithCONNECT,see“Openingadatabase”onpage41.TocloseadatabasewithDISCONNECT,COMMITRELEASE,orROLLBACKRELEASE,see“Closingadatabase”onpage49.Tolearnmoreaboutusingdatabasehandlesintransactions,see“Accessinganopendatabase”onpage48.PreprocessingandruntimedatabasesNormally,eachSETDATABASEstatementspecifiesasingledatabasefiletoassociatewithahandle.Whenaprogramispreprocessed,gpreusesthespecifiedfiletovalidatetheprogram’stableandcolumnreferences.Later,whenauser
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030年中國非開挖工程行業(yè)需求狀況規(guī)劃研究報(bào)告
- 2025-2030年中國超級(jí)電容器行業(yè)運(yùn)行態(tài)勢(shì)及發(fā)展趨勢(shì)預(yù)測(cè)報(bào)告
- 2025-2030年中國茶堿緩釋片市場(chǎng)發(fā)展?fàn)顩r及營銷戰(zhàn)略研究報(bào)告
- 2025-2030年中國纖維素醚市場(chǎng)十三五規(guī)劃及發(fā)展建議分析報(bào)告
- 云南輕紡職業(yè)學(xué)院《商務(wù)談判與銷售管理》2023-2024學(xué)年第二學(xué)期期末試卷
- 廊坊師范學(xué)院《數(shù)字邏輯與數(shù)字系統(tǒng)A》2023-2024學(xué)年第二學(xué)期期末試卷
- 海南衛(wèi)生健康職業(yè)學(xué)院《圖案原理》2023-2024學(xué)年第二學(xué)期期末試卷
- 2025年陜西省安全員B證(項(xiàng)目經(jīng)理)考試題庫
- 大連財(cái)經(jīng)學(xué)院《微機(jī)原理及接口技術(shù)B》2023-2024學(xué)年第二學(xué)期期末試卷
- 湖北財(cái)稅職業(yè)學(xué)院《生物醫(yī)學(xué)檢驗(yàn)儀器》2023-2024學(xué)年第二學(xué)期期末試卷
- YS/T 431-2009鋁及鋁合金彩色涂層板、帶材
- SB/T 10439-2007醬腌菜
- GB/T 33644-2017數(shù)控板料折彎機(jī)精度
- 與食品經(jīng)營相適應(yīng)的主要設(shè)備設(shè)施布局和操作流程文件
- 八年級(jí)數(shù)學(xué)下冊(cè)-全一冊(cè)-教學(xué)課件-(新版)浙教版
- 農(nóng)產(chǎn)品電子商務(wù)培訓(xùn)資料課件
- 傳熱學(xué)課后習(xí)題答案
- 酒店員工獎(jiǎng)懲管理規(guī)章制度
- 視頻號(hào)精細(xì)化運(yùn)營培訓(xùn)課件
- 雅馬哈便攜式電子琴KB-100說明書
- 固定財(cái)產(chǎn)清查登記匯總表
評(píng)論
0/150
提交評(píng)論