基于JAVA的五子棋游戲系統(tǒng)設(shè)計實現(xiàn)分析_第1頁
基于JAVA的五子棋游戲系統(tǒng)設(shè)計實現(xiàn)分析_第2頁
基于JAVA的五子棋游戲系統(tǒng)設(shè)計實現(xiàn)分析_第3頁
基于JAVA的五子棋游戲系統(tǒng)設(shè)計實現(xiàn)分析_第4頁
基于JAVA的五子棋游戲系統(tǒng)設(shè)計實現(xiàn)分析_第5頁
已閱讀5頁,還剩34頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、- .-. -可修編- . z.基于JAVA的五子棋游戲系統(tǒng)設(shè)計與實現(xiàn)專 業(yè) 電子信息工程 學(xué)生 董永杰 指導(dǎo)教師 曾玉 -. z.摘 要 目前,隨著計算機網(wǎng)絡(luò)的的開展,以計算機技術(shù)和網(wǎng)絡(luò)技術(shù)為核心的現(xiàn)代網(wǎng)絡(luò)技術(shù)已經(jīng)在現(xiàn)實生活和生產(chǎn)中得到了廣泛的使用,已經(jīng)成為多數(shù)人群的休閑方式,也為多數(shù)人所喜好。當然,為了滿足沒有網(wǎng)絡(luò)同樣能娛樂的要求,許多小游戲做成了單機和網(wǎng)絡(luò)的雙功能。 本軟件使用JAVA語戶端之間的連接,利用多線程技術(shù)言實現(xiàn),通過對圖形界面,繪圖,布局管理器等去構(gòu)造出游戲的單機功能,在此根底上,利用SCOKET的知識,建立起效勞器與客來處理效勞器端與客戶端之間的數(shù)據(jù)傳輸,通信問題,使得客戶

2、端和效勞器端之間能夠同步的進展處理。通過對軟件的編寫,更深入的理解了面向?qū)ο蟮母拍睿搀w會到利用面向?qū)ο笳Z言處理一些問題的優(yōu)勢。同時也加深了對多線程,流套接字等高級技術(shù)的理解。關(guān)鍵詞: 多線程;流套接字;數(shù)據(jù)傳輸;同步。-. z.ABSTRACTAt present, With the rapid development of puter network. Taking puter technology and the network technology as the core, modern network technology is already used in the real li

3、fe and the production and already became the leisure mode of the most people. And most people like them. Of course, its a pity that there still have some clients lacking of network because of various causes.In order to satisfy the above clients requirements. A large number of games ,usually named as

4、 small games by players, are designed for involving two kinds of different function. The former game is often played by these players whose puters never connect with the network. Its called for stand-alone version games. Just as its name implies, the later is named as online version games This softw

5、are implemented with JAVA language, and according to the understanding of SCOKET ,GUI and paint image ichnology. Established in these foundation , the server co ects with the multi- client, and transmission the information between many clients using the multi-thread proceeding technology. it is very

6、 convenient for both client and server to do the synchronous processing.Through to the software pilation, deepen understanding and grasp to the technology above understanding and holding.Key Words: multiple thread, Socket, transmission-data, synchronism.- .-. z.目錄TOC o 1-3 h u HYPERLINK l _Toc21007

7、第一章 緒論 PAGEREF _Toc21007 1 HYPERLINK l _Toc27600 1.1開發(fā)背景 PAGEREF _Toc27600 1 HYPERLINK l _Toc12224 1.2課題意義 PAGEREF _Toc12224 1 HYPERLINK l _Toc12802 1.3五子棋游戲的開展與現(xiàn)狀 PAGEREF _Toc12802 2 HYPERLINK l _Toc31735 1.4論文的組織構(gòu)造 PAGEREF _Toc31735 3 HYPERLINK l _Toc15132 第二章 五子棋程序相關(guān)技術(shù)介紹 PAGEREF _Toc15132 4 HYPER

8、LINK l _Toc14615 2.1軟件的根本功能 PAGEREF _Toc14615 4 HYPERLINK l _Toc5526 2.2開發(fā)運行環(huán)境 PAGEREF _Toc5526 4 HYPERLINK l _Toc8885 2.3軟件的開發(fā)手段以及工具的介紹 PAGEREF _Toc8885 4 HYPERLINK l _Toc25007 2.3.1 Java簡介 PAGEREF _Toc25007 4 HYPERLINK l _Toc18223 2.3.2 MyEclipse10開發(fā)環(huán)境簡介 PAGEREF _Toc18223 7 HYPERLINK l _Toc28443 2

9、.4軟件的實現(xiàn)目的 PAGEREF _Toc28443 8 HYPERLINK l _Toc28420 第三章 五子棋程序分析與設(shè)計 PAGEREF _Toc28420 9 HYPERLINK l _Toc17775 3.1用戶需求分析 PAGEREF _Toc17775 9 HYPERLINK l _Toc18471 3.2軟件功能構(gòu)造圖 PAGEREF _Toc18471 9 HYPERLINK l _Toc21699 3.3軟件各個功能的簡要說明 PAGEREF _Toc21699 10 HYPERLINK l _Toc15512 3.4軟件設(shè)計中使用到的JAVA軟件包以及類和方法 PA

10、GEREF _Toc15512 12 HYPERLINK l _Toc14412 3.5 五子棋界面設(shè)計 PAGEREF _Toc14412 13 HYPERLINK l _Toc22278 3.6 五子棋算法設(shè)計 PAGEREF _Toc22278 14 HYPERLINK l _Toc780 3.6.1 五子棋棋盤設(shè)計 PAGEREF _Toc780 15 HYPERLINK l _Toc27978 3.6.2 棋子設(shè)計 PAGEREF _Toc27978 16 HYPERLINK l _Toc3789 3.6.3 落子算法設(shè)計 PAGEREF _Toc3789 17 HYPERLINK

11、l _Toc18429 3.6.4 判斷輸贏設(shè)計 PAGEREF _Toc18429 19 HYPERLINK l _Toc18419 3.7 網(wǎng)絡(luò)五子棋算法設(shè)計 PAGEREF _Toc18419 21 HYPERLINK l _Toc30581 第四章 軟件的具體實現(xiàn) PAGEREF _Toc30581 23 HYPERLINK l _Toc1263 4.1準備工作 PAGEREF _Toc1263 23 HYPERLINK l _Toc18924 4.2游戲窗口界面的實現(xiàn) PAGEREF _Toc18924 23 HYPERLINK l _Toc11876 4.3下棋算法的實現(xiàn)PAGER

