基于Android平臺的五子棋游戲開發(fā)_第1頁
基于Android平臺的五子棋游戲開發(fā)_第2頁
基于Android平臺的五子棋游戲開發(fā)_第3頁
基于Android平臺的五子棋游戲開發(fā)_第4頁
基于Android平臺的五子棋游戲開發(fā)_第5頁
已閱讀5頁,還剩19頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

基于android平臺的五子棋游戲開發(fā)基于Android平臺的五子棋游戲開發(fā)目錄TOC\o"1-3"\h\u摘要 4Abstract 5第1章引言 61.1五子棋游戲開發(fā)現(xiàn)狀分析 61.2項目開發(fā)的背景和意義 61.3國內(nèi)外現(xiàn)狀分析 71.4論文的主要工作 7第2章相關技術介紹 82.1五子棋游戲的開發(fā)方法 82.2游戲開發(fā)環(huán)境技術 82.2.1androidstudio概述 82.2.2Java語言簡介 8第3章研究方法 93.1問卷調(diào)查法 93.2文獻研究法 9第4章系統(tǒng)設計和模塊實現(xiàn)原理 104.1實現(xiàn)游戲的背景的模塊 104.2實現(xiàn)游戲?qū)?zhàn)模式的兩個模塊 104.2.1人機對弈 104.2.2人機對弈的實現(xiàn) 104.2.3玩家對弈 104.2.4玩家對弈的實現(xiàn) 104.3功能結(jié)構(gòu)圖(圖4-1) 104.4E-R圖(圖4-2) 114.5流程圖(圖4-3) 12第5章系統(tǒng)分析 135.1技術可行性分析 135.2經(jīng)濟可行性分析 135.3社會可行性分析 135.4項目需求分析 135.5功能需求分析 14第6章游戲主要代碼及最終呈現(xiàn)圖 156.1游戲界面的實現(xiàn)主要代碼 156.1.1繪制棋盤 156.2主頁面按鍵的設置(以人人對弈為例) 156.3人人對弈的主要代碼 166.4人機對弈的主要代碼 166.5從六個方向中判斷勝負的主要代碼(以橫向為例) 176.6游戲結(jié)束后界面的提示(包括重來、查看棋盤、退出) 176.7核心算法 186.8主頁面截圖 18第7章系統(tǒng)測試與結(jié)果分析 217.1系統(tǒng)的開發(fā)環(huán)境 217.2系統(tǒng)功能測試 217.2.1人人對戰(zhàn)測試 217.2.2人機對戰(zhàn)測試 217.3系統(tǒng)存在問題以及改進方法 22總結(jié)和展望 23總結(jié) 23展望 23致謝 24參考文獻 25

摘要五子棋游戲開發(fā)是基于手機游戲發(fā)展而誕生的一個休閑開發(fā)項目。Java與c語言技術對在Android實現(xiàn)數(shù)據(jù)的傳遞和檢索提供了良好的支持,符合手機游戲開發(fā)的要求。本課題開發(fā)的五子棋游戲采用androidstudio開發(fā),優(yōu)勢在于結(jié)構(gòu)簡單、功能齊全、擴展能力良好以及趣味性大。該課題主要的設計內(nèi)容是基于Android開發(fā)的五子棋游戲,這款游戲不僅能夠?qū)崿F(xiàn)人機對戰(zhàn)還能夠?qū)崿F(xiàn)好友對戰(zhàn),當你獨自想練習棋藝的時候就能選擇人機對戰(zhàn),會有不同的難易程度,當與朋友聚會感到無聊時也可邀請朋友來進行一次比賽。在這款游戲中不僅能選擇闖關難度還能保存游戲進度,可以自由調(diào)整自己喜歡的頁面,操作方便,簡潔易懂,無論是第一次參與五子棋游戲的新手又或是棋藝精湛的高手,都能在這款游戲中碰到旗鼓相當?shù)膶κ郑o予你十足的游戲體驗感。其中游戲開發(fā)的構(gòu)成有:游戲模式、游戲選項、系統(tǒng)設置、幫助,游戲模式中包括人機對弈、人人對弈,游戲選項中包括重新開始游戲、退出,系統(tǒng)設置中包括落子音效和棋盤背景,幫助中包括游戲規(guī)則。關鍵詞:android游戲,休閑娛樂益智,游戲平臺前景

