基于C語(yǔ)言五子棋小游戲模板_第1頁(yè)
基于C語(yǔ)言五子棋小游戲模板_第2頁(yè)
基于C語(yǔ)言五子棋小游戲模板_第3頁(yè)
基于C語(yǔ)言五子棋小游戲模板_第4頁(yè)
基于C語(yǔ)言五子棋小游戲模板_第5頁(yè)
已閱讀5頁(yè),還剩34頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、基于C語(yǔ)言五子棋小游戲模板基于C語(yǔ)言五子棋小游戲模板基于C語(yǔ)言五子棋小游戲模板五子棋小游戲一.需求分析此刻有愈來(lái)愈多的人使用電腦,并且五子棋的受眾廣泛但實(shí)體棋操作較為繁瑣且平常較難實(shí)現(xiàn),因此電腦版的五子棋游戲應(yīng)運(yùn)而生。大家關(guān)于這個(gè)小游戲的需求以下:第一,設(shè)計(jì)這個(gè)游戲最基本的就是實(shí)現(xiàn)玩家之間對(duì)戰(zhàn),玩家可以經(jīng)過(guò)某些操作來(lái)實(shí)現(xiàn)對(duì)戰(zhàn)功能;有時(shí)可能因?yàn)闀r(shí)間等原由,玩家可能需要保存游戲,此時(shí)需要一個(gè)“保存”功能;有時(shí)可能玩家因?yàn)槭д`解走錯(cuò)棋,此時(shí)就需要“悔棋”功能;有時(shí)玩家可能感覺(jué)這局游戲玩的特別不好,這時(shí)候就需要“重新開(kāi)始游戲”功能;玩家在玩過(guò)游戲以后有可能想保存游戲記錄便于今后分析此時(shí)就需要“排行榜”

2、功能;有些玩家在玩游戲時(shí)喜愛(ài)聽(tīng)音樂(lè),這時(shí)候就需要在下棋時(shí)可以播放背景音樂(lè)的功能;最基本的經(jīng)過(guò)輸入座標(biāo)來(lái)實(shí)現(xiàn)落子的操作方式很繁瑣并且很不方便,這時(shí)候就可以將落子系統(tǒng)改為更直觀的光標(biāo)挪動(dòng)模式。二.設(shè)計(jì)思路1.玩家對(duì)戰(zhàn)功能:在玩家對(duì)戰(zhàn)功能中,玩家可以經(jīng)過(guò)按方向鍵來(lái)挪動(dòng)光標(biāo)、按空格來(lái)實(shí)現(xiàn)落子,最后在橫或豎或斜方向上達(dá)成五個(gè)相同顏色的棋子來(lái)獲獲成功?;舅悸罚?)使用二維數(shù)組保存棋局。2)因?yàn)橐褂霉鈽?biāo),因此使用輸出緩沖器。3)打印棋盤(pán)。主要使用Print()函數(shù)來(lái)算出棋盤(pán)并將緩沖器內(nèi)容輸出。其余為此中調(diào)用的輔助函數(shù)。chessPrint()是打印交點(diǎn)坐標(biāo)的字符的函數(shù);getCurse()是打印光標(biāo)的函

3、數(shù);write()函數(shù)是用來(lái)向緩沖器里面寫(xiě)入字符串的函數(shù);ln()函數(shù)是負(fù)責(zé)將緩沖器寫(xiě)入地址提行的函數(shù);Display()函數(shù)是將緩沖器中內(nèi)容輸出到屏幕的函數(shù)。4)下子,在后文有詳細(xì)介紹。5)輸贏平判斷調(diào)用Check()函數(shù)進(jìn)行四個(gè)方向的檢查,檢查能否有五子連珠。判斷達(dá)成后輸出結(jié)果(假如存在結(jié)果)2.保存游戲和裝載游戲功能:在游戲過(guò)程中,只要按“1”鍵就可以保存游戲到指命名稱的文檔中;在游戲開(kāi)始界面,只要按“2”選擇“l(fā)oadboard”就可以裝載指命名稱的游戲?;舅悸罚赫{(diào)用saveGame()函數(shù)將當(dāng)前棋局的相關(guān)信息所有保存到結(jié)構(gòu)體變量saveChess中,并將此中的內(nèi)容所有保存到文件里。

4、加載時(shí)將結(jié)構(gòu)體變量里的數(shù)據(jù)所有讀出,賦給當(dāng)前棋局相關(guān)信息變量,以后正常運(yùn)轉(zhuǎn)游戲即可。3.悔棋功能:在游戲過(guò)程中,只要按“2”鍵就可以返回到上一步的場(chǎng)面。基本思路:玩家對(duì)戰(zhàn)時(shí),每個(gè)玩家每次成功落子以后,棋盤(pán)的相關(guān)信息就會(huì)被記錄到一個(gè)結(jié)構(gòu)體數(shù)組里。每次悔棋時(shí),就調(diào)用一個(gè)函數(shù)把存儲(chǔ)在結(jié)構(gòu)體數(shù)組里的上一回合的信息所有賦給當(dāng)前棋局信息變量。4.重新開(kāi)始游戲功能:在游戲過(guò)程中,只要按“3”鍵就可以初始化棋局,重新開(kāi)始游戲。基本思路:玩家對(duì)戰(zhàn)時(shí)每一次重新開(kāi)始游戲就調(diào)用runGame()函數(shù),并返回當(dāng)前玩家信息。人機(jī)對(duì)戰(zhàn)時(shí)每一重新開(kāi)始游戲就調(diào)用自己,并返回當(dāng)前玩家信息。5.排行榜功能:在一局游戲結(jié)束時(shí),依據(jù)提

5、示輸入“1”則可以將自己的名字及成績(jī)保存到排行榜文件中。在游戲開(kāi)始界面,只要按“3”就可以查察排行榜。(排行榜依據(jù)步數(shù)由小到大,棋色又白到黑排序)基本思路:一局游戲結(jié)束時(shí)調(diào)用inList()函數(shù),inList()函數(shù)又調(diào)用addList()函數(shù),將關(guān)于棋局的部分信息保存到文件。關(guān)于排序設(shè)置了單獨(dú)的函數(shù)sortList()函數(shù),其在addList()里面被調(diào)用。此處使用了結(jié)構(gòu)體數(shù)組,依據(jù)此中的“步數(shù)”成員將結(jié)構(gòu)體數(shù)組中的元素進(jìn)行“冒泡排序”。這里比較特其余是,每次都是先將要加入的內(nèi)容寫(xiě)到文件末端,再將文件中所有內(nèi)容讀出后進(jìn)行排序,最后再將排好序的內(nèi)容所有寫(xiě)入文件。6.背景音樂(lè)功能:在游戲過(guò)程中會(huì)

6、向來(lái)循環(huán)播放音樂(lè),帶給玩家不一樣樣的享受?;舅悸罚菏褂肳indows.h頭文件,并加上相關(guān)指令再調(diào)用PlaySoundA()函數(shù)就可以實(shí)現(xiàn)循環(huán)播放背景音樂(lè)。7.使用光標(biāo)定位棋子:使用方向鍵控制光標(biāo)挪動(dòng)方向,使用空格鍵來(lái)實(shí)現(xiàn)落子,帶給玩家比坐標(biāo)落子更高級(jí)的體驗(yàn),更加方便快捷。(此處使用了以前沒(méi)用到的,調(diào)用getch()函數(shù),為了不需要鍵入回車。)基本思路:光標(biāo)實(shí)現(xiàn):使用緩沖器將棋盤(pán)交點(diǎn)的間隔都填補(bǔ)內(nèi)容,光標(biāo)用制表符表示,其余為空格。方向鍵挪動(dòng)光標(biāo):防范越界:空格落子:8.簡(jiǎn)單的人機(jī)對(duì)戰(zhàn):主要防守型的AI,主要針對(duì)對(duì)手的棋型來(lái)安排戰(zhàn)術(shù),有時(shí)會(huì)選擇攻擊?;舅悸罚号袛鄬?duì)手能否有2,3,4子連珠,假

7、如有,電腦會(huì)在兩頭下子;假如沒(méi)有,若己方在一側(cè)存在3子或4子連珠,電腦會(huì)在后邊補(bǔ)子;假如以上狀況均未出現(xiàn),電腦會(huì)隨機(jī)在對(duì)手單據(jù)周邊落子。其余基本功能同人人對(duì)戰(zhàn),但是不支持保存和讀取棋局功能。依據(jù)奇偶數(shù)來(lái)判斷是該電腦走子還是玩家走子。電腦執(zhí)黑則會(huì)有不一樣的初始化方法。三.用戶手冊(cè)1.如何運(yùn)轉(zhuǎn)程序2.如何開(kāi)始游戲(包含玩家對(duì)戰(zhàn)和人機(jī)對(duì)戰(zhàn))3.如何退出游戲4.如何進(jìn)行游戲5.如何保存當(dāng)前游戲(僅支持玩家對(duì)戰(zhàn))6.如何讀取已保存的游戲(僅支持玩家對(duì)戰(zhàn))7.如何重新開(kāi)始游戲(支持人機(jī)和玩家對(duì)戰(zhàn))8.如何保存記錄(支持人機(jī)和玩家對(duì)戰(zhàn),不加區(qū)分)9.如何調(diào)取記錄進(jìn)行查察(支持人機(jī)和玩家對(duì)戰(zhàn),不加區(qū)分)10.

8、如何查察游戲規(guī)則11.如何認(rèn)識(shí)設(shè)計(jì)師相關(guān)信息12.如何悔棋(支持人機(jī)和玩家對(duì)戰(zhàn))1.如何運(yùn)轉(zhuǎn)程序第一步,打開(kāi)VS2012,點(diǎn)擊“打開(kāi)項(xiàng)目”。第二步,選擇“高級(jí)五子棋”項(xiàng)目,點(diǎn)擊“打開(kāi)”第三步,使用快捷鍵“Ctrl+F5”,開(kāi)始運(yùn)轉(zhuǎn)程序,進(jìn)入游戲開(kāi)始界面。2.如何開(kāi)始游戲依據(jù)開(kāi)始界面中的提示操作即可,從鍵盤(pán)輸入“1”即可開(kāi)始玩家對(duì)戰(zhàn)或人機(jī)對(duì)戰(zhàn)(輸入“1”為玩家對(duì)戰(zhàn),輸入“2”為人機(jī)對(duì)戰(zhàn),人機(jī)對(duì)戰(zhàn)時(shí)可以選擇電腦的顏色)。輸入“1”以后的成效:再輸入“2”以后的成效:再輸入“1”以后的成效:再輸入“2”以后的成效:如何退出游戲此處罰兩種狀況:第一種是在開(kāi)始界面,可以經(jīng)過(guò)鍵盤(pán)輸入“0”來(lái)實(shí)現(xiàn)退出游戲(

9、此時(shí)會(huì)有退出界面);第二種是在游戲過(guò)程中,可以經(jīng)過(guò)按“Esc”鍵來(lái)直接退出游戲(此時(shí)沒(méi)有退出界面)。第一種:輸入“0”以后的結(jié)果:第二種:按“Esc”以后的成效:4.如何進(jìn)行游戲玩家可以經(jīng)過(guò)按“”“”“”“”來(lái)實(shí)現(xiàn)光標(biāo)的挪動(dòng),經(jīng)過(guò)按空格鍵來(lái)在沒(méi)有棋子的地址實(shí)現(xiàn)落子。初始:按空格以后的成效:按“”以后的成效:5.如何保存當(dāng)前游戲在游戲過(guò)程中,玩家可以經(jīng)過(guò)按“1”來(lái)實(shí)現(xiàn)游戲的保存。按“1”以后的成效:6.如何讀取已保存的游戲在游戲開(kāi)始界面,可以經(jīng)過(guò)從鍵盤(pán)輸入“2”來(lái)裝載以前保存過(guò)的游戲。輸入“2”以后的成效:7.如何重新開(kāi)始游戲在游戲過(guò)程中,按“3”可以實(shí)現(xiàn)游戲的重新開(kāi)始。初始:按“3”以后的成效

10、:8.如何保存記錄在一局游戲結(jié)束后,會(huì)有以下文字提示:輸入“1”后的成效:9.如何調(diào)取記錄進(jìn)行查察在游戲開(kāi)始界面,可以經(jīng)過(guò)鍵盤(pán)輸入“3”來(lái)查察排行榜內(nèi)容。10.如何查察游戲規(guī)則在游戲開(kāi)始界面可以經(jīng)過(guò)鍵盤(pán)輸入“4”來(lái)查察游戲規(guī)則。11.如何認(rèn)識(shí)設(shè)計(jì)師相關(guān)信息在游戲開(kāi)始界面輸入“5”即可認(rèn)識(shí)設(shè)計(jì)師相關(guān)信息。12.如何悔棋在游戲過(guò)程中,可以按“2”來(lái)實(shí)現(xiàn)悔棋,即恢復(fù)到上一步的狀態(tài)。初始:按“2”以后的成效:四.總結(jié)經(jīng)過(guò)本次五子棋大作業(yè),我初步掌握了運(yùn)用以前學(xué)過(guò)的知識(shí)去開(kāi)拓未知領(lǐng)域的能力、借鑒與發(fā)展能力、自學(xué)能力等多項(xiàng)技術(shù)??偟膩?lái)說(shuō)我感覺(jué)此次大作業(yè)的難度是比較大的,這此中會(huì)面對(duì)很多項(xiàng)選擇擇,這恰巧是考驗(yàn)我們能力的地方。比方,“排行榜”功能就可以選擇是使用鏈表來(lái)做還是使用結(jié)構(gòu)體數(shù)組來(lái)做。我一開(kāi)始的思路是使用鏈表來(lái)做,但是因?yàn)槲益湵淼南嚓P(guān)知識(shí)掌握的不是很熟練因此凡是受挫,最終我決定改變思路,使用結(jié)構(gòu)體數(shù)組來(lái)做,果真要簡(jiǎn)單一些,我也成功的實(shí)現(xiàn)了排行榜功能。再比方,很多同學(xué)都是采

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論