12、EF _Toc11876 25 HYPERLINK l _Toc13216 4.4完成判斷勝負的功能 PAGEREF _Toc13216 27 HYPERLINK l _Toc25904 4.5 系統(tǒng)測試 PAGEREF _Toc25904 30 HYPERLINK l _Toc16680 4.6 測試方案 PAGEREF _Toc16680 31 HYPERLINK l _Toc32246 4.6.1 界面功能測試 PAGEREF _Toc32246 31 HYPERLINK l _Toc11613 4.6.2 單機游戲測試 PAGEREF _Toc11613 32 HYPERLINK l

13、_Toc9703 4.6.3 聯(lián)網(wǎng)游戲測試 PAGEREF _Toc9703 33 HYPERLINK l _Toc16252 4.7 測試結(jié)果 PAGEREF _Toc16252 34 HYPERLINK l _Toc25301 第五章 總結(jié)與展望 PAGEREF _Toc25301 35 HYPERLINK l _Toc31600 致 PAGEREF _Toc31600 36 HYPERLINK l _Toc28886 附錄 PAGEREF _Toc28886 37 HYPERLINK l _Toc15725 JIcon.java程序: PAGEREF _Toc15725 37 HYPER

14、LINK l _Toc20991 Qipan.java局部程序: PAGEREF _Toc20991 37 HYPERLINK l _Toc25396 參考文獻 PAGEREF _Toc25396 43- .-. -可修編- . z.第一章 緒論1.1開發(fā)背景 隨著計算機的快速開展,各種游戲被紛紛請進了電腦。而像五子棋這類不僅能增強思維能力,提高智力,而且富含哲理,有助于修身養(yǎng)性的棋類游戲更是備受推崇。這使得那些喜愛下棋,又常??嘤跊]有對手的棋迷們能隨時過足棋癮。而且這類軟件個個水平頗高,大有與人腦分庭抗禮之勢。其中戰(zhàn)勝過國際象棋世界冠軍-卡斯帕羅夫的深藍便是最具說服力的代表,其它像圍棋的手淡

15、、象棋的將族等也以其優(yōu)秀的人工智能深受棋迷喜愛。 五子棋是我國古代的、傳統(tǒng)的黑白棋種之一,大約在南北朝時期隨圍棋一起先后傳入朝鮮、日本等地?,F(xiàn)代五子棋日文稱之為連珠,英譯為Ren-ju,英文稱之為Gobang或FIR(Five in a Row的縮寫),亦有連五子、五子連、串珠、五目、五目碰、五格等多種稱謂。通過一系列的規(guī)則變化使連珠五子棋這一簡單的游戲復(fù)雜化、規(guī)化,而最終成為今天的職業(yè)連珠五子棋,同時也成為一種國際比賽棋。 五子棋既有現(xiàn)代休閑的明顯特征短、平、快,又有古典哲學(xué)的高深學(xué)問陰陽易理;它既有簡單易學(xué)的特性,為人民群眾所喜聞樂見,又有深奧的技巧和高水平的國際性比賽;它的棋文化源淵流長

16、,具有的神秘和西方的直觀;既有場的概念,亦有點的連接。它是中西文化的交流點,是古今哲理的結(jié)晶。五子棋起源于古代中國,開展于日本,風行于歐洲。它在不同的國度也有著不同的稱謂,如國人稱其為情侶棋;歐洲人稱其為紳士棋;日本人稱其為中老年棋;美國人則喜歡將其稱為商業(yè)棋。由此可見,盡管國度不同,語言各異,但人們都可以借助這一簡單又深奧的棋藝進展交流、比賽,增進友誼。1.2課題意義人類之所以不斷在進步,是因為我們?nèi)祟愐恢辈粩嗟脑谒伎?,五子棋游戲程序的開發(fā)符合人類進步也是促進人類進步的一大動力之一。五子棋游戲程序讓人們方便快捷的可以下五子棋,讓人們在何時都能通過下棋來提高邏輯思維能力,同時也培養(yǎng)兒童的興趣以

17、及愛好,讓孩子更加聰明。同時,五子棋游戲程序的開發(fā)也使得五子棋這個游戲得到了廣泛的推廣,讓世界各地的人們知道五子棋,玩上五子棋,這已經(jīng)不是局限。五子棋游戲程序使得越來越多的人喜歡上了五子棋,熱愛下五子棋,它是具有很好的帶動性的。隨著互聯(lián)網(wǎng)絡(luò)的不斷普及,越來越多的人可以在網(wǎng)絡(luò)上就能夠與他人下五子棋了。1.3五子棋游戲的開展與現(xiàn)狀目前,連珠這一棋類運動已迅速在國際上開展起來。外國人都十分看好這一不起眼的智力游戲,并認為五子棋不僅能提高思維、開發(fā)智力、手腦并用、修身養(yǎng)性 而且富含哲理,具有的神秘和西方的直觀,是中西文化的交匯點。許多國家的人對五子棋都有不同的愛稱,例如國人把五子棋稱之為情侶棋,言下之

18、意是情人之間下五子棋有利于增加情感的交流;歐洲人稱之為中老年棋,表示五子棋適合中老年人的生理特點和思維方式;美洲人喜歡將五子棋稱之為商業(yè)棋,就是說商人談生意時可邊下棋邊談生意,棋下完了生意也談成了。由此可見,盡管國度不同,語言各異,但人們都可以借助五子棋這一簡單而又深奧的棋藝進展交流、比賽,增進友誼。當前,有多個國家和地區(qū)都在下五子棋,并有各種規(guī)模和級別的比賽。年月在日本京都、年月在俄羅斯聯(lián)邦的莫斯科、年月在瑞典、年月在愛沙尼亞的塔林分別舉行了第一、二、三、四屆世界錦標賽。除第三屆的冠軍是愛沙尼亞人之外,其余三屆的冠軍都是日本人。五子棋 的世界錦標賽,每兩年舉辦一次,其申國競爭也十分劇烈。日本

19、目前擁有自己的五子棋職業(yè)棋手,并且對連珠五子棋技術(shù)的研究也相當普遍和全面,就水平也正在日益增強。同時,五子棋的理論研究與探索也呈現(xiàn)蓬勃開展的勢頭,從年第一部五子棋專著問世以來,目前,全世界有多種五子棋的書籍及期刊,分別以日文、俄文、英文、瑞典文及中文。五子棋在我國的、*、*、等省區(qū)市都有很大的開展。屢次舉辦了地區(qū)的五子棋賽,如思曼杯、京空杯、奇奇童杯、第六屆民族團結(jié)杯和第四豈民族運動會的五子棋比賽。地區(qū)舉辦了上文杯五子棋大賽。省以及其他省市亦舉辦過許多五子棋比賽。所有這些賽事都越來越多地吸引了無數(shù)人們的關(guān)注,說明了根埴于中國的五子棋有著廣泛的群眾根底,是群眾喜聞樂見的體育活動。而現(xiàn)在,很多很多