AbstractThedevelopmentofgobanggameisaleisuredevelopmentprojectbasedonthedevelopmentofmobilegames.JavaandclanguagetechnologyprovidesgoodsupportfordatatransmissionandretrievalonAndroid,whichmeetstherequirementsofmobilegamedevelopment.Thegobanggamedevelopedinthisprojectisdevelopedbyandroidstudio,whichhastheadvantagesofsimplestructure,completefunctions,goodextensionabilityandgreatinterest.MaindesigncontentofthesubjectisbasedondevelopingAndroidgobanggame,thegamecannotonlyrealizeman-machineagainstalsocanrealizeplayagainstfriends,whenyouwanttopractisechessalonecanchooseman-machineagainst,havedifferentdegreeofdifficulty,whenboredwithfriendscanalsoinviteyourfriendstoagame.Inthegame,notonlycanselectrecruitdifficultycansavegameprogress,canfreelyadjustthepagethatoneselflike,easytooperate,simpleandeasytounderstand,whetherit'sthefirsttimethegobanggamenoviceorexquisitechessplayer,canencounterinthegame,evenlymatchedopponents,togiveyoucompletethegameexperience.Gamedevelopmentincludes:gamemode,gameoptions,systemSettings,help,gamemodeincludesman-machinegame,everyonegame,gameoptionsincludenewgame,continuetoplay,systemSettingsincludethesoundandtheboardbackground,helpincludesgamerulesandproblemfeedback.Keywords:androidgames,leisurepuzzle,platformprospects

