基于Android系統(tǒng)的五子棋游戲開發(fā)與實現(xiàn)_第1頁
基于Android系統(tǒng)的五子棋游戲開發(fā)與實現(xiàn)_第2頁
基于Android系統(tǒng)的五子棋游戲開發(fā)與實現(xiàn)_第3頁
基于Android系統(tǒng)的五子棋游戲開發(fā)與實現(xiàn)_第4頁
基于Android系統(tǒng)的五子棋游戲開發(fā)與實現(xiàn)_第5頁
已閱讀5頁,還剩41頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、題 目基于Android系統(tǒng)的五子棋游戲開發(fā)與實現(xiàn)學生姓名學 號所在系(院)計算機科學與技術(shù)專業(yè)名稱年 級指導教師于桂玲職 稱講師2013年6月10日北京郵電大學畢業(yè)設計(論文)誠信聲明本人聲明所呈交的畢業(yè)設計(論文),題目基于Android平臺的五子棋游戲開發(fā)與實現(xiàn)是本人在指導教師的指導下,獨立進行研究工作所取得的成果,除了文中特別加以標注和致謝中所羅列的內(nèi)容以外,畢業(yè)設計(論文)中不包含其他人已經(jīng)發(fā)表或撰寫過的研究成果,也不包含為獲得北京郵電大學或其他教育機構(gòu)的學位或證書而使用過的材料。申請學位論文與資料若有不實之處,本人承擔一切相關(guān)責任。本人簽名: 日期: 畢業(yè)設計(論文)使用權(quán)的說明本

2、人完全了解北京郵電大學有關(guān)保管、使用論文的規(guī)定,其中包括:學校有權(quán)保管、并向有關(guān)部門送交學位論文的原件與復印件;學??梢圆捎糜坝?、縮印或其它復制手段復制并保存論文;學校可允許論文被查閱或借閱;學校可以學術(shù)交流為目的,復制贈送和交換學位論文;學??梢怨紝W位論文的全部或部分內(nèi)容。本人簽名: 日期: 指導教師簽名: 日期: 北京郵電大學畢業(yè)設計(論文)PAGE 40題目基于Android平臺的五子棋游戲開發(fā)與實現(xiàn)摘要隨著互聯(lián)網(wǎng)的逐步深入,我們的生活也隨之有了很大的改變。Android的代碼是被公開的,它以Linux為基礎,在很短的時間里佇立到了智能機的頂端,所以用Android來對軟件進行開發(fā)很有

3、必要。本文詳細介紹了怎樣用Java語言在Android平臺上編寫游戲。開發(fā)五子棋游戲更重視對系統(tǒng)的分析和設計階段而不僅僅是一個簡單的游戲。本文是嚴格符合軟件工程學中對軟件設計的要求的,先是總體的設計一個大概的軟件周期的計劃,然后按照計劃分開階段對它進行嚴格的管理,并對軟件的大框架設計和細節(jié)設計進行了主要的介紹,程序運行開始后,又繼續(xù)的完善設計,并運用surface重繪等存儲數(shù)據(jù)以致最終得到一個集優(yōu)美的界面、便捷的操作和良好的視覺感應于一身的可操作性系統(tǒng),即“基于Android平臺五子棋游戲的設計與開發(fā)”。關(guān)鍵詞:Android Java 軟件工程 五子棋游戲TitleThe five in a

4、 row game based on AndroidAbstractWith the acceleration development of the Internet, our life has had the very big change. Androids code is open, it is based on Linux, in a very short time stood at the top of the Smartphone, so use Android to software development is necessary. This paper introduces

5、in detail how to use Java language to write the game on the Android platform. Gobang game development more emphasis on system analysis and design stage of the not just a simple game. This article is strictly conform to the requirements of software engineering for software design, first the overall d

6、esign of a general software cycle of plan, and then according to the plan phase separately to strict management, and the framework of software design and detailed design, the main program is running after the start, and continue to perfect the design, and redrawn using surface and other store data s

7、o that eventually get a collection of beautiful interface, convenient operation and good visual induction of operational system, namely Gobang game, based on Android platform of design and development.Keywords:Android Java Software Engineering Five in a Row目 錄 TOC o 1-3 h z u HYPERLINK l _Toc3594983

8、43 1 前言 PAGEREF _Toc359498343 h 1 HYPERLINK l _Toc359498344 1.1 課題研究背景 PAGEREF _Toc359498344 h 1 HYPERLINK l _Toc359498345 1.2 課題研究的意義和目的 PAGEREF _Toc359498345 h 4 HYPERLINK l _Toc359498346 1.3 可行性研究 PAGEREF _Toc359498346 h 5 HYPERLINK l _Toc359498347 1.3.1 技術(shù)可行性 PAGEREF _Toc359498347 h 5 HYPERLINK

9、l _Toc359498348 1.3.2 經(jīng)濟可行性 PAGEREF _Toc359498348 h 6 HYPERLINK l _Toc359498349 1.3.3 操作可行性 PAGEREF _Toc359498349 h 6 HYPERLINK l _Toc359498350 1.4 本章小結(jié) PAGEREF _Toc359498350 h 7 HYPERLINK l _Toc359498351 2 需求分析與系統(tǒng)設計 PAGEREF _Toc359498351 h 8 HYPERLINK l _Toc359498352 2.1 需求分析與創(chuàng)新意義 PAGEREF _Toc35949