20、游戲平臺上面都有五子棋游戲供我們玩,任何游戲平臺上面只要有棋牌類游戲的,則它就有五子棋在里面,網(wǎng)絡(luò)五子棋比賽,在聯(lián)眾,263,QQ游戲,UC里進展了10幾年了。可見,五子棋游戲在網(wǎng)絡(luò)上面是非?;鸨┑摹6以谄迮朴螒蚶锩嫱婕胰藬?shù)排名總會占到很前面,不愧是風行全球的棋牌游戲??!在未來中,將會有越來越多的人關(guān)注五子棋,喜歡五子棋,則將其變?yōu)樯虡I(yè)化也會越來越多,而且還可以以教育孩子的方式來將其嵌套進去,或者用來做測試等等,可以說以后的五子棋游戲會是則的精彩,則的讓人憧憬。則對于它的游戲開發(fā)和開展也將會上升到舉足輕重的地位去,它的開展會是相當之快的,就讓我們拭目以待吧。1.4論文的組織構(gòu)造本文由第一章緒

21、論,第二章五子棋程序相關(guān)技術(shù)介紹,第三章五子棋程序分析與設(shè)計,第四章軟件的具體實現(xiàn),第五章總結(jié)與展望,最后由致、附錄和參考文獻八局部組成。第一章緒論由研究背景、五子棋的開展前景、五子棋程序的根本步驟和本文的組織構(gòu)造組成。第二章介紹軟件的開發(fā)工具和和軟件的根本功能,另外介紹軟件所要實現(xiàn)的目標。第三章軟件總體分析與設(shè)計。第四章詳細分析軟件各模塊的設(shè)計與實現(xiàn)包括繪制棋盤、下棋功能、判斷勝負、下棋信息、時間設(shè)置、認輸?shù)裙δ芙M成。第五章是總結(jié)與展望。第六章是致。第七章是附錄。第八章是介紹參考文獻。- .-. z.第二章 五子棋程序相關(guān)技術(shù)介紹2.1軟件的根本功能顯示一個十五行十五列的圍棋棋盤。在棋盤上面

22、在對應(yīng)位置通過點擊鼠標下子,棋盤上將在相應(yīng)的位置上顯示棋子,并且棋子在橫縱交點上??梢宰詣优袛嘤螒蚴欠裢戤叄欠窈诜交蛘呤前追揭呀?jīng)勝利,并且跳出對話框來提示玩家。在游戲棋盤上方會有一個游戲信息,這個游戲信息是用來提示當前是黑白雙方的哪一方下子,玩家可以根據(jù)這個提示來相應(yīng)的下棋,而不會導(dǎo)致 不清楚輪到哪一方下棋??梢灾匦麻_場游戲,并且有認輸功能,在下棋提示上提示哪方時點認輸,哪一方就輸了,并且有悔棋功能。還可以對游戲時間進展設(shè)置,判斷是否超出規(guī)定的時間,如果超出時間則自動判斷為輸。2.2開發(fā)運行環(huán)境中心處理器:Intel Core i5-3230M,2.6GHZ;存:4G;硬盤:750G;操作系

23、統(tǒng):WINDOWS 7;開發(fā)工具: MyEclipse10;編程語言:JAVA。2.3軟件的開發(fā)手段以及工具的介紹2.3.1 Java簡介 Java 編程語言的風格十分接近C、C+語言。Java是一個純的面向?qū)ο蟮某绦蛟O(shè)計語言,它繼承了 C+ 語言面向?qū)ο蠹夹g(shù)的核心,Java舍棄了C +語言中容易引起錯誤的指針以引用取代、運算符重載operator overloading、多重繼承以接口取代等特性,增加了垃圾回收器功能用于回收不再被引用的對象所占據(jù)的存空間,使得程序員不用再為存管理而擔憂。在 Java SE 1.5 版本中,Java 又引入了泛型編程Generic Programming、類型

24、平安的枚舉、不定長參數(shù)和自動裝/拆箱等語言特性。 Java 不同于一般的編譯執(zhí)行計算機語言和解釋執(zhí)行計算機語言。它首先將源代碼編譯成二進制字節(jié)碼(bytecode),然后依賴各種不同平臺上的虛擬機來解釋執(zhí)行字節(jié)碼,從而實現(xiàn)了一次編譯、到處執(zhí)行的跨平臺特性。不過,每次的編譯執(zhí)行需要消耗一定的時間,這同時也在一定程度上降低了 Java 程序的運行效率。但在 J2SE 1.4.2 發(fā)布后,Java 的執(zhí)行速度有了大幅提升。 與傳統(tǒng)程序不同,Sun 公司在推Java 之際就將其作為一種開放的技術(shù)。全球數(shù)以萬計的 Java 開發(fā)公司被要求所設(shè)計的 Java 軟件必須相互兼容。Java 語言靠群體的力量而

25、非公司的力量是 Sun 公司的口號之一,并獲得了廣闊軟件開發(fā)商的認同。這與微軟公司所倡導(dǎo)的注重精英和封閉式的模式完全不同。 Sun 公司對 Java 編程語言的解釋是:Java 編程語言是個簡單、面向?qū)ο?、分布式、解釋性、強健、平安與系統(tǒng)無關(guān)、可移植、高性能、多線程和動態(tài)的語言。 Java 平臺是基于 Java 語言的平臺。這樣的平臺目前非常流行,因此微軟公司推出了與之競爭的.NET平臺以及模仿 Java 的 C#語言。 Java技術(shù)的重要性就不講了,從最近流行的一個統(tǒng)計數(shù)據(jù)上來說,目前世界上編程語言Java 、C 、VB、C+依次排名前4位,這排名本身不說明什么,但至少也是工業(yè)界對編程語言使