第1章引言1.1五子棋游戲開發(fā)現(xiàn)狀分析如今時代可謂是娛樂井噴;音樂,電影,文化各種眼花繚亂的娛樂方式讓人目不接暇,要想在這個數(shù)字化、娛樂化的年代獲得成功,首先要抓住時代的主心骨。作為現(xiàn)如今人們生活中娛樂方式最重要的模塊之一——游戲,在技術發(fā)展的帶動下成為了娛樂經(jīng)濟中至關重要的板塊。而作為游戲分類里休閑娛樂板塊中的五子棋游戲正在吸引著各個年齡段的人群,五子棋游戲不僅對于男女老少都會玩,并且喜歡,而且如今Android手機平臺的手機游戲在各個人群中盛行著,故而用手機來下五子棋是一種時尚而又方便的休閑益智類游戲,五子棋作為世界上最古老的棋,我們將會一直把它傳承和發(fā)展下去?,F(xiàn)如今子棋小程序的發(fā)展也異常的快,從最初的雙人模式發(fā)展到人機模式,而后發(fā)展到現(xiàn)在的網(wǎng)絡對戰(zhàn)模式過程中,已經(jīng)受到越來越多人的喜愛和重視。五子棋一直都是人們所喜愛的娛樂方式,當人們處于長時間的壓力之中,身心上的壓力都是需要得到釋放的,而游戲可以作為一個很好的釋放工具,在游戲中人們可以全身心的投入進去,將全部注意力都放在游戲中,感受到游戲所帶來的樂趣或者是從游戲中的到一些新的啟發(fā),從根本上上來講游戲是可以帶給人們快樂的而且游戲的本質(zhì)意義就是很單一的,不用摻雜很多復雜的意義在里面。特別是現(xiàn)如今游戲逐漸單一化的趨勢下,某些結(jié)構(gòu)單一,規(guī)則簡單卻包含深意的游戲會越來越受到客戶的喜歡,我相信五子棋游戲?qū)蝗缂韧氖盏綒g迎和推崇。1.2項目開發(fā)的背景和意義背景:在21世紀是一個飛速發(fā)展的時代,簡要來說現(xiàn)在的時代可以稱之為互聯(lián)網(wǎng)時代。往往現(xiàn)在只需要人手一部手機,就能搞定生活中大部分的事情,真正的實現(xiàn)了簡約出行,為人們的生活帶來了很多便利,不僅提高了生活效率,而且還提高了生活質(zhì)量。手機成為了人們生活中必不可少的便利工具,人們在乘坐公地鐵時,在外出旅游閑坐時,在等人無事可做時,簡單的手機游戲無疑是人們的第一選擇,手機游戲不同于其他的傳統(tǒng)游戲,只需要依附于手機上便能實現(xiàn)游戲的目的。手機游戲的市場份額不斷擴大證明手機游戲的需求在不斷增長,手機平臺上的游戲越來越被廣大群眾所認可和喜愛。眾所周知,青少年幾乎人手一步手機,手機使用者遠遠超過電腦使用者。當今世界飛速發(fā)展的趨勢不斷加強,由此手機客服端游戲也慢慢的登上了現(xiàn)代的舞臺并且逐漸成為一個不容忽視的潛在市場。各大手機廠商瞄準其中豐厚的利益后便投身于游戲開發(fā)的投資中,這些不容忽視的因素都成為了推動手機游戲快速發(fā)展不可或缺的條件。意義:五子棋不僅能夠增強人們的思維能力、發(fā)展智力,而且體現(xiàn)了棋手的智力、意志等多方面的對抗,可以讓人們養(yǎng)成許多的好習慣,比如懂得尊重他人、有時候看待問題更加的全面,做事情會更有毅力,還有面對挫折的時候,我們不輕言放棄,這些都是我們一生之中都可以享用的不盡財富。1.3國內(nèi)外現(xiàn)狀分析在國外游戲的發(fā)展中,手機游戲正在經(jīng)歷著一個快速發(fā)展的過程。對于日本來說,目前游戲產(chǎn)業(yè)可以稱作是最發(fā)達的國家之一,早在幾年前,Japan的手機游戲業(yè)就已經(jīng)方興未艾了,就拿全球最大的手機Java游戲霸主——宮路武舉例來說,該公司從2000年左右創(chuàng)辦了手機游戲開始,他們僅僅花了4年的時間不到,就在Japan這個全球最大的手機游戲市場迅速的建立了游戲市場霸業(yè),并且逐漸穩(wěn)定,實現(xiàn)年營收2300萬美元的奇跡[1]。而對于美國等相對于Japan及一些歐洲國家,他們在手機Java游戲方面的發(fā)展就顯得相對滯后,但在2003年期間,其手機游戲市場的收入也已經(jīng)達到了1600萬美元乃至更多[2]。在國內(nèi),基于android平臺的手機游戲開發(fā),在現(xiàn)階段國內(nèi)外差距水平還是較大的,從市場上比較熱門的游戲我們可以看出其中的大多數(shù)游戲都是由國外的游戲開發(fā)公司開發(fā)的。因為此次畢業(yè)論文的原因,有很多機會接觸到基于android開發(fā)的游戲,通過對比發(fā)現(xiàn)不難看出國內(nèi)游戲的開發(fā)游戲界面不夠精美,流暢度的問題還較為嚴重。如果一款游戲受到追捧,之后就會出現(xiàn)很多同類型的游戲,創(chuàng)新思維方面較差。1.4論文的主要工作本文按照常規(guī)五子棋的需求以及設計流程,建立了以豐富的游戲頁面、優(yōu)質(zhì)的游戲體驗為基礎的五子棋游戲。把Java語言、c語言巧妙地結(jié)合起來。綜合實現(xiàn)了,包括游戲登陸、游戲進度保存、落子音效、棋盤背景、人機對弈、雙人對弈、游戲規(guī)則、幫助設置等信息。五子棋主要實現(xiàn)的功能:顯示出一個15*15的模擬棋盤在游戲界面;用戶在首頁界面選擇游戲模式人人對戰(zhàn)或人機對戰(zhàn),若選擇人機對戰(zhàn)下一步還需要選擇棋子的顏色,決定哪方先落子;用戶在該棋盤上通過點擊屏幕選擇落子點,棋子處于縱橫交界處;在實現(xiàn)人機對弈的時候五子棋判斷輸贏被分為左右、左上右下、右上左下、上下。每當人落一顆棋時,電腦就需及時判斷落子方向;當任意一方形成5顆棋子自動判斷游戲的勝負;判斷勝負之后跳出信息來提示用戶。