10、8352 h 8 HYPERLINK l _Toc359498353 2.1.1 系統(tǒng)的需求分析 PAGEREF _Toc359498353 h 8 HYPERLINK l _Toc359498354 2.1.2 系統(tǒng)的創(chuàng)新與意義 PAGEREF _Toc359498354 h 8 HYPERLINK l _Toc359498355 2.2 系統(tǒng)的功能設計 PAGEREF _Toc359498355 h 9 HYPERLINK l _Toc359498356 2.2.1 人機對戰(zhàn) PAGEREF _Toc359498356 h 9 HYPERLINK l _Toc359498357 2.2.2

11、 人人對戰(zhàn) PAGEREF _Toc359498357 h 9 HYPERLINK l _Toc359498358 2.2.3 關(guān)于 PAGEREF _Toc359498358 h 10 HYPERLINK l _Toc359498359 2.3 系統(tǒng)的組成與實現(xiàn)原理 PAGEREF _Toc359498359 h 10 HYPERLINK l _Toc359498360 2.3.1 系統(tǒng)組成 PAGEREF _Toc359498360 h 10 HYPERLINK l _Toc359498361 2.3.2 系統(tǒng)實現(xiàn)原理 PAGEREF _Toc359498361 h 10 HYPERLIN

12、K l _Toc359498362 2.4 本章小結(jié) PAGEREF _Toc359498362 h 11 HYPERLINK l _Toc359498363 3 客戶端系統(tǒng)的實現(xiàn) PAGEREF _Toc359498363 h 12 HYPERLINK l _Toc359498364 3.1 用戶進入游戲 PAGEREF _Toc359498364 h 13 HYPERLINK l _Toc359498365 3.2 人人對戰(zhàn) PAGEREF _Toc359498365 h 15 HYPERLINK l _Toc359498366 3.3 人機對戰(zhàn) PAGEREF _Toc359498366

13、 h 20 HYPERLINK l _Toc359498367 3.4 關(guān)于 PAGEREF _Toc359498367 h 22 HYPERLINK l _Toc359498368 3.5 本章小結(jié) PAGEREF _Toc359498368 h 22 HYPERLINK l _Toc359498369 4 系統(tǒng)的測試 PAGEREF _Toc359498369 h 23 HYPERLINK l _Toc359498370 4.1 系統(tǒng)的測試環(huán)境 PAGEREF _Toc359498370 h 23 HYPERLINK l _Toc359498371 4.1.1 系統(tǒng)的開發(fā)環(huán)境 PAGERE

14、F _Toc359498371 h 23 HYPERLINK l _Toc359498372 4.1.2 系統(tǒng)運行環(huán)境 PAGEREF _Toc359498372 h 23 HYPERLINK l _Toc359498373 4.2 系統(tǒng)功能測試 PAGEREF _Toc359498373 h 23 HYPERLINK l _Toc359498374 4.2.1 人人對戰(zhàn)測試 PAGEREF _Toc359498374 h 24 HYPERLINK l _Toc359498375 4.2.2 人機對戰(zhàn)測試 PAGEREF _Toc359498375 h 24 HYPERLINK l _Toc3

15、59498376 4.2.3 關(guān)于測試 PAGEREF _Toc359498376 h 25 HYPERLINK l _Toc359498377 4.3 本章小結(jié) PAGEREF _Toc359498377 h 25 HYPERLINK l _Toc359498378 5 系統(tǒng)存在問題及改進方法 PAGEREF _Toc359498378 h 26 HYPERLINK l _Toc359498379 5.1 系統(tǒng)存在的問題 PAGEREF _Toc359498379 h 26 HYPERLINK l _Toc359498380 5.2 系統(tǒng)改進方法 PAGEREF _Toc359498380

16、h 26 HYPERLINK l _Toc359498381 6 結(jié) 論 PAGEREF _Toc359498381 h 27 HYPERLINK l _Toc359498382 致 謝 PAGEREF _Toc359498382 h 29 HYPERLINK l _Toc359498383 參考文獻 PAGEREF _Toc359498383 h 30 HYPERLINK l _Toc359498384 附 錄 PAGEREF _Toc359498384 h 31前言課題研究背景 智能手機,和電腦是一樣的,它不依賴于任何系統(tǒng)而操作,玩家可以自行下載并且安裝軟件或者游戲等應用來不斷的擴充手機的

17、功能,其中包括利用運營商通訊網(wǎng)絡來接入無線進行網(wǎng)絡操作。目前,細數(shù)全球范圍內(nèi)多數(shù)的手機廠商都在做智能手機,例如具有代表性的蘋果、三星、HTC、小米等。我們分析智能手機具備以下五大特點:1. 可以通過無線技術(shù)接入因特網(wǎng),即要有GSM網(wǎng)絡支持下的GPRS或者是CDMA網(wǎng)絡支持下的CDMA 1X或3G網(wǎng)絡。2. 比較人性化,可以根據(jù)個人需求自行更改主題界面等。3. 具有開放性,可以根據(jù)不同用戶的需求自行下載安裝特別多的應用程序,比如社交軟件或者游戲等,從而可以達到無限的擴充智能手機功能的效果。4. 具有PDA(掌上電腦)功能,例如有文件的管理、便簽、地圖搜索、網(wǎng)頁瀏覽、多媒體播放、辦公軟件、應用程序