26、用上一個側(cè)面的反映。 Java編程語言與眾不同之處在于:Java程序既是編譯型的轉(zhuǎn)換為一種稱為Java字節(jié)碼的中間語言,又是解釋型的JVM 對字節(jié)碼進展解析和運行。編譯只進展一次,而解釋在每次運行程序時都會進展。編譯后的字節(jié)碼采用一種針對JVM 優(yōu)化過的機器碼形式;解釋器是JVM 的實現(xiàn)。 Java具有眾多優(yōu)點,比方平臺無關(guān)性,平安性,面向?qū)ο螅瑥娊∈?,分布式等。與c+相比,Java去掉了其中的指針運算、構(gòu)造、typedefs、#define、需要釋放存等功能,減少了平常出錯的50%,讓Java的語言功能很精煉。而且,因為Java很小,所以整個解釋器只需215K的RAM,并增加了一些很有用的功

27、能。2.3.2 MyEclipse10開發(fā)環(huán)境簡介 MyEclipse10 是一個開放源代碼的、基于 Java 的可擴展開發(fā)平臺。就其本身而言,它只是一個框架和一組效勞,用于通過插件組件構(gòu)建開發(fā)環(huán)境。幸運的是,MyEclipse10 附帶了一個標準的插件集,包括 Java 開發(fā)工具。MyEclipse10的本身只是一個框架平臺,但是眾多插件的支持使得MyEclipse10擁有其他功能相對固定的IDE軟件很難具有的靈活性。許多軟件開發(fā)商以MyEclipse10為框架開發(fā)自己的IDE。 MyEclipse10是一個開放源代碼的軟件開發(fā)工程,專注于為高度集成的工具開發(fā)提供一個全功能的、具有商業(yè)品質(zhì)的

28、工業(yè)平臺。它主要由MyEclipse10工程、MyEclipse10工具工程和MyEclipse10技術(shù)工程三個工程組成,具體包括四個局部組成MyEclipse Platform、JDT、CDT和PDE。JDT支持Java開發(fā)、CDT支持C開發(fā)、PDE用來支持插件開發(fā),MyEclipse Platform則是一個開放的可擴展IDE,提供了一個通用的開發(fā)平臺。它提供建造塊和構(gòu)造并運行集成軟件開發(fā)工具的根底。MyEclipse Platform允許工具建造者獨立開發(fā)與他人工具無縫集成的工具從而無須分辨一個工具功能在哪里完畢,而另一個工具功能在哪里開場。雖然大多數(shù)用戶很樂于將 MyEclipse10

29、當作 Java IDE來使用,但MyEclipse10 的目標不僅限于此。MyEclipse10還包括插件開發(fā)環(huán)境Plug-in Development Environment,PDE,這個組件主要針對希望擴展 MyEclipse10的軟件開發(fā)人員,因為它允許他們構(gòu)建與MyEclipse10 環(huán)境無縫集成的工具。由于MyEclipse10 中的每樣?xùn)|西都是插件,對于給MyEclipse10 提供插件,以及給用戶提供一致和統(tǒng)一的集成開發(fā)環(huán)境而言,所有工具開發(fā)人員都具有同等的發(fā)揮場所。MyEclipse SDK軟件開發(fā)者包是MyEclipse Platform、JDT和PDE所生產(chǎn)的組件合并,它們

30、可以一次下載。這些局部在一起提供了一個具有豐富特性的開發(fā)環(huán)境,允許開發(fā)者有效地建造可以無縫集成到MyEclipse Platform中的工具。MyEclipse SDK由MyEclipse10工程生產(chǎn)的工具和來自其它開放源代碼的第三方軟件組合而成。MyEclipse10工程生產(chǎn)的軟件以 GPL發(fā)布,第三方組件有各自自身的許可協(xié)議。 MyEclipse10的根底是富客戶機平臺Rich Client Platform, 即RCP。RCP包括以下組件: 核心平臺(啟動MyEclipse10,運行插件 OSGi標準集束框架 SWT可移植構(gòu)件工具包 JFace文件緩沖,文本處理,文本編輯器MyEclip

31、se10工作臺即Workbench ,包含視圖views、編輯器editors、視角perspectives、和向?qū)izards MyEclipse10采用的技術(shù)是IBM公司開發(fā)的SWT,這是一種基于Java的窗口組件,類似Java本身提供的AWT和Swing窗口組件;不過IBM聲稱SWT比其他Java窗口組件更有效率。MyEclipse10的用戶界面還使用了GUI中間層JFace,從而簡化了基于SWT的應(yīng)用程序的構(gòu)建。MyEclipse10的插件機制是輕型軟件組件化架構(gòu)。在富客戶機平臺上, MyEclipse10使用插件來提供所有的附加功能,例如支持Java以外的其他語言。 已有的別離的插

32、件已經(jīng)能夠支持C/C+CDT、Perl、Ruby,Python、telnet和數(shù)據(jù)庫開發(fā)。插件架構(gòu)能夠支持將任意的擴展參加到現(xiàn)有環(huán)境中,例如配置管理,而決不僅僅限于支持各種編程語言。MyEclipse10的設(shè)計思想是:一切皆插件。MyEclipse10核心很小,其它所有功能都以插件的形式附加于MyEclipse10核心之上。MyEclipse10根本核包括:圖形API (SWT/Jface), Java開發(fā)環(huán)境插件(JDT ),插件開發(fā)環(huán)境(PDE)等2.4軟件的實現(xiàn)目的五子棋游戲程序所要實現(xiàn)的目的是讓我們可以在電腦上下棋,而不需要去買,可以隨時玩,也可以聯(lián)機對戰(zhàn),方便快捷。而且能更好的推廣五

33、子棋于世界各地,此軟件也在于提供應(yīng)愛好五子棋的人,也吸引更多的人喜歡上五子棋,也具有很大的商業(yè)價值。使五子棋游戲程序在以后的制作中功能越來越強大,外觀越來越好看。- .-. z.第三章 五子棋程序分析與設(shè)計3.1用戶需求分析 通過軟件功能的分析,根據(jù)五子棋愛好者的需求,得出以下需求信息:具有重新開場功能;具有認輸功能;具有提示該輪到哪一方下棋的功能;退出游戲功能;判斷勝負功能;時間設(shè)置功能;五子棋難度選擇功能;聯(lián)機功能。還有用戶對游戲界面的要求,通過上述的用戶需求,可以得出一個總體的設(shè)計方案。由上述的用戶需要,可以對程序的根本功能進展一個有效的分析,規(guī)定下游戲的根本功能。3.2軟件功能構(gòu)造圖此

