



下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、c五子棋游戲開發(fā) 目錄前言11預(yù)備知識 211計(jì)算機(jī)圖形學(xué)方面的知識 2111基本的c作圖方法及主循環(huán)控制模塊 2112圖形模式下的文本輸出 2125子棋基本數(shù)據(jù)結(jié)構(gòu) 3121棧 3122樹 42單人游戲 7 21開發(fā)的基本步驟 7211系統(tǒng)流程圖 7212建立棋盤 822電腦最優(yōu)落子點(diǎn)的算法 8221最大值點(diǎn)法 9222最優(yōu)落點(diǎn)方法 10223搜索算法及其改進(jìn)算法 17224.3種算法的比較與選擇2523編程實(shí)現(xiàn) 253雙人游戲 26參考文獻(xiàn)28致謝29附錄:部分源代碼30摘要c語言是1種結(jié)構(gòu)化語言,盡管在當(dāng)前,可視化語言發(fā)展迅速,普及很快,但c語言作為1
2、種基礎(chǔ)的語言,它的優(yōu)勢依然存在,甚至有時(shí)它是不可替代的,特別是和硬件接口技術(shù)相聯(lián)系的軟件。5子棋游戲是1種簡單的大眾的游戲,自從計(jì)算機(jī)實(shí)現(xiàn)以來,深受廣大電腦玩家的喜愛,但是現(xiàn)在流行的5子棋游戲軟件大多缺乏美觀的界面,和容易的操作方法,電腦的ai值也不是很高。本文通過c語言在計(jì)算機(jī)圖形學(xué)方面的編程,設(shè)計(jì)了5子棋游戲軟件,使該軟件具有美觀友好的界面,在人機(jī)對弈時(shí),使電腦具有較高的智商。 本游戲是以turbo c 2.0語言作為開發(fā)工具,采用搜索及其改進(jìn)的-剪枝算法設(shè)計(jì)最優(yōu)落子點(diǎn)開發(fā)的游戲軟件。本文詳細(xì)地介紹了5子棋游戲軟件設(shè)計(jì)的全過程,描述了該軟件的功能,以及和
3、其他5子棋程序的1些比較。關(guān)鍵詞:結(jié)構(gòu)化語言;最優(yōu)落子點(diǎn)算法;搜索算法;-剪枝算法。abstractc language is a structured language, although in the current visualization language rapidly, and spread quickly, but the c language as a basis for language, its advantages still exist, and sometimes it is irreplaceable, particularly hardware and soft
4、ware interfaces are linked. gobang game is a simple and popular game, since the computer to achieve, by the love of computer players, but now most popular game software gobang lack aesthetic interface, and easy method of operation, the value of the computer ai is not high. the adoption of the c prog
5、ramming language in computer graphics, designed gobang game software to enable the software with a beautiful and friendly interface in both game, the computer has a higher iq. the game is based on turbo c 2.0 language, using searching algorithm and -cut algorithm to de
6、sign best gobang. the detailed presentation of the whole process of gobang game software design, describes the software functions and procedures and other gobang some more. keywords : structured language;best algorithm;searching algorithm;-cut algorithm. &nbs
7、p; 前言 5子棋是人們喜歡的1種棋類游戲,近來,隨著計(jì)算機(jī)的快速發(fā)展,以計(jì)算機(jī)作為游戲?qū)?zhàn)平臺,各種棋類游戲如雨后春筍般紛紛冒出,使得那些喜愛下棋,又常??嘤跊]有對手的棋迷們能隨時(shí)過足棋癮,而且這類軟件個個水平頗高,大有與人腦分庭抗禮之勢。其中戰(zhàn)勝過國際象棋世界冠軍-卡斯帕羅夫的“深藍(lán)”便是最具說服力的代表。  
8、; 當(dāng)我們與電腦對戰(zhàn)時(shí),您知道這些軟件是怎樣象人腦1樣進(jìn)行思考的嗎?總的來說(我們假定您熟悉5子棋的基本規(guī)則),要讓電腦知道該在哪1點(diǎn)下子,就要根據(jù)盤面的形勢,為每1可能落子的點(diǎn)計(jì)算其重要程度,也就是當(dāng)這子落下后會形成什么棋型,然后通覽全盤選出最重要的1點(diǎn),這便是最基本的算法。當(dāng)然,僅靠當(dāng)前盤面進(jìn)行判斷是遠(yuǎn)遠(yuǎn)不夠的,這樣下棋很容易掉進(jìn)玩家設(shè)下的陷阱,因?yàn)樗鼪]有考慮以后的變化。所以在此基礎(chǔ)上我們需要使用好的算法使電腦能預(yù)測出今后幾步的各種走法,以便作出最佳選擇,這也是我們下棋時(shí)常說的“想了幾步”。怎樣才能達(dá)到這個程度呢?這是本文所要討論的主要問題。作為1個5子棋游戲愛好者,在使用了眾
9、多的5子棋游戲軟件后,發(fā)現(xiàn)當(dāng)今大多數(shù)5子棋游戲軟件中電腦的ai值不是很高,難與人腦抗衡,這是基于以上的最基本算法擴(kuò)展而出的電腦最優(yōu)落子算法不夠優(yōu)秀而造成的。本人使用turbo c 2.0語言作為開發(fā)工具,在吸收別人所編的5子棋游戲軟件的基礎(chǔ)上,再融入自己的創(chuàng)新思想(最優(yōu)落子算法的改進(jìn)),編寫了這個5子棋游戲,軟件實(shí)現(xiàn)了人機(jī)對弈和雙人對弈的功能,游戲軟件界面美觀,操作容易,電腦的ai值也較高。本文分為3個部分,首先介紹了開發(fā)5子棋游戲所需要的1些背景知識,包括c語言在計(jì)算機(jī)圖形學(xué)方面的知識和數(shù)據(jù)結(jié)構(gòu)方面的知識,然后詳細(xì)介紹了單人游戲和雙人游戲的開發(fā)步驟,在單人游戲設(shè)計(jì)中討論了3種提高電腦智商的最
10、優(yōu)落子點(diǎn)算法,并對其中的搜索算法及其改進(jìn)的-剪枝算法進(jìn)行了詳細(xì)的分析,最后繪出了部分關(guān)鍵代碼。1預(yù)備知識1 1計(jì)算機(jī)圖形學(xué)方面的知識111基本的c作圖方法及主循環(huán)控制模塊turbo c提供了非常豐富的圖形函數(shù),所有的圖形函數(shù)的原型均建立在graphics.h中,在使用圖形函數(shù)時(shí)要確保有顯示器圖形驅(qū)動程序*.bgi,同時(shí)將集成開發(fā)環(huán)境options/linker中的graphics lib選為on,只有這樣才能保證正確使用圖形函數(shù)。這個程序調(diào)用1個ega、vga顯示器下能獨(dú)立圖形運(yùn)行的函數(shù)。所謂獨(dú)立圖形運(yùn)行程序,就是在編譯和連接時(shí)將相應(yīng)的驅(qū)動程序(*.bgi)直接裝入到執(zhí)行程序,從而能
11、在獨(dú)立的計(jì)算機(jī)上運(yùn)行,避免需要重新編譯連接才能運(yùn)行。turbo c進(jìn)行畫點(diǎn)、畫線、封閉圖形填充以及圖形下文本輸出只需要調(diào)用graphics.h中相關(guān)的函數(shù)。主循環(huán)控制模塊:控制下棋順序,當(dāng)輪到某方下子時(shí),負(fù)責(zé)將程序轉(zhuǎn)到相應(yīng)的模塊中去,主要擔(dān)當(dāng)1個調(diào)度者的角色。這個5子棋程序是用鍵盤控制下棋,所以要用到turbo c中的bios.h。在1個循環(huán)塊中等待鍵盤信息,判斷鍵盤所輸入的信息是否需要響應(yīng),調(diào)用相關(guān)的代碼進(jìn)行下棋。112圖形模式下的文本輸出 在c語言的圖形模式下,只能用標(biāo)準(zhǔn)輸出函數(shù),如printf(),puts(),putchar()函數(shù)輸出文本到屏幕。除此之外,其它輸出函數(shù)(如窗口輸出函數(shù)
12、)不能使用,即是可以輸出的標(biāo)準(zhǔn)函數(shù),也只以前景色為白色,按80列,25行的文本方式輸出。turbo c2.0也提供了1些專門用于在圖形顯示模式下的文本輸出函數(shù)。下面將分別進(jìn)行介紹。 1、文本輸出函數(shù) void far outtext(char far *textstring); 該函數(shù)輸出字符串指針textstring所指的文本在現(xiàn)行位置。 void far outtextxy(int x, int y, char far *textstring);該函數(shù)輸出字符串指針textstring所指的文本在規(guī)定的(x, y)位置。其中x和y為象元坐標(biāo)。 說明: 這兩個函數(shù)都是輸出字符串,但經(jīng)常會遇到輸出數(shù)值或其它類型的數(shù)據(jù),此時(shí)就必須使用格式化輸出函數(shù)sprintf()。sprintf()函數(shù)的調(diào)用格式為: &nb
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 教育理論與實(shí)踐洞察
- 血檢考試題含參考答案
- 電子商務(wù)模擬題與答案
- 輸氣工初級考試模擬題(附答案)
- 臨建房合同范例
- 病房護(hù)士述職報(bào)告
- 知乎如何做年終總結(jié)
- 聽課評課培訓(xùn)
- 養(yǎng)殖物資回收合同范例
- 光伏組件抵押合同范例
- ISO22000培訓(xùn)知識基礎(chǔ)課件
- GCP原則及相關(guān)法律法規(guī)課件
- 厚樸種苗質(zhì)量分級DB50-T 1259-2022
- 我的家鄉(xiāng)新疆-我愛你課件
- 液化天然氣(LNG)相關(guān)的知識培訓(xùn)
- 施工升降機(jī)安全管理培訓(xùn)課件
- 2017華東六省一市優(yōu)質(zhì)課課件連乘問題11月29日
- 部編版(統(tǒng)編)一年級語文下冊每課練習(xí)題(全冊全套)
- DB62∕T 4134-2020 高速公路服務(wù)區(qū)設(shè)計(jì)規(guī)范
- 《影視鑒賞(第二版)》課件2-0故事片引子
- 青島版科學(xué)一年級下冊《塑料》教學(xué)設(shè)計(jì)
評論
0/150
提交評論