18、管理等。5.具有很強大的功能,可以在很多的地方下載并安裝別的軟件。Android的誕生:準確的來說是在二零零三年,創(chuàng)始人Andy Rubin在Android的傳奇開始之前就說過:“我們有很大的潛力來開發(fā)能夠捕捉用戶地理位置信息以及狀態(tài)的不固定的設備。如果這些設計者很有想法的話,那么在很短的時間內(nèi)這些東西就會被應用到那些產(chǎn)品中?!爆F(xiàn)在看,估計創(chuàng)始人自己都不會想到他的預言是這么的準確。事實上,我們可以預見未來在移動領域?qū)芯薮蟮母淖?,從而催生出類似于概念機那樣新穎、獨特、超前的智能機。二零零五年的時候,有很多謠傳說Google通過專注于制造可以捕捉位置服務的手機從而進軍手機制領域,但是擺在它面前

19、最大難題就是它并沒有實現(xiàn)這個愿望的可搭載的平臺。Google在二零零五年的七月收購了 Android,雖然是一次小規(guī)模的收購行動,但大家懷疑這標志著Google進入了移動市場,所以還是立刻就引起了業(yè)界的大力關(guān)注。盡管是這樣,在那個時候,這個發(fā)展沒有很壯大的做軟件的公司正是由 Andy Rubin、Rich Miner、Nick Sears 以及 Chris White 四個人共同創(chuàng)建的。現(xiàn)在看來,他們的疑慮是對的。差不多就在 二零零七年十一月五日的時候,Google對公眾開放了Android,這個不僅僅是一個基于Linux的全新的移動操作系統(tǒng),最重要的是它完全是不保密設計代碼的,不用說,這在業(yè)

20、內(nèi)肯定會使人們震驚,做出很大的改變。這是當時新成立的開放手機聯(lián)盟整合下的成果,諸如 Google、HTC、Intel、Sprint-Nextel、T-Mobile 以及 NVIDIA 都是一個組織的成員,這個組織是為了給所有的設備建造一個共同的可使用的標準。第一款搭載 Android 系統(tǒng)的手機是 2008 年 9 月由 T-Mobile 發(fā)布的 G1,它擁有 GPS 功能,3.1M 攝像頭,以及一系列的 Google 應用。G1 的面市,正式拉開了一場巨大變革的序幕,不僅僅是Google,更是對于整個移動業(yè)界。2009 年 5 月發(fā)布了第一個主要版本Android 1.5 “Cupcake”

21、。在對它進行升級之后,用戶界面有了很大的改善,新的版本無疑給用戶帶來了全新的體驗,并且它還增加了一些功能。Android 1.6 “Donut” 2009 年 9 月發(fā)布。搭載Android 1.6 的 HTC Hero 獲得了意想不到的成功。不僅得到了一些從未有過的關(guān)注,讓許多客戶真正對Android產(chǎn)生興趣,而且更觸動了蘋果和微軟兩家競爭者的敏感神經(jīng)。Android 2.0/2.1:,又有一個很重要的版本在2009 年 10 月 26 日完成,這次完成的速度可以說是相當快的,無與倫比。這次,大版本升級到了 Android 2.0/2.1 “Eclair”。繼2009 年 12 月發(fā)布的An

22、droid 2.0.1 SDK后,是在2010 年 1 月發(fā)布的2.1 版本。會有很多的看客甚至是用戶都會奇怪,為什么Android的系統(tǒng)版本代號會被稱作甜點,其實是在 Android 1.5 發(fā)布出來的時候開始使用的這個命名的方法。按照字母的順序,依次是小蛋糕,甜甜圈和松餅,所以每更新一個版本就可以被想象成是對它的大小的擴充。Android 2.2 “FroYo”:Nexus One 的用戶已經(jīng)開始接受 Android 2.2 “FroYo”的無線更新,并會在很快速的時間內(nèi)使所有使用其他手機的玩家能夠使用這個新的版本。這個系統(tǒng)版本新的升級,讓很多的使用其他手機的人們很是羨慕,因為它有很好的界

23、面,還增加了許多新的功能,玩家使用會有新的感受。有關(guān)的消息眾口一詞聲稱 Android 3.0 “Gingerbread”,它會讓用戶有更新穎的更獨特的體驗,并且Google 估計會在今年秋天的時候?qū)⑺l(fā)布出來??v觀Android的發(fā)展史,在2003年的時候,出現(xiàn)了特別有遠見的Andy,他的預言得到了證實,2005年經(jīng)歷了正式起步以及被Google收購。一路以來,系統(tǒng)一直在進步,并且新的機型也一直在快速的發(fā)布。通過這一切,我們有理由相信,Android很有可能會成為手機系統(tǒng)同行業(yè)內(nèi)的最優(yōu)秀的,這樣的勢頭,不容易被改變。Android 平板電腦也在今年的夏天開始發(fā)布以及 Google TV 發(fā)布

24、以后(也許還有 Google Music),Android 有很大的可能讓我們領會未來手機的發(fā)展趨勢,讓我們具有不一樣的體驗10。Android平臺對比其他的平臺有很多的有點。首先分析Symbian,主要是在諾基亞手機上運行,雖然說已經(jīng)發(fā)展的很成熟,但是它在理念上與我們平時經(jīng)常用的系統(tǒng)還是有很大的差別,整個感覺上還是偏向于以前舊一點的設計。重要的是它對互聯(lián)網(wǎng)并沒有連接的特別好,不能夠讓用戶體驗到特別滿意的聯(lián)網(wǎng)速度,在這樣一個信息化時代就顯得沒有競爭力。但是Android不同,它最主要最關(guān)注的就是對于聯(lián)網(wǎng)這一塊兒,不管是軟件還是硬件的設計,都是在主要突出互聯(lián)網(wǎng)的重要,正好是彌補了Symbian最