34、五子棋程序最主要的五大功能是:下棋,判斷勝負,重新開場與認輸,聯(lián)網(wǎng)游戲的設(shè)置與五子棋難度的選擇。大體的功能如圖3-1:五子棋程序棋盤的設(shè)計五子棋程序棋盤的設(shè)計下棋方法的判定落子的設(shè)計輸贏的判定游戲提示聯(lián)機對完設(shè)計選擇難度圖 3-1 五子棋功能設(shè)定圖3.3軟件各個功能的簡要說明繪制十五行十五列的棋盤:首先是每行每列的距離都是一樣的,并且棋盤上面有五個星,棋盤中間有個天元點,跟圍棋的棋盤一樣。點擊鼠標以后,會在相應(yīng)位置落下棋子,并被繪制出來,黑子是一個實心的黑圓,白子是一個實心的白圓加上一個等大空心的黑圓。棋子落在交點上:我們在下五子棋棋的時候,棋子都是會落在交點上的,而并非落在格子里面,則我們就

35、要規(guī)定當我點擊鼠標時,選取距離鼠標所取點的最近的左上交點為繪制棋子的中心點,則就可以實現(xiàn)棋子落在交點上了。黑白雙方輪流落子:黑方落子以后就要輪到白方,交替進展,這是下棋的根本要求,因此我們就要弄一個互斥事件進去,讓他們交替的落子。不能落在一樣位置:當我們落子時,會不小心落到一樣位置上去,則就要出現(xiàn)提示,不能落在一樣位置上,需要重新落子,實現(xiàn)的設(shè)想是當這個點已經(jīng)繪制過棋子以后,我們就要給一個布爾變量,讓它為假,則只能在它為真時才能繪制棋子,否則就要重新落子到別的地方去。判斷輸贏:當五個一樣顏色子都連在了一起的時候,我們就要判其為贏,這五個子可以在橫豎方向上連起,也可以在斜方向上連起。游戲信息:我

36、們應(yīng)該在棋盤的上面設(shè)置一個游戲信息的,用來提示當前輪到哪一方下棋了,以便于玩家知道誰在下,這個功能只要在黑白雙方輪流下棋功能的過程中添加一個提示信息用于顯示到界面上的就可以了。重新開場游戲就是把棋盤上的子全部清空,回復(fù)到一開場的時候的狀態(tài),重置之前所有的數(shù)據(jù)。認輸?shù)墓δ芫褪窃谂袛噍斱A功能的根底上添加的,讓玩家對自己沒信心的時候使用。退出游戲的功能就是直接把窗口關(guān)閉就可以了。游戲難度選擇:游戲難度選擇是由玩家自主選擇的與電腦下五子棋的一個重要方法??梢愿鶕?jù)自身的下棋水平來選擇和那種電腦來下。難度分為三種,分別是:簡單、中等與困難。而且電腦的思維是根據(jù)難度提升而提升。聯(lián)機對戰(zhàn):聯(lián)機對戰(zhàn)是為了方便玩

37、家與玩家相互之間切磋棋藝而設(shè)定的一大功能模塊,可以在一個局域網(wǎng)里面,然后聯(lián)機對戰(zhàn)。當雙方建立聯(lián)系以后,點擊開場就可以進展聯(lián)網(wǎng)對戰(zhàn)了。這極大的提高了五子棋的娛樂程度。3.4軟件設(shè)計中使用到的JAVA軟件包以及類和方法在用JAVA設(shè)計軟件的時候,使用到SUM公司提供的一些軟件包,這樣使得我們編寫程序更加簡便,以下是使用到的軟件包:Java*.swing.JFrame /java*.swing軟件包提供一組輕量級全部是 Java 語言組件,盡量讓這些組件在所有平臺上的工作方式都一樣。JFrame 類是 的擴展版本,該版本添加了對 JFC/Swing 組件架構(gòu)的支持。JFrame 是用來創(chuàng)立窗體的sw

38、ing 類,用來創(chuàng)立一個圖形界面的原始窗口,并且可以設(shè)置其大小,位置等屬性,是swing 編程的根底類之一。Java.awt /java.awt 軟件包包含用于創(chuàng)立用戶界面和繪制圖形圖像的所有類。Java.awt.Toolkit /Toolkit此類是所有 Abstract Window Toolkit 實際實現(xiàn)的抽象超類。Toolkit 的子類被用于將各種組件綁定到特定本機工具包實現(xiàn)。Toolkit.geiDefaultToolkit().getScreenSize().width; Toolkit.geiDefaultToolkit().getScreenSize().height; /以

39、上這兩個方法的作用是取得我們電腦顯示屏幕的寬度以及高度。geiDefaultToolkit()為獲取默認工具包,如果名為java.awt.headless 的系統(tǒng)屬性被設(shè)置為 true,則使用 Toolkit 的 headless 實現(xiàn)。 如果不存在 java.awt.headless 或 java.awt.headless 被設(shè)置false,且存在名為 awt.toolkit 的系統(tǒng)屬性,則該屬性將被視為 Toolkit 子類的名稱;否則將使用特定于平臺的默認 Toolkit 實現(xiàn)。 getScreenSize()這個方法是獲取屏幕的大小。在具有多個顯示屏的系統(tǒng)上,使用主顯示屏。從 Grap

40、hicsConfiguration 和 GraphicsDevice 可以獲得多屏幕感知顯示尺寸。Java*.swing.JOptionPane / JOptionPane 有助于方便地彈出要求用戶提供值或向其發(fā)出通知的標準對話框Java.awt.event.MouseListener /MouseLinstener 是鼠標監(jiān)聽,功能是接收用戶通過鼠標所做的操作,可以取得用戶點擊鼠標的坐標,從而進展其他的操作。Graphics 類, 它的功能是類似于畫筆的功能,用來在窗口中繪制文字以及圖形等。他的調(diào)用是通過覆寫JFrame 的 paint() 方法來使用的,通過 repaint() 方法來調(diào)用

41、。Java.io.File /這個是產(chǎn)生中斷并且調(diào)用文件用到的類。Java.io通過數(shù)據(jù)流、序列化和文件系統(tǒng)提供系統(tǒng)輸入和輸出。File 類文件和目錄路徑名的抽象表示形式。Java.awt.image.BufferedImage /BufferedImage 子類描述具有可訪問圖像數(shù)據(jù)緩沖區(qū)的 Image。BufferedImage 由圖像數(shù)據(jù)的 ColorModel 和 Raster 組成。Raster 的 SampleModel 中 band 的數(shù)量和類型必須與 ColorModel 所要求的數(shù)量和類型相匹配,以表示其顏色和 alpha 分量。所有 BufferedImage 對象的左上角