第2章相關技術介紹2.1五子棋游戲的開發(fā)方法在進行游戲的開發(fā)之前,我們首先需要確定開發(fā)工具以及開發(fā)所需要涉及到的語言,我在本次的五子棋游戲的開發(fā)中采用了androidstudio的開發(fā)工具,鑒于對java語言的熟悉以及java語言的顯著優(yōu)勢,本次的開發(fā)語言就以java為主。2.2游戲開發(fā)環(huán)境技術2.2.1androidstudio概述對于Android而言,Android

Studio

是一個相對來說全新有特點的開發(fā)軟件環(huán)境。因為該軟件是歸屬于IntelliJIDEA,又有點類似于

Eclipse

ADT的現(xiàn)如今的優(yōu)勢編輯軟件,新版本的Android

Studio

不僅為我們提供了相對集成的

Android

開發(fā)工具,同時還可以用于基本的開發(fā)和調(diào)試該軟件在IDEA的基礎功能實現(xiàn)上,還為用戶提供了以下諸多功能:1.能夠保證基于Gradle的相關方面構(gòu)建支持。2.Androidstudio能提供給用戶Android開發(fā)專屬的重新構(gòu)建和快速修復功能。3.該軟件可以提示工具欄目諸如捕獲性能和可用性以及版本兼容性等一系列問題[3]。4.能夠支持ProGuard和應用簽名。5.該軟件能根據(jù)模板的向?qū)в纱松梢恍┏R?guī)適用的Android應用設計和組件[4]。6.Androidstudio有著功能齊全的布局編輯器,還能夠讓用戶通過拖拉UI控件來進行初步的效果預覽[5]。2.2.2Java語言簡介在我的理解看來,Java是一種能夠有效撰寫很多跨平臺的,高效的應用軟件和面向?qū)ο蟮某绦蛟O計語言?!懊绹鳶unMicrosystems公司開發(fā)團隊在1995年5月期間推出了Java程序設計語言還有與之對應的Java平臺的總稱。經(jīng)過學習,我意識到Java技術不僅具有強大的通用性、高效性和平臺移植性以及安全性,而且它還還能廣泛地應用包括到個人PC、數(shù)據(jù)中心、游戲控制臺、科學超級計算機和移動電話以及互聯(lián)網(wǎng)等多個方面[6]。同時,Java語言是全球開發(fā)者專業(yè)社群使用最多的語言,在如今全球云計算,移動互聯(lián)網(wǎng)的高科技產(chǎn)業(yè)環(huán)境條件下,Java語言更是擁有著某些不可復制的獨特優(yōu)勢和廣闊的發(fā)展前景[7]。Java語言有著很多明顯的優(yōu)勢特點。例如:Java語言是一種適用于絕大多數(shù)網(wǎng)絡編程的流行語言;而且Java的基本數(shù)據(jù)結(jié)構(gòu)和C++在某些方面是有很大類似性的,但同時相對于c++而言,它顯得更為簡單??偟膩碚f,Java語言不僅結(jié)合了其他流行語言的優(yōu)點,而且還改進了它們的很多不足之處。它的主要特點包括有著簡單的操作可行性,平臺的獨立性,還有面向?qū)ο蟪绦蛟O計的多線程動態(tài)性以及安全性等優(yōu)點。第3章研究方法3.1問卷調(diào)查法問卷法與訪談法相比內(nèi)容要更為詳細、完整。問卷法的主要優(yōu)點在于成本低便捷。該方法主要是用于對于用戶需求的定位,通過對用戶進行面對面的交談,深入的了解用戶對該款游戲有哪些期待和最希望加入的功能,根據(jù)調(diào)查所收集的報告進行整理,以此來確定本次開發(fā)需要實現(xiàn)的基本功能以及重點。3.2文獻研究法文獻法最不同于其他研究方法的特點是該研究方法不受時間和空間的限制,不僅能夠?qū)沤裰型獾奈墨I進行相關研究,而且文獻法收集的信息相對于其他方法所得來的信息來說要更加的真實可靠。該方法主要用于項目開發(fā)的前期,通過閱讀大量有關于android開發(fā)的書籍,與手機游戲開發(fā)的發(fā)展趨勢相結(jié)合,對開發(fā)進行可行性分析。