25、大的不足。這樣,就會讓用戶更好更舒適的感受信息化時代,所以更容易贏得用戶的喜愛,得到廣大用戶的接受與認可。還有就是現(xiàn)在比較流行的ios,雖然它有很完整的應用,可以給用戶帶來很多很豐富的體驗,但是它只是相對于蘋果用戶而言,并不可以針對多數(shù)的手機用戶。但是Android同樣不同于ios,它是完全開放的,這樣更多的開發(fā)者可以為其設計多種多樣不同的應用,繼而迎來越來越多的開發(fā)創(chuàng)意,進而豐富其應用領域。而且,它具有一定的標準,各種不同的平臺都可以兼容使用,所以完全可以植于好多的手機品牌上,這樣更有利于它的推廣,讓更多的用戶熟知。總的來說,現(xiàn)在流行的系統(tǒng)中,從不同的方面都可以看出Android系統(tǒng)相比其他

26、系統(tǒng)的優(yōu)勢,可以說它擁有很多手機用戶的支持者2。 所以完全可以這樣說,隨著人們對移動設備的要求變得越來越高,那就必須有能夠逐漸滿足這樣一個高要求的開發(fā)平臺,那么Android就是在這樣的環(huán)境下應運而生的。綜合的來講,它完全符合目前的趨勢,可以說是真正意義上的一個具有開放性的綜合平臺,不論是開發(fā)軟件的公司還是搞研發(fā)的個人,都可以用它來作為開發(fā)的基礎。在技術(shù)方面,由于它具有很強的可操作性,人們在編寫程序的時候可以根據(jù)自己的意向來實現(xiàn),這樣就給開發(fā)者進行創(chuàng)新提供了很大的可能。在成本方面,只要擁有編程的技術(shù)就可以在Android平臺上進行功能的實現(xiàn),是很節(jié)約的,因此它就完全可以降低不少的成本。設計者們

27、可以在此基礎上設計出具有個性特色的各類應用,所以,綜合用戶的需求,并從軟件這個很大的市場來說,Android很明顯具有很大的發(fā)展?jié)摿?。課題研究的意義和目的游戲,作為一種娛樂項目,在我們現(xiàn)在這樣會面臨很多壓力的生活中,真的是一類不可或缺的活動。在我們的生活中,游戲的種類有千種萬種,不同的游戲也會給人帶來不同的放松和娛樂感受,正因為它的必不可少性,帶動很大一部分人來研究越來越多的游戲,這不經(jīng)意間就豐盛了手機游戲行業(yè)。隨著歷史的發(fā)展,游戲也有了很大的發(fā)展和改變,從之前最簡單的到后來在電視上進行的游戲,繼而到pc游戲,再到現(xiàn)在的手機游戲,其發(fā)展過程也經(jīng)歷了很多樣的技術(shù)革新。隨著我們生活水平的日益發(fā)展

28、和新技術(shù)的偉大變革,手機逐漸在我們的生活中普及起來,它小巧玲瓏,功能強大,并且方便攜帶,這些特性都讓它最終成為我們生活中的必需品。隨著3g以至4g的開通及應用,手機必然會迎來一輪更深層次的普及,而可以讓用戶在手機上玩游戲也就隨著手機火爆起來,因此這類游戲的研究還是有很大的發(fā)展空間的,必將會迎來手機用戶的追捧!五子棋,它可以說是一種棋牌類的游戲,是需要有一定的策略的。棋盤和圍棋是通用的,有黑色和白色棋子兩種,但規(guī)則相對來說就比較簡單了,在我國古代,是比較流行的棋術(shù)之一。兩個人進行游戲,各拿一個顏色的棋子,一人接一人輪流落子,經(jīng)過主動進攻或者是防守,直到有一方會出現(xiàn)五顆或者五顆以上的棋子連成一條線

29、,就判定這一方獲勝,那么游戲?qū)⒔Y(jié)束。由于落子之后棋子不像象棋那些可以隨意的移動位置,有時候也是可以用紙質(zhì)的棋盤和筆來進行的。該游戲由于規(guī)則簡單,很容易就可以上手的,而且老少皆宜,玩起來比較有趣,不僅需要很好的策略,也需要隨時來處理不同的情況。這樣的游戲簡單易玩,并且鍛煉思維,更對于小孩兒來說,可以開發(fā)智力。這些在手機上開發(fā)的游戲,更是對方便快捷悠閑的最好體現(xiàn)。五子棋會有很強大的客戶群,即使是之前完全沒有接觸過該游戲的人也可以輕而易舉的明白具體的玩兒法,并且會感覺到特別有趣;它是以手機平板平臺為主的,只要是裝載它的話就可以隨時來玩兒,這樣在人們感受特別方便的同時,還可以享受現(xiàn)在這樣的高科技生活下