42、坐標都為 (0,0)。因此,用來構(gòu)造 BufferedImage 的任何 Raster 都必須滿足:min*=0 且 minY=0。 可以用來調(diào)用一個圖片作為我們下棋的背景圖片使用。3.5 五子棋界面設(shè)計開場開發(fā)游戲的第一步就是先制作出游戲的窗口界面,一個漂亮美麗大方的游戲界面,往往先能吸引玩家去嘗試,所以這個地方不能夠馬虎。首先我們得按照大家的習(xí)慣,也就是游戲風格。按照國人的五子棋游戲風格。一般是在木質(zhì)的棋盤上下,這樣能夠顯示出棋類游戲的沉穩(wěn)、大氣而又不失典雅的氣質(zhì)。所以我們設(shè)計界面的時候需要按照木質(zhì)棋盤的顏色來設(shè)計底色。在一般的五子棋游戲比賽中,需要有比賽的信息顯示,方便下棋者與觀看者根據(jù)

43、信息思考。所以在我們設(shè)計的界面上,必要的信息是不可缺少的。國人多喜歡把棋盤放在左邊,然后右邊顯示下棋的信息,所以設(shè)計棋盤的時候應(yīng)該按照國人的喜好擺放位置。根本流程如圖3-2所示:圖3-2 五子棋界面設(shè)計流程圖綜上所述,棋盤的設(shè)計是以木質(zhì)顏色為棋盤底色,畫上棋盤線條,把棋盤擺設(shè)在左邊,然后再右邊添加下棋的信息,如:狀態(tài),時間顯示,開場游戲等一些按鈕。3.6 五子棋算法設(shè)計五子棋算法設(shè)計可以包括如圖3-3所示設(shè)計:圖3-3 五子棋算法設(shè)計圖五子棋的算法設(shè)計包括棋盤設(shè)計,棋子設(shè)計,落子設(shè)計以及輸贏判斷。能設(shè)計出這四個算法,一個根本的五子棋算法就算完成了。3.6.1 五子棋棋盤設(shè)計五子棋棋盤設(shè)計可以使

44、用JAVA自帶的畫圖算法。設(shè)計成十五行十五列的小型棋盤即可,然后按照圍棋棋盤的設(shè)定,畫上天元以及天星等標記,則此棋盤就已經(jīng)設(shè)計完成了。設(shè)計圖如下:圖3-4 棋盤設(shè)計流程圖棋盤設(shè)計如上圖所示,首先是設(shè)計棋盤大小,然后設(shè)計棋盤底色這里設(shè)計底色一般為木質(zhì)顏色,如:蠟黃色和線條顏色,接下來就可以畫棋盤線條了,執(zhí)行一個循環(huán),循環(huán)次數(shù)為15次,畫出行線,然后再執(zhí)行一個15次循環(huán),畫列線。最后找到相對應(yīng)的點,畫上天元和天星。如此下來,一個優(yōu)質(zhì)的棋盤就已經(jīng)完成了。顏色、線條等個方面符合國人的審美觀。讓玩家下起來有一種和現(xiàn)實下五子棋一樣的感覺。3.6.2 棋子設(shè)計棋子設(shè)計也可以使用JAVA自帶的畫圖算法,分為黑

45、白兩種顏色的棋子,畫一個實心圓即可表示棋子。具體的實現(xiàn)設(shè)計如圖3-5所示:圖3-5 棋子設(shè)計流程圖棋子設(shè)計就需要使用java自帶的畫圖方法,獲取橫豎穿插點,然后以該點為圓心,畫一個半徑為13的圓,然后填充兩種顏色:黑色和白色。完成后判定該圓是否屬于剛剛落下的棋子,如果是,則在填充一個半徑為6的紅色圓,表示該棋子剛剛走完。3.6.3 落子算法設(shè)計由于需要設(shè)計單機游戲和聯(lián)機對戰(zhàn)。但是該算法不涉及到聯(lián)機對戰(zhàn),所以該算法只針對單機游戲。初步設(shè)定單機游戲分為三種難度等級。分別為容易、中等和困難。我們可以通過一個算法來表達不同難度,電腦只能從玩家手中獲取玩家下棋的情況,包括以下幾種情況:當計算出的自己已經(jīng)

46、有四個連珠并且沒有被堵住的情況下當然也就是說下一顆子就必贏的情況當計算出的對方已經(jīng)有四個連珠并且沒有被堵住的情況下當然也就是說必須堵住當計算出的自己已經(jīng)有三個連珠并且沒有被堵住的情況下當然也就是說下一顆子就必贏的情況當計算出的對方已經(jīng)有三個連珠并且沒有被堵住的情況下當然也就是說必須堵住四三連的情況 三三連的情況其算法流程圖如圖3-6所示:圖 3-6 五子棋算法流程圖開場下子,系統(tǒng)賦予該棋子Value初始值,然后系統(tǒng)自動分/|這四個方向進展判斷是否完畢。當系統(tǒng)定義為簡單的時候只能滿足以下情況:當計算出的自己已經(jīng)有四個連珠并且至少有一個沒有被其他顏色棋子攔截的情況下,就會自動去補齊。當計算出的對方

47、已經(jīng)有四個連珠并且沒有被攔截住的情況就會去攔截。 其他情況則不攔截。所以簡單的電腦較為容易。中等難度算法當自己已經(jīng)有四個連珠并且至少有一個沒有被其他顏色棋子攔截的情況下,就會自動去補齊。當計算出的對方已經(jīng)有四個連珠并且沒有被攔截住的情況就會去攔截。當計算出的自己已經(jīng)有三個連珠并且沒有被攔截的情況下就會繼續(xù)補齊到第四顆棋子,然后繼續(xù)1號操作。 當計算出的對方已經(jīng)有三個連珠并且沒有被攔截的情況就會主動去攔截。 當為棋盤出現(xiàn)四三連三三連連子的情況時候它不攔截當系統(tǒng)設(shè)定為困難的時候當計算出的自己已經(jīng)有四個連珠并且至少有一個沒有被其他顏色棋子攔截的情況下,就會自動去補齊。當計算出的對方已經(jīng)有四個連珠并且