第4章系統(tǒng)設計和模塊實現(xiàn)原理4.1實現(xiàn)游戲的背景的模塊該游戲的背景設置采用activity作為載體,activity是四大組件之一,它表示用戶可以操作界面,并且與用戶交互。通常來說,一個應用程序是由多個相關聯(lián)的activity組成的,而且當用戶打開軟件時第一眼所看到的第一個界面我們稱之為MianActivity;眾所周知,一個activity可以啟動另外一個activity,在采用activity時可以調(diào)用以下這些方法進行處理。Onstart:該觸發(fā)表示控件所屬的活動開始運行并顯示出來。Onresume:活動與用戶進行交互的時候會被觸發(fā)。OnPause:當設備進入休眠狀態(tài)的時候會被觸發(fā)。Onstop:當activity處于不可見的狀態(tài)時onstop會被調(diào)用,一旦onstop時onpause也一定會被觸發(fā)。OnRestart:Activity原本在后臺運行當被切換到前臺時,就會觸發(fā)onRestart方法,當我們需要使用恢復操作功能的時候就可以調(diào)用OnRestart。OnDestory:程序關閉時會被觸發(fā)。4.2實現(xiàn)游戲?qū)?zhàn)模式的兩個模塊該游戲的游戲模式主要分為兩個板塊,分別是:人機對弈、玩家對弈。4.2.1人機對弈實現(xiàn)人和電腦進行下棋,該設計的關鍵點在于電腦的應變能力以及思考能力,當人落子之后電腦能夠及時的進行判斷并做出合理的響應。五子棋判斷輸贏的方法毫無疑問的可以被分為左右、左上右下、右上左下、上下。每當人落一顆棋時,電腦就需快判斷當時的情形,若人贏的幾率較大時,就要盡快將玩家的棋路堵死,若人的勝算較低時,電腦就需判斷要在哪個方向上落子時勝算會更大。4.2.2人機對弈的實現(xiàn)五子棋的輸贏是通過某一方有無棋子沒有阻礙,按順序依次連成五個單位來判斷的,包括上下左右以及“米”字的兩個斜邊六個方向。首先要理解需求即五子棋的規(guī)則,然后才能根據(jù)實現(xiàn)原則,一步步細化,把功能模塊化,分類實現(xiàn)而后再通過邏輯連接,最終實現(xiàn)項目功能。4.2.3玩家對弈玩家對弈主要是考慮到玩家的體驗,玩家的游戲體驗決定了項目的成敗。玩家對弈更為考驗系統(tǒng)的靈活性,因為玩家落子往往是無跡可尋的,玩家的思想不如智能那么嚴謹和準確,所以玩家對弈設計時更多的應該是要考慮界面,音效等玩主觀體驗方面。4.2.4玩家對弈的實現(xiàn)玩家對弈較為靈活,實現(xiàn)的時候要考慮到排隊理論和“關鍵按鈕”。進行代碼實現(xiàn)時要注意輸入和輸出的準確性。玩家對弈可以采取創(chuàng)建連接的方式,將輸入和輸出連接對應到一起,簡單的實現(xiàn)聯(lián)機對戰(zhàn)。4.3功能結(jié)構(gòu)圖(圖4-1)圖4-1五子棋功能結(jié)構(gòu)圖用戶4.4E-R圖(圖4-2)用戶選擇選擇式魔術模式模式人機對戰(zhàn)人人對戰(zhàn)人機對戰(zhàn)人人對戰(zhàn)白棋白棋黑棋黑棋白棋白棋黑棋黑棋圖4-2五子棋程序E-R圖