30、的悠閑;這個游戲還需要一定的策略,每走一步都會引起思考,但是卻不會給人帶來壓迫感,就是這樣略微輕松的思考,鍛煉了思維的同時也娛樂了身心。所以,綜合上述該游戲的各方面好處,設計在手機上可以進行此游戲的應用就顯得很重要了。本課題的目的是基于Android平臺,設計出一款基于Android平臺的五子棋游戲,該游戲?qū)⒖梢酝嫒巳藢?zhàn)及人機對戰(zhàn)兩類。可行性研究這個階段,在對系統(tǒng)的目標進行了初步的調(diào)查和分析的基礎上,得出了一個可行性方案,并對其進行了論證。本文主要從三個可行性方面進行了分析,分別是技術(shù)、經(jīng)濟和操作。技術(shù)可行性技術(shù)可行性有很多因素要考慮到,比如說目前擁有的技術(shù)條件是否可以滿足使得游戲可以最終達

31、到計劃的要求,軟件和硬件的型號級別能否跟上完成的節(jié)奏等。本軟件用的是Java語言進行的,它的操作相對來說比較簡單,現(xiàn)在使用的計算機的硬件方面也完全跟得上研發(fā)的節(jié)奏。軟件方面:在不用聯(lián)網(wǎng)的模式已經(jīng)發(fā)展的很強大的前提下,軟件就有了很好的發(fā)展平臺,它們具有很多的優(yōu)勢,比如很快的速度、高的可靠性、低的價格和大的容量,系統(tǒng)的需求完全能夠得到滿足。所以從技術(shù)層面上講是一定可以的。我們經(jīng)常需要根據(jù)不同的客戶需求來設計出好多不同的功能,然后把這些功能嵌入整合到一個產(chǎn)品中,整合配置到那種大型的計算機系統(tǒng)中,這就是所謂的嵌入式系統(tǒng)。隨著時代一步步的發(fā)展,計算機慢慢在和通信技術(shù)融合,慢慢的深入到人們生活中的各個層面

32、,信息無處不在,獲取的方式越來越網(wǎng)絡化,信息化已經(jīng)成為一個不可避免的大趨勢,所有在這樣一個大的背景下,嵌入式的發(fā)展也得到了不可估量的前景。目前的嵌入式已經(jīng)深入到我們?nèi)粘I钪械母鱾€行業(yè),它的使用或許也遠遠高過了普通的計算機系統(tǒng),包括通訊網(wǎng)絡等,。其中最典型的一個代表就是手機的嵌入式,給我們帶來了很大的便利,為我們的生活增添了很多不一樣的樂趣。經(jīng)濟可行性我們可以通過去圖書館借閱有關(guān)聯(lián)的圖書或者上網(wǎng)搜索等途徑來獲得開發(fā)該應用所需要的有關(guān)聯(lián)的圖書資料,并且其中所需的應用相關(guān)方面的軟件和硬件也是很容易找到的,總之所需的成本是比較低的,所以說從經(jīng)濟層面來看是可以的。操作可行性Eclipse 是一個開放源

33、代碼的研發(fā)平臺,它是基于 Java 的,是可擴展的。Eclipse是利用特殊規(guī)范的代碼來形成一個可供研發(fā)的程序,但是對于它自己而言,只是一個大概的結(jié)構(gòu)和一些可供使用的命令。令人欣慰的是Eclipse 附帶了一個標準的插件集,包括 Java 開發(fā)工具(Java Development Tools,JDT)。它主要由Eclipse項目、Eclipse工具項目和Eclipse技術(shù)項目三個項目組成,具體包括四個部分組成Eclipse Platform、JDT、CDT和PDE。JDT支持Java開發(fā)、CDT支持C開發(fā)、PDE用來支持插件開發(fā),Eclipse Platform則是一個開放的可擴展IDE,它

34、構(gòu)造并且運行了集成軟件開發(fā)工具的基礎,提供構(gòu)造塊,并且向用戶提供了一個通用性的開發(fā)平臺。Eclipse Platform對任何一個工具可以實現(xiàn)的結(jié)果從什么地方開始或者別的從什么地方結(jié)束是沒有辦法區(qū)分的,因為它不限制工具的制造者與其他的工具是不需要格式的轉(zhuǎn)換的。Eclipse SDK(軟件開發(fā)者包)是Eclipse Platform、JDT和PDE所生產(chǎn)的組件合并,它們是不必要分開下載的。這些組合合并在一起共同組成了一個超級豐富并完善的可供開發(fā)的程序,開發(fā)者可以通過它建造一種工具,能夠不受限制不用進行轉(zhuǎn)換格式就可以連接到Eclipse Platform。Eclipse SDK是由兩部分組成的,一

35、個是Eclipse項目生產(chǎn)的工具,另外的來自第三方軟件,它們是開放源代碼的。這兩部分的協(xié)議是不一樣的,其中第一部分Eclipse自己產(chǎn)生的軟件通過GPL發(fā)布,而第二部分的第三方軟件是具有自己的許可協(xié)議的7。從以上的論述可以看出,本軟件的開發(fā)完全具備技術(shù)、經(jīng)濟和操作三個方面的可行性。本章小結(jié)本章主要是從研究的背景、目的和意義三個方面對五子棋游戲在Android平臺上的研發(fā)和完成的情況進行了詳細的介紹,并分析了該設計是不是可以運行的,分別是技術(shù)、經(jīng)濟和操作三個方面。需求分析與系統(tǒng)設計在Android的系統(tǒng)上來研發(fā)五子棋游戲,并讓它順利運行,這樣一個游戲的開發(fā)確保了用戶可以隨時隨地的進行并且通過它來