48、沒有被攔截住的情況就會去攔截。當計算出的自己已經(jīng)有三個連珠并且沒有被攔截的情況下就會繼續(xù)補齊到第四顆棋子,然后繼續(xù)1號操作。 當計算出的對方已經(jīng)有三個連珠并且沒有被攔截的情況就會主動去攔截。 當計算機即將出現(xiàn)四三連的情況時候,計算機就會自動去補齊。當計算機即將出現(xiàn)三三連的情況時候,計算機就會自動去補齊。 當對方快或者已經(jīng)出現(xiàn)四三連子的時候,電腦就會視優(yōu)先級去攔截一個方向。當對方快或者已經(jīng)出現(xiàn)三三連子的時候,電腦就會視優(yōu)先級去攔截一個方向。3.6.4 判斷輸贏設(shè)計五子棋判斷輸贏的規(guī)則就是連續(xù)五個顏色一樣的子,代表該顏色所代表的一方獲勝。其具體設(shè)計流程圖如圖3-7所示:圖3-7 五子棋輸贏判斷流程

49、圖五子棋游戲勝負的判斷是五子棋游戲的最根本的算法設(shè)計。根據(jù)五子棋游戲的規(guī)則,當任一行、列、斜行連續(xù)一樣的棋子數(shù)到達5以后,則判定改色棋子的玩家勝利。所以設(shè)計判斷五子棋輸贏的方法就從查找連續(xù)一樣棋子開場。首先從橫向查找,循環(huán)查找橫向是否有連續(xù)顏色一樣的五個以上的棋子。假設(shè)有,則判斷勝利,假設(shè)沒有,則可以豎向查找,步驟和橫向查找類似。假設(shè)有,則判斷勝利,假設(shè)沒有,則可以繼續(xù)斜向查找,其步驟和判斷結(jié)果和前面類似。假設(shè)還是不能判斷勝利,則搜索是否還有可下的棋盤點位。假設(shè)有,則證明判斷失敗,假設(shè)沒有則可以宣布和棋。五子棋的判定方法不分單機或者聯(lián)網(wǎng),無論是和電腦對戰(zhàn),還是和玩家聯(lián)機對戰(zhàn)其判斷結(jié)果都如上述方

50、法來判斷。3.7 網(wǎng)絡(luò)五子棋算法設(shè)計網(wǎng)絡(luò)五子棋是使用的Socket網(wǎng)絡(luò)編程來實現(xiàn)的。下面先介紹下Socket編程流程圖:圖3-8 Socekt原理流程圖這個是整個Socket原理流程圖。利用這個原理可以把它應(yīng)用到網(wǎng)絡(luò)五子棋的流程圖。網(wǎng)絡(luò)五子棋的整體設(shè)計思路如圖3-9所示:圖3-9 網(wǎng)絡(luò)五子棋網(wǎng)絡(luò)通信原理圖首先開啟效勞器程序為客戶端提供效勞,初始化。然后等待已注冊好的客戶端程序的連接;客戶端主程序開場運行,初始化。通過客戶端代理程序向效勞器端發(fā)送連接處理請求;效勞器端監(jiān)聽到客戶端發(fā)送過來的請求后,進展相應(yīng)的處理,并將處理結(jié)果打包,由效勞器代理程序?qū)⑻幚砗玫慕Y(jié)果包發(fā)送到客戶端;客戶端這時就可以接收

51、到來自效勞器端處理好的數(shù)據(jù)并做相應(yīng)的處理,如客戶端界面刷新顯示數(shù)據(jù)等問題。接著不斷重復(fù)以上操作。從而實現(xiàn)網(wǎng)絡(luò)對戰(zhàn)通信的目的。-. z.第四章 軟件的具體實現(xiàn)4.1準備工作首先用MyEclipse來建一個工程,我將此工程的名字命為:FIR。然后在我所建的工程里建立一個包,包名為goumoku。再在包里面建立我需要的類,建立一個名字為MainFrame的JAVA類,繼承Java*.swing.JFrame這個類,而且同時引入MouseListener 這個監(jiān)聽的接口。通過這個接口實現(xiàn)對五子棋的每項功能進展鼠標監(jiān)聽。然后準備一個算法類Qipan,其中包括三種算法比照,分別為簡單,中等,復(fù)雜三個等級,

52、這樣可以提高游戲者的興趣,根據(jù)自己的技術(shù)選擇相應(yīng)的難度。也包括棋盤的設(shè)計,輸贏的判斷,下子的判斷等功能。最后建立效勞器端和客服端,實現(xiàn)網(wǎng)絡(luò)編程。4.2游戲窗口界面的實現(xiàn)圖4-1 單機游戲主界面當玩家運行程序以后,就會出現(xiàn)個棋盤的主界面。這個界面是有木質(zhì)顏色來作為棋盤的底色。而且棋盤已經(jīng)畫成功。等待玩家下一個步驟,是否選擇聯(lián)機游戲或者選擇單機游戲。當玩家選擇好了單機游戲以后,由于本軟件實現(xiàn)了難度選擇,所以玩家可以選擇難度默認為中等難度,難度分為三種:簡單,中等,困難。在玩家選擇了單機游戲而且又選擇好了難度以后,系統(tǒng)會更具玩家所選擇的游戲難度來表達電腦的水平。當玩家選擇聯(lián)機游戲時,系統(tǒng)會出現(xiàn)等待的

53、界面,當系統(tǒng)掃描局域網(wǎng)的IP,假設(shè)該局域網(wǎng)有個IP也在運行次程序,則主動匹配,完成網(wǎng)絡(luò)游戲的功能。假設(shè)無IP運行,則系統(tǒng)將一直搜索等待。棋盤實現(xiàn)核心代碼如以下圖:圖4-2 棋盤實現(xiàn)核心代碼4.3下棋算法的實現(xiàn)圖4-3 五子棋下棋界面當玩家在選擇是否單機或聯(lián)機以后,就可以下棋了,圖4-1顯示了玩家單機游戲的界面,無論是人機五子棋,還是人人五子棋在下棋的動作方面都如圖4-1所示的方法來顯示。其落子的判定是根據(jù)玩家的鼠標點擊來獲取時間源,然后對鼠標點擊時間判定,獲取鼠標點擊坐標。獲取坐標以后,首先需要判定這個坐標點有無已經(jīng)存在的棋子,假設(shè)存在則點擊無效,假設(shè)不存在,則根據(jù)坐標與最近的十字穿插點相匹配