開始4.5流程圖(圖4-3)開始游戲模式選擇游戲模式選擇人人對戰(zhàn)人人對戰(zhàn)人機對戰(zhàn)人機對戰(zhàn)魔術選擇選擇式魔術黑棋先行黑棋先行白棋黑棋白棋黑棋繪制棋盤(15*15)繪制棋盤(15*15)放置棋子放置棋子同顏色的五顆棋子同顏色的五顆棋子是是結(jié)束結(jié)束圖4-3五子棋程序流程圖第5章系統(tǒng)分析根據(jù)五子棋的發(fā)展現(xiàn)狀,本游戲的開發(fā)需要實現(xiàn)以下目標:1、支持五子棋游戲的正常運行。2、實現(xiàn)人機對弈時有良好的預判,及時進行決策3、系統(tǒng)配置靈活,以便后續(xù)的更新發(fā)展4、界面不僅美觀簡潔,而且人機對話友好,簡單易操作。5、響應速度適中,安全性能高,游戲運行時系統(tǒng)穩(wěn)定。6、游戲開發(fā)成本較低。當系統(tǒng)目標確定后,我們就從以下幾方面對系統(tǒng)的可行性進行詳細分析:5.1技術可行性分析技術上的可行性分析最基礎的在于分析現(xiàn)有的技術是否能夠支持該游戲的開發(fā)工作能順利完成,以及系統(tǒng)的軟硬件配置是否能夠開發(fā)者的需求【8】。五子棋作為世界上最古老的棋,在游戲開發(fā)的初始階段五子棋就被率先開發(fā),并獲得了成功。至今距離五子棋最初的開發(fā)已經(jīng)有很長一段時間了,技術基本已經(jīng)成熟,另外androidstudio軟件的易操作及Java語言顯著的優(yōu)勢,非常適合現(xiàn)階段開發(fā)的需要,綜上所述,對于五子棋的游戲開發(fā),我認為技術上可行。5.2經(jīng)濟可行性分析該游戲開發(fā)成功后為免費使用的軟件,不收取任何額外費用。開發(fā)者可以在游戲進入時嵌入少部分的廣告作為收入來源,這樣不僅不會影響用戶的游戲體驗還能增加開發(fā)的收益。另外該游戲的開發(fā)周期相對較短,后期的維護已經(jīng)更新也相對較為簡單,能夠合理有效的進行開發(fā),成本大幅度的降低。綜上所述五子棋的開發(fā)經(jīng)濟是可行的。5.3社會可行性分析社會可行性分析是對該軟件成功上架之后對社會可能產(chǎn)生的影響進行分析,例如:是否受人們的歡迎,是否能為社會帶來利益。當今社會的快速發(fā)展,人們面臨著工作與家庭帶來的雙重壓力,而在人們釋放壓力的方式選擇中,游戲所占比例是最高的,該款游戲易操作不僅能鍛煉思考能力而且也能邀請朋友或者家人一起進行游戲不致于忽略了他們,就算在沒有網(wǎng)絡的情況下也能進行單機游戲。綜上所述五子棋的開發(fā)社會可行。5.4項目需求分析在項目開發(fā)的過程中,需求分析是至為重要的一步,需求分析在開發(fā)的過程中有著決策權(quán)以及方向性的至關重要的作用。在本次開發(fā)中我認為采用原型法方法最為可靠,原型法的特殊性在于它雖然是盡快的建造了一個較為粗糙的一個系統(tǒng),但在這個版本之中它幾乎上已經(jīng)實現(xiàn)了目標系統(tǒng)的全部功能。我們可以通過該版本去考察是不是滿足用戶的要求,然后就可以根據(jù)用戶的意見采取相關方案去優(yōu)化這個原型.【8】并且以后的目標系統(tǒng)將會在該原型系統(tǒng)的基礎上進行研究和開發(fā)。5.5功能需求分析因為該游戲是基于android手機上的,所以應實現(xiàn)以下幾個功能:游戲響應:用戶在手機中觸屏開始游戲,游戲界面:用戶點擊開始游戲后,屏幕繪制出15*15的棋盤,游戲的兩方互為黑白棋從而開始對弈。先手的棋為黑色后首的棋為白色,在開發(fā)游戲時,需要設置當一方出棋之后,后臺會自動生成另一個顏色的棋子。數(shù)據(jù)處理功能:是游戲開發(fā)成功的關鍵,包括電腦落子的方向以及勝負判斷游戲功能:保存游戲進度,在用戶退出軟件時能及時保存游戲的進度,當用戶重回游戲時若選擇繼續(xù)游戲,則回復退出前的棋盤狀況,如果用戶選擇開始新游戲,則系統(tǒng)會自動清空棋盤并開始一句新的游戲。