36、鍛煉自己的大腦。通過本系統(tǒng),用戶只要使用Android手機,并且安裝有本軟件,就可以再無聊之余一邊進行五子棋游戲,一邊來感受這樣的小游戲帶來的清新與悠閑。用戶可以通過五子棋游戲來享受愉悅的游戲氛圍,娛樂自己,放松身心。需求分析與創(chuàng)新意義下面從在Android上來對五子棋游戲研發(fā)和運行的幾個方面來展現(xiàn)五子棋游戲包含的樂趣,首先是游戲的簡單需求分析,然后是簡要的描述該系統(tǒng)的創(chuàng)新點和意義。系統(tǒng)的需求分析本系統(tǒng)的目的就是開發(fā)一個在Android上進行研發(fā)的五子棋游戲,有人人對戰(zhàn)和人機對戰(zhàn)兩個類別供玩家選擇,這兩種類別的選擇或者切換玩家是可以利用操作不同的按鈕來進行的。通過本系統(tǒng),用戶可以選擇人人對戰(zhàn)與

37、自己的好友一同進行游戲,增進朋友之前的友誼,也可以選擇人機對戰(zhàn),與功能強大的電腦一決高下。主要包括的功能有:人人對戰(zhàn),人機對戰(zhàn),關(guān)于。該系統(tǒng)功能全面,并且具有良好的界面和易用性,可以給用戶帶來全新的游戲體驗。系統(tǒng)的創(chuàng)新與意義就目前android軟件市場上來說,已經(jīng)有很多類似的五子棋的游戲,但是大多游戲都只是人機對戰(zhàn),沒有實現(xiàn)人機對戰(zhàn)與人人對戰(zhàn)結(jié)合,本游戲的目的就是為了整合人機對戰(zhàn)與人人對戰(zhàn),將他們結(jié)合到一個游戲中。而且如果游戲者想要轉(zhuǎn)換或者改變游戲的屬性是可以通過摁游戲設置那個按鈕來進行的,游戲設置那個按鈕設計在主界面上。在游戲設置中,用戶可以修改游戲的難易程度,游戲的趣味洗牌,是否標記行和列

38、,是否為反向等等。系統(tǒng)的功能設計本系統(tǒng)主要分為三大塊,分別為人機對戰(zhàn),人人對戰(zhàn),關(guān)于。人機對戰(zhàn)人機對戰(zhàn)就是當用戶點擊手機上的歡樂五子棋圖標時,進入到主界面之后,可以摁那個人機對戰(zhàn)按鈕來開始。摁那個人機對戰(zhàn)的按鈕,屏幕會更改所選的界面。人機對戰(zhàn)中,默認設置是白色棋子屬于電腦,而黑色棋子屬于玩家,并且在游戲過程中無論是玩家還是電腦,只要有一方所用的棋子有五顆及以上的棋子連在一起,則系統(tǒng)會判定該方獲勝,反之則失敗。人人對戰(zhàn)人人對戰(zhàn)就是當用戶進入到游戲最開的那個界面的時候,摁那個人人對戰(zhàn)按鈕從而開始的游戲。利用將講監(jiān)聽器與空間button綁定一起通過相應算法實現(xiàn)摁那個人人對戰(zhàn)按鈕,屏幕將會更改到人人對

39、戰(zhàn)棋盤界面,該界面與人機對戰(zhàn)界面是一樣的,區(qū)別只是棋子所執(zhí)者不一樣。在該游戲過程中是沒有電腦人工智能計算機算法的。而是游戲玩家可以找一個自己的好朋友一起來玩游戲的。在人人對戰(zhàn)那個游戲中兩個人分別擁有白色和黑色棋子,應為五子棋游戲規(guī)則就是黑子先行,所以默認第一玩家為黑子,第二玩家為白子,并且在棋子的數(shù)組中儲存兩種顏色的點的圖樣分別是黑子為0白字為1,系統(tǒng)默認第一個落子的玩家為黑子,第二個落子的玩家為白子。當每次落子之后,系統(tǒng)會判斷一次是否獲勝當黑色或者白色的棋子有五顆及以上連在一起的,則系統(tǒng)會判定該棋子所執(zhí)者獲勝,反之則失敗,并且會彈出對話框顯示“黑子獲勝”或者“白字獲勝”。關(guān)于當用戶對此游戲有

40、疑問時,比如該游戲的作者或者是該作者的信息等,可以點擊主界面的關(guān)于按鈕,這是屏幕上會出現(xiàn)一個對話框,上面詳細介紹所要看的內(nèi)容。系統(tǒng)的組成與實現(xiàn)原理下面從“歡樂五子棋”游戲的組成部分來闡述程序的設計原理。系統(tǒng)組成“歡樂五子棋”游戲主要包括三大功能點,通過三大功能點來完成人人對戰(zhàn),人機對戰(zhàn),關(guān)于等功能。(如圖2.1所示)圖2.1 系統(tǒng)組成部分系統(tǒng)實現(xiàn)原理游戲是怎么樣運行的,原理有下面幾點:玩家用戶進入該系統(tǒng)開始游戲后,系統(tǒng)調(diào)用的都是同一張棋盤,不管游戲者選擇的是人人對戰(zhàn)模式還是人機對戰(zhàn)模式,其中的區(qū)別只是在棋盤中所執(zhí)行的方法不同。不管游戲者選擇的人和人玩還是人和機玩,當白子或者黑子,任意一種顏色的