54、。獲取十字穿插點以后,則系統(tǒng)畫出相對應(yīng)的黑白棋子,下棋子事件就成功了。假設(shè)玩家選取的是單機游戲,則可以選取難度,每個難度等級都有對應(yīng)的算法。三個難度選擇不同,對應(yīng)的算法不同。系統(tǒng)定義為簡單的時候只能滿足以下情況:當計算出的自己已經(jīng)有四個連珠并且至少有一個沒有被其他顏色棋子攔截的情況下,就會自動去補齊。當計算出的對方已經(jīng)有四個連珠并且沒有被攔截住的情況就會去攔截。當計算出的自己已經(jīng)有三個連珠并且沒有被攔截的情況下就會繼續(xù)補齊到第四顆棋子,然后繼續(xù)1號操作。 其他情況則不攔截。系統(tǒng)定義為中等難度時候會滿足當計算出的自己已經(jīng)有四個連珠并且至少有一個沒有被其他顏色棋子攔截的情況下,就會自動去補齊。當計

55、算出的對方已經(jīng)有四個連珠并且沒有被攔截住的情況就會去攔截。當計算出的自己已經(jīng)有三個連珠并且沒有被攔截的情況下就會繼續(xù)補齊到第四顆棋子,然后繼續(xù)1號操作。 當計算出的對方已經(jīng)有三個連珠并且沒有被攔截的情況就會主動去攔截。 當為四三連三三連連的時候它不攔截系統(tǒng)定義為困難難度時候會滿足當計算出的自己已經(jīng)有四個連珠并且至少有一個沒有被其他顏色棋子攔截的情況下,就會自動去補齊。當計算出的對方已經(jīng)有四個連珠并且沒有被攔截住的情況就會去攔截。當計算出的自己已經(jīng)有三個連珠并且沒有被攔截的情況下就會繼續(xù)補齊到第四顆棋子,然后繼續(xù)1號操作。 當計算出的對方已經(jīng)有三個連珠并且沒有被攔截的情況就會主動去攔截。 當計算

56、機即將出現(xiàn)四三連的情況時候,計算機就會自動去補齊。當計算機即將出現(xiàn)三三連的情況時候,計算機就會自動去補齊。困難等級的難度所有三子以上的情況都會攔截圖4-4 五子棋落子點的判斷原則4.4完成判斷勝負的功能圖4-5 五子棋獲勝判定界面當棋局在橫、豎、斜任意一個方向連著五個顏色一樣棋子的時候,在這時候系統(tǒng)就會判斷,假設(shè)是黑子,則系統(tǒng)判斷黑棋獲勝,且彈出一個黑棋獲勝的對話框,如圖4-3所示。當系統(tǒng)判定*種棋子獲勝后,就代表本局已經(jīng)完畢了,玩家可以點擊開場游戲重新開場下一局。也可以在換難度以后,再從新開場游戲。判斷勝負關(guān)鍵代碼如圖4-6所示:圖4-6 五子棋獲勝判斷4.5 系統(tǒng)測試1測試的重要性軟件的測

57、試在軟件生命周期中占據(jù)重要的地位,在傳統(tǒng)的瀑布模型中,軟件測試學(xué)僅處于運行維護階段之前,是軟件產(chǎn)品交付用戶使用之前保證軟件質(zhì)量的重要手段。近來,軟件工程界趨向于一種新的觀點,即認為軟件生命周期每一階段中都應(yīng)包含測試,從而檢驗本階段的成果是否接近預(yù)期的目標,盡可能早的發(fā)現(xiàn)錯誤并加以修正,如果不在早期階段進展測試,錯誤的延時擴散常常會導(dǎo)致最后成品測試的巨大困難。 事實上,對于軟件來講,不管采用什么技術(shù)和什么方法,軟件中仍然會有錯。采用新的語言、先進的開發(fā)方式、完善的開發(fā)過程,可以減少錯誤的引入,但是不可能完全杜絕軟件中的錯誤,這些引入的錯誤需要測試來找出,軟件中的錯誤密度也需要測試來進展估計。測試

58、是所有工程學(xué)科的根本組成單元,是軟件開發(fā)的重要局部。自有程序設(shè)計的那天起測試就一直伴隨著。統(tǒng)計說明,在典型的軟件開發(fā)工程中,軟件測試工作量往往占軟件開發(fā)總工作量的40以上。而在軟件開發(fā)的總本錢中,用在測試上的開銷要占30到50。如果把維護階段也考慮在,討論整個軟件生存期時,測試的本錢比例也許會有所降低,但實際上維護工作相當于二次開發(fā),乃至屢次開發(fā),其中必定還包含有許多測試工作。 在實踐中,軟件測試的困難常常使人望而卻步或敷衍了事,這是由于對測試仍然存在一些不正確的看法和錯誤的態(tài)度,這包括: 認為測試工作不如設(shè)計和編碼那樣容易取得進展難以給測試人員*種成就感; 以發(fā)現(xiàn)軟件錯誤為目標的測試是非建立

59、性的,甚至是破壞性的,測試中發(fā)現(xiàn)錯位是對責任者工作的一種否認; 測試工作枯燥無味,不能引起人們的興趣; 測試工作是艱辛而細致的工作; 對自己編寫的程序盲目自信,在發(fā)現(xiàn)錯誤后,顧慮別人對自己的開發(fā)能力的看法。這些觀點對軟件測試工作是極為不利的,必須澄清認識、端正態(tài)度,才可能提高軟件產(chǎn)品的質(zhì)量。 2測試的目的 如果測試的目的是為了盡可能多地找出錯誤,則測試就應(yīng)該直接針對軟件比擬復(fù)雜的局部或是以前出錯比擬多的位置。 軟件測試是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程; 測試是為了證明程序有錯,而不是證明程序無錯誤; 一個好的測試用例是在于它能發(fā)現(xiàn)至今未發(fā)現(xiàn)的錯誤; 一個成功的測試是發(fā)現(xiàn)了至今未發(fā)現(xiàn)的錯誤的測試。

60、 這種觀點可以提醒人們測試要以查找錯誤為中心,而不是為了演示軟件的正確功能。但是僅憑字面意思理解這一觀點可能會產(chǎn)生誤導(dǎo),認為發(fā)現(xiàn)錯誤是軟件測試的唯一目,查找不出錯誤的測試就是沒有價值的,事實并非如此。 首先,測試并不僅僅是為了要找出錯誤。通過分析錯誤產(chǎn)生的原因和錯誤的分布特征,可以幫助工程管理者發(fā)現(xiàn)當前所采用的軟件過程的缺陷,以便改良。同時,這種分析也能幫助我們設(shè)計出有針對性地檢測方法,改善測試的有效性。其次,沒有發(fā)現(xiàn)錯誤的測試也是有價值的,完整的測試是評定測試質(zhì)量的一種方法。4.6 測試方案4.6.1 界面功能測試1測試目標:系統(tǒng)界面按鈕的可用性。2測試時間:2017年3月20日3測試步驟:

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論