第6章游戲主要代碼及最終呈現(xiàn)圖6.1游戲界面的實現(xiàn)主要代碼6.1.1繪制棋盤privatevoiddrawBoard(Canvascanvas)//繪制棋盤

{

intw=panewidth;

floatlinel=lineHeight;

for(inti=0;i<max_line;i++)

{

intstartX=(int)(lineHeight/2);

intendX=(int)(w-lineHeight/2);

inty=(int)((0.5+i)*lineHeight);

canvas.drawLine(startX,y,endX,y,mypait);//繪制棋盤橫向

intstartY=(int)(lineHeight/2);

intendY=(int)(w-lineHeight/2);

intx=(int)((0.5+i)*lineHeight);

canvas.drawLine(x,startY,x,endY,mypait);//繪制棋盤縱向

}

}6.2主頁面按鍵的設置(以人人對弈為例)<Button

android:id="@+id/renren"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_marginBottom="8dp"

android:layout_marginLeft="8dp"

android:layout_marginRight="8dp"

android:layout_marginTop="8dp"

android:text="人人對弈"

android:textSize="23dp"

app:layout_constraintBottom_toBottomOf="parent"

app:layout_constraintLeft_toLeftOf="parent"

app:layout_constraintRight_toRightOf="parent"

app:layout_constraintTop_toTopOf="parent"

app:layout_constraintVertical_bias="0.297"

android:layout_marginStart="8dp"

android:layout_marginEnd="8dp"/>6.3人人對弈的主要代碼

publicvoidini()

{

mypait.setColor(0xff000000);

mypait.setAntiAlias(true);

mypait.setDither(true);

mypait.setStyle(Paint.Style.STROKE);

white=BitmapFactory.decodeResource(getResources(),R.drawable.stone_w2);

black=BitmapFactory.decodeResource(getResources(),R.drawable.stone_b1);

}6.4人機對弈的主要代碼publicbooleanonTouchEvent(MotionEventevent)

{

if((event.getAction()==MotionEvent.ACTION_DOWN)&&!gameover)

{

intx=(int)event.getX();

inty=(int)event.getY();

if(map[(int)(y/lineHeight)][(int)(x/lineHeight)]==0)

{

{

map[(int)(y/lineHeight)][(int)(x/lineHeight)]=2;

check((int)(y/lineHeight),(int)(x/lineHeight));

invalidate();

ai();

}

invalidate();

returntrue;

}

returntrue;

}

returnsuper.onTouchEvent(event);

}6.5從六個方向中判斷勝負的主要代碼(以橫向為例)privatevoidcheck(intx,inty)