41、棋子五顆及以上連在一起的時候,系統(tǒng)將判定該顏色棋子所執(zhí)者贏得了游戲(如圖2.2所示)。圖2.2 系統(tǒng)實現(xiàn)原理本章小結(jié)本章內(nèi)容主要是略微介紹了一下“歡樂五子棋”游戲的需求分析,創(chuàng)新與意義,還有三大功能模塊的設計,同時對本系統(tǒng)的組成部分以及系統(tǒng)實現(xiàn)的原理進行了詳細的分析說明,從而為接下來在編寫程序模塊時能夠思路清晰。客戶端系統(tǒng)的實現(xiàn)在Eclipse中新建一個命名為MyGobang的Android工程,Build Target選擇Android2.2。在本工程中共有5個包10個類(如圖3.1所示)。圖3.1 五子棋游戲系統(tǒng)類全圖其中比較重要的類有:在activity包中,MyGobangActivi

42、ty.java類用來顯示該游戲的主界面。OfAllWarActivity.java類用來顯示人人對戰(zhàn)的界面。TheWarMachineActivity.java類用來顯示人機對戰(zhàn)的界面。在base包中,BaseComputerAi.java類用來存放人機對戰(zhàn)的算法,BasePlayer.java類用來存放人人對戰(zhàn)的算法。在entity包中,Chessboard.java類為棋盤類,改類用于棋盤界面的顯示。Point.java類為每顆棋子所落的點的實體類。在utils包中,HumanPlayer.java為人類玩家的一個實例。在res/layout中,有兩個文件需要被創(chuàng)建:游戲的原始界面的xml

43、文件是main.xml,play.xml文件為顯示棋盤的主界面。用戶進入游戲第一次啟動Android拼圖游戲程序會進入到程序的主界面。在游戲的主界面中,用戶可以摁不同的功能選項按鈕來選擇對應功能。例如游戲用戶可以綜合自己的喜好,通過點擊人人對戰(zhàn)、人機對戰(zhàn)或者是關(guān)于按鈕來分別進入三類不同模式的界面(如圖3.2所示)。圖3.2 游戲主界面主要代碼如下:public void onCreate(Bundle savedInstanceState)super.onCreate(savedInstanceState); setContentView(R.layout.main); findViews()

44、;private void findViews()mHumanBtn = (Button) findViewById(R.id.button1);mComputerBtn = (Button) findViewById(R.id.button2);mAboutBtn = (Button) findViewById(R.id.button3);mHumanBtn.setOnClickListener(this);mComputerBtn.setOnClickListener(this);mAboutBtn.setOnClickListener(this);依據(jù)自己的喜好不同,用戶可以選擇摁原始面

45、上任何一個功能按鈕,即可以摁人和人玩的按鈕、人和機玩的按鈕或者關(guān)于按鈕來分別進入人人玩模式、人機玩模式或者關(guān)于功能,進而屏幕上將會轉(zhuǎn)換出所選擇按鈕對應的框框來展示,每個Activity之間的轉(zhuǎn)換是通過Intent來實現(xiàn)的,Intent負責對應中一次操作的動作、動作涉及數(shù)據(jù)、附加數(shù)據(jù)進行描述,Andorid則根據(jù)此Intent的描述,負責找到對應的組件,將Intent傳遞給調(diào)用的組件,并且完成組件的調(diào)用。在本程序中一共有三個Activity分別是主界面,人人對戰(zhàn)以及人機對戰(zhàn)界面,通過把事件與Button綁定一起,利用Intent意圖功能來實現(xiàn)Activity的相互調(diào)用,從而達到我們所預期的玩家可

46、以在主界面上選擇相應模式,并且跳轉(zhuǎn)到相應界面功能的效果,其中主體是通過Switch選擇語句實現(xiàn)的。主要代碼如下:public void onClick(View v)intent = new Intent();switch (v.getId()case R.id.button1:intent.setClass(this, OfAllWarActivity.class);startActivity(intent);break;case R.id.button2:intent.setClass(this, TheWarMachineActivity.class);startActivity(int

47、ent);break;case R.id.button3:new AlertDialog.Builder(this).setTitle(作者:麻博超).setMessage(學號:09060118).setPositiveButton(確定,new DialogInterface.OnClickListener()public void onClick(DialogInterface dialog, int which)dialog.cancel();).show();break;人人對戰(zhàn)當用戶玩家想要跳轉(zhuǎn)到人和人玩的界面,可以在主界面摁人人玩的按鈕來運行。進入該界面后,玩家自己可以扮演兩個角

48、色,或者用戶可以邀請一位好友,與好友一同切磋棋藝,(如圖3.3所示)。圖3.3 人人對戰(zhàn)界面主要代碼如下:protected void onCreate(Bundle savedInstanceState)super.onCreate(savedInstanceState);setContentView(R.layout.play);gameView = (Chessboard)findViewById(R.id.myBang);gameView.player2 = Chessboard.human;我們在這里可以看到控制界面的Activity的setContentView()方法中的view

49、為play.xml。Play.xml文件的代碼如下: 這里的布局文件中的元素引用的是entity包中的ChessBoard.java類,這個類繼承的是view,作用是用于顯示棋盤。主要代碼如下:(1)這里把代表不同顏色的許多點分別存入數(shù)組Resources r = this.getContext().getResources();fillPointArrays(BLACK, r.getDrawable(R.drawable.black);fillPointArrays(WHITE, r.getDrawable(R.drawable.white);(2)設置畫線時用的顏色paint.setCol

50、or(Color.LTGRAY);(3)初始化好倆種顏色的點public void fillPointArrays(int color, Drawable drawable) Bitmap bitmap = Bitmap.createBitmap(pointSize, pointSize,Bitmap.Config.ARGB_8888);Canvas canvas = new Canvas(bitmap);drawable.setBounds(0, 0, pointSize, pointSize);drawable.draw(canvas);pointArraycolor = bitmap;(

51、4)以上代碼為初始化棋盤上的可以落子的點,和初始化兩種顏色的棋子,但是棋盤上還要有橫豎相間的線,主要代碼如下:protected void onSizeChanged(int w, int h, int oldw, int oldh)maxX = (int) Math.floor(w / pointSize);maxY = (int) Math.floor(h / pointSize);xOffset = (w - (pointSize * maxX) / 2);yOffset = (h - (pointSize * maxY) / 2);createLines();restart();(5)

52、產(chǎn)生棋盤上所有的線private void createLines()for (int i = 0; i = maxX; i+)lines.add(new Line(xOffset + i * pointSize - pointSize / 2,yOffset, xOffset + i * pointSize - pointSize / 2, yOffset+ maxY * pointSize);for (int i = 0; i = maxY; i+)lines.add(new Line(xOffset,yOffset + i * pointSize - pointSize / 2, xOf

53、fset + maxX* pointSize, yOffset + i * pointSize - pointSize/ 2);(6)畫出棋盤private List lines = new ArrayList();private void drawChessboardLines(Canvas canvas)for (Line line : lines)canvas.drawLine(line.xStart, line.yStart, line.xStop, line.yStop,paint);(7)當加載完棋盤之后,第一個玩家觸摸屏幕中的任意一個點,將獲取到觸摸點的位置,主要代碼如下: pr

54、ivate Point newPoint(Float x, Float y)Point p = new Point(0, 0);for (int i = 0; i maxX; i+)if (i * pointSize + xOffset) = x& x (i + 1) * pointSize + xOffset)p.setX(i);for (int i = 0; i maxY; i+)if (i * pointSize + yOffset) = y& y (i + 1) * pointSize + yOffset)p.setY(i);return p;當?shù)谝粋€用戶點擊某一個點之后,將黑子放到該

55、點上,第二個用戶點擊其他的點,然后在這個點上放上白色的棋子,依次類推(如圖3.4所示)。圖3.4 人人對戰(zhàn)主要代碼如下:private void player1Run(MotionEvent event)Point point = newPoint(event.getX(), event.getY();if (allFreePoints.contains(point)setOnProcessing(); player1.run(player2.getMyPoints(), point); refressCanvas();if (!player1.hasWin()if (player2 = co

56、mputer) refreshHputerRunAfter(10); elsesetPlayer2Run(); else setMode(PLAYER_TWO_LOST);private void player2Run(MotionEvent event)Point point = newPoint(event.getX(), event.getY();if (allFreePoints.contains(point)setOnProcessing();player2.run(player1.getMyPoints(), point);refressCanvas();if (!player2.

57、hasWin() setPlayer1Run(); elsesetMode(PLAYER_ONE_LOST);當有任何一種顏色的五顆及以上棋子出現(xiàn)連在一條線的情況,系統(tǒng)會判定該顏色棋子的所執(zhí)者取得勝利,反之另一方則失敗。并且一旦出現(xiàn)勝負的情況,玩家將不可以繼續(xù)下棋,即游戲結(jié)束(如圖3.5所示)。圖3.5 勝利狀態(tài)判斷橫向縱向是否有五顆棋子連成一條直線的代碼如下:public final boolean hasWin()if (myPoints.size() = 0 & count = 5)return true;temp.setX(x).setY(y);while (myPoints.cont

58、ains(temp.setX(temp.getX() + 1)& temp.getX() maxX & count = 5)return true; 縱向:判斷在所落子點的Y軸負方向與正方向分別存在子數(shù)count = 1;temp.setX(x).setY(y);while (myPoints.contains(temp.setY(temp.getY() - 1)& temp.getY() = 0)count+;if (count = 5)return true;temp.setX(x).setY(y);while (myPoints.contains(temp.setY(temp.getY(

59、) + 1)& temp.getY() maxY & count = 5)return true;判斷斜向是否有五顆棋子練成一條直線的代碼如下:正斜:判斷X軸負方向Y軸正方向以及X軸正方向Y軸負方向落子數(shù)。count = 1;temp.setX(x).setY(y);while (myPoints.contains(temp.setX(temp.getX() - 1).setY(temp.getY() + 1)& temp.getX() = 0 & temp.getY() = 5)return true;temp.setX(x).setY(y);while (myPoints.contains

60、(temp.setX(temp.getX() + 1).setY(temp.getY() - 1)& temp.getX() = 0 & count = 5)return true;反斜: 判斷X軸負方向Y軸負方向以及X軸正方向Y軸正方向落子數(shù)count = 1;temp.setX(x).setY(y);while (myPoints.contains(temp.setX(temp.getX() - 1).setY(temp.getY() - 1)& temp.getX() = 0 & temp.getY() = 0)count+;if (count = 5)return true;temp.

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 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

提交評論