{

inthei=0,bai=0;

for(inti=0;i<max_line;i++)//橫向判斷

{

if((map[x][i]==0))

{

hei=0;

bai=0;

}

if((map[x][i]==2))

{

hei++;

bai=0;

if(hei==5)

{

Bwin();

}

}

if((map[x][i]==1))

{

bai++;

hei=0;

if(bai==5)

{

wwin();

}

}

}

hei=0;

bai=0;6.6游戲結(jié)束后界面的提示(包括重來、查看棋盤、退出)privatevoidDialog(Stringstring)

{

newAlertDialog.Builder(getContext()).setTitle(string)

.setPositiveButton("重來",

newDialogInterface.OnClickListener()

{

publicvoidonClick(DialogInterfacedialog,intwhich)

{

restart();

}

}

)

.setNeutralButton("查看棋盤!",newDialogInterface.OnClickListener()

{

publicvoidonClick(DialogInterfacedialogInterface,inti)

{

dialogInterface.dismiss();

}

})

.setNegativeButton("退出",

newDialogInterface.OnClickListener()

{

publicvoidonClick(DialogInterfacedialog,intwhich)

{

System.exit(1);

}

}).show();

}6.7核心算法1.搜索周邊所有的棋型2.選擇每一種可能的走法不斷的搜索棋型建立一棵博弈樹遍歷剪枝推導出初始節(jié)點分值3.最終選擇一棵分值最高的博弈樹的初始節(jié)點按照這種棋型4.等待人落子5.重復1算法說明:該算法主要使用了博弈樹和alpha-beta剪枝算法,在對手落子的時候主要思考的是去擊敗對手最快的情況(也就是分數(shù)最小的情況)首先構(gòu)建好一棵博弈樹然后就要去從最底層去逐層選擇最小值和最大值去逐層推演,直到選擇一種最優(yōu)的棋路,但這時出現(xiàn)了一個問題電腦的運算次數(shù)是有限的,隨著樹的深度、廣度的不斷增長,運算的數(shù)量是成指數(shù)級上漲的,如果我們想要在有限的時間推出更多的步驟,就需要去剔除一些顯然不可能向上傳遞的分支這里這個過程就叫做alpha-beta剪枝搜索。6.8主頁面截圖1.主頁面截圖(圖6-1)2.人人對弈頁面截圖(圖6-2)圖6-1主界面截圖圖6-2人人對弈頁面截圖3.人機對戰(zhàn)截圖(圖6-3)4.幫助頁面截圖(圖6-4)圖6-3人機對戰(zhàn)截圖圖6-4幫助頁面截圖5.游戲中任意一方獲勝跳出來的選項(圖6-5)圖6-5獲勝界面

第7章系統(tǒng)測試與結(jié)果分析7.1系統(tǒng)的開發(fā)環(huán)境操作系統(tǒng):windows10操作系統(tǒng)開發(fā)環(huán)境:androidstudio平臺開發(fā)語言:Java、c語言硬件設備:聯(lián)想筆記本電腦和華為手機一部7.2系統(tǒng)功能測試主要對五子棋的一些基本功能進行測試。7.2.1人人對戰(zhàn)測試功能實現(xiàn);玩家和玩家對弈。測試目的:可以實現(xiàn)人人對弈的模式,個人玩家同時操作兩個局中人的角色,進行對弈。測試結(jié)果:如圖所示,當游戲中的任何一方的五顆棋子相連,就會自動判定該方獲勝。7.2.2人機對戰(zhàn)測試功能實現(xiàn):能夠進行智能的單人對戰(zhàn)電腦。測試目的:該模塊成功的基礎主要在于電腦判斷需要準確及時,難度較大,因此較難實現(xiàn)。測試結(jié)果:人機對弈實現(xiàn)成功(圖7-1)圖7-1測試結(jié)果本章小結(jié):本章主要對五子棋的一些基本功能進行測試,在android手機上能夠運行,證明測試通過,整個項目已經(jīng)順利完成。7.3系統(tǒng)存在問題以及改進方法系統(tǒng)存在的問題:此次開發(fā)的游戲基本實現(xiàn)了基于androidstudio的五子棋游戲開發(fā),但由于時間較緊,有一些功能沒有實現(xiàn)。首先用戶的游戲進度不能被保存,其次在游戲進行的過程中沒有音效,會讓用戶感到有些枯燥,最后在這款游戲的界面還存在一定的不足。系統(tǒng)改進方法:針對以上提出的一些不足,我們分析出以下幾種方法來進行彌補。背景音效:該游戲可以加上落子的音效,增強用戶的體驗感。游戲界面的改進:根據(jù)后續(xù)用戶的反饋,進行界面的優(yōu)化,設計的更貼近用戶。

總結(jié)和展望總結(jié)本項目在設計開發(fā)過程中,嚴格的按照固有的軟件開發(fā)有關方面的工程軟件開發(fā)思想。經(jīng)過

溫馨提示

  • 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

提交評論