已閱讀5頁,還剩25頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
中國象棋游戲?qū)嶒?yàn)報告第1頁共30頁計算機(jī)學(xué)院20034級程序設(shè)計高級實(shí)驗(yàn)C大型作業(yè)報告題目:中國象棋系統(tǒng)雙人對下游戲程序。人員:謝劍(學(xué)號:3035211133班級:計算機(jī)20034班)俞雪永(學(xué)號:3035211138班級:計算機(jī)20034班)譚書舟(學(xué)號:3035211128班級:計算機(jī)20034班)金必培(學(xué)號:3035211119班級:計算機(jī)20034班)賀軍(學(xué)號:3035211118班級:計算機(jī)20034班)聯(lián)系電話:1377787623113634111565E-mail:任課教師:王云武報告遞交日期:2004年12月16日中國象棋游戲?qū)嶒?yàn)報告第2頁共30頁一系統(tǒng)功能說明本游戲程序?yàn)橹袊笃咫p人對下,只要有一方的將(帥)被對方吃掉后系統(tǒng)自動判斷輸贏,并顯示Blackiswinningthegame或(Rediswinningthegame)。在走棋過程中,系統(tǒng)自動提示紅(黑)方走。如果有一方想放棄本局,就可以點(diǎn)擊象棋框右邊的退出框。如果一局結(jié)束后想繼續(xù)走,則只要用鼠標(biāo)點(diǎn)擊右邊的開始框,則進(jìn)行新一局游戲(具體游戲界面見附錄二)。二使用說明(1)本程序所使用庫函數(shù)說明includestdio.h中的基本函數(shù);includeprocess.h中的exit(0)函數(shù);includedos.h中相關(guān)鼠標(biāo)操作設(shè)置;includemath.h中的fabs()函數(shù);includeincludegraphics.h中的setcolor(),setfillstyle(),line(),moveto(),floodfill(),circle(),rectange()等函數(shù);(2)程序使用說明鼠標(biāo)點(diǎn)擊棋子一下(棋子外圈變紅色),則可以移動當(dāng)前的棋子;鼠標(biāo)點(diǎn)擊兩下(棋子外圈變白色),則取消當(dāng)前所選的棋子。三程序結(jié)構(gòu)1程序結(jié)構(gòu)說明見中國象棋流程圖(附錄一)。2重要數(shù)據(jù)的說明見附錄二棋子半徑R=17,棋盤框窗口(60,50,380,410),操作者框窗口(460,40,570,90),開始框窗口(460,110,570,160),退出框窗口(460,180,570,230),游戲說明框窗口(460,240,570,410)。3程序函數(shù)清單(1)自己所編的小型漢字庫voidget_hz(inthanzi,unsignedcharbur);(2)顯示漢字voidprint_hz(unsignedchar*mat,intcolor,intx,inty);(3)畫棋子voiddrawQizi(structmouse*mouse1,intcolor);(4)初始化游戲(顯示游戲棋盤包括操作、開始、退出、游戲說明框,中國象棋游戲?qū)嶒?yàn)報告第3頁共30頁棋子)voidshowQiPan();(5)鼠標(biāo)初始化voidinitmouse();(6)初始鼠標(biāo)位置voidcursttoxy(intx,inty);(7)顯示開始框showKSK(intcolor);(8)顯示退出框showTCK(intcolor);(9)顯示說明框showSMK(intcolor);(10)顯示操作框showCZK(intcolor);(11)取消當(dāng)前鼠標(biāo)位置voidcancelMouse(intx,inty);(12)顯示鼠標(biāo)位置voidshowMouse(intx,inty);(13)讀取當(dāng)前鼠標(biāo)位置voidreadmouse(int*bottom,int*mousex,int*mousey);(14)判斷各個棋子的步法intjudgestepright(structmouse*mouse0,structmouse*mouse1,inta109);(15)是否退出游戲intisoutgame(intmousex,intmousey);(16)是否存在棋子intisexistQi(structmouse*mouse,inta109,intnumber);(17)是否開始游戲intbegingame(intmousex,intmousey);(18)判斷輸贏intcheckwin(inttemp);(19)是否要取消當(dāng)前要移動的起子intiscancelQizi(structmouse*mouse0,structmouse*mouse1)(20)改變棋子voidchangeQizi(structmouse*mouse0,structmouse*mouse1);(21)改變棋子邊框顏色voidchangecolor(structmouse*mouse0);(22)游戲界面初始化voidnewGame();(23)結(jié)束游戲voidGameOver();中國象棋游戲?qū)嶒?yàn)報告第4頁共30頁四系統(tǒng)設(shè)計難點(diǎn)及其解決方法(1)由于本游戲是在TC下運(yùn)行的,而TC不能直接輸出漢字,則在游戲界面上的漢字輸出有一定的問題。在本程序中,故我們采用自行設(shè)計1616的點(diǎn)陣的漢字模型,采用漢字顯示原理在TC中進(jìn)行輸出。(2)由于本程序采用鼠標(biāo)操作,則在鼠標(biāo)移動的同時,必須同時消隱原位置的鼠標(biāo)圖案,并且重新附上鼠標(biāo)處原游戲界面圖案。由于鼠標(biāo)移動的不確定性,從而使鼠標(biāo)位置的原游戲界面圖案較復(fù)雜。本程序中采用的解決方法是:為鼠標(biāo)靜態(tài)申請相應(yīng)大小的空間用以存儲鼠標(biāo)位置的原背景圖案,當(dāng)鼠標(biāo)移動時,先在鼠標(biāo)原位置附上所保存的圖案,接著在新位置顯示鼠標(biāo),從而使鼠標(biāo)實(shí)現(xiàn)移動。(3)由于棋子是動態(tài)移動,則同鼠標(biāo)一樣必須實(shí)現(xiàn)棋子的顯示與消隱,但棋盤的邊框線條較復(fù)雜。若采用(2)中鼠標(biāo)消隱原理,則將要消耗很多空間。例如:為每個棋子申請相應(yīng)大小的空間用以保存背景圖案,則空間大小為:3234342=73984(B)=72.25(KB),從而可以看出所需空間較大??紤]到該方法與本程序的不兼容性及消耗空間較大,本程序采用每次移動棋子時,棋盤畫面刷新一次的方法來實(shí)現(xiàn)棋子的消隱,但這也導(dǎo)致了棋盤畫面由于刷新而不穩(wěn)定的后果。(4)象棋游戲程序中的步法正確性的判斷是較復(fù)雜的,因?yàn)楦鱾€棋子的規(guī)則較復(fù)雜,考慮的情況較多。本游戲采用a109數(shù)組與棋盤的10行9列棋格一一相對應(yīng)的方法來判斷棋子從mouse0移到mouse1處的正確性(mouse0與mouse1是存儲棋子相應(yīng)的行列坐標(biāo)的結(jié)構(gòu))。五不足之處(1)正如上面(3)所述:由于采用刷新方法來實(shí)現(xiàn)棋子的消隱,而導(dǎo)致了棋盤界面的不穩(wěn)定,這是本游戲程序較大的不足,若采用棋盤棋子分塊描繪的方法,則在移動棋子時,只能改變局部棋盤或棋子,從而能實(shí)現(xiàn)棋盤的穩(wěn)定顯示,但此方法與我們所編的程序的實(shí)現(xiàn)在本質(zhì)上的區(qū)別,
溫馨提示
- 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 醉香烤魚技術(shù)培訓(xùn)課件
- 鄭明明消防安全培訓(xùn)課件
- 鄭州建筑施工安全員培訓(xùn)課件
- CN120256510A 一種地震應(yīng)急信息快速可視化方法及系統(tǒng) (中國地質(zhì)科學(xué)院地質(zhì)力學(xué)研究所)
- 2026年口腔醫(yī)療管理公司傳染病患者診療隔離管理制度
- 企業(yè)銷售培訓(xùn)
- 邯鄲市安全生產(chǎn)月培訓(xùn)課件
- 當(dāng)陌生人安全知識課件
- 課件找相對面
- 公共交通運(yùn)營安全管理指南
- 2025版中國胃癌保功能手術(shù)外科專家共識課件
- TGXAS-火龍果品質(zhì)評價技術(shù)規(guī)范編制說明
- (2025)70周歲以上老年人換長久駕照三力測試題庫(含答案)3
- 口腔科門診主任年度工作匯報
- 半條被子的故事課件
- 人音版七年級音樂下冊(簡譜)第一單元 《☆一二三四歌》教案
- 全國各氣象臺站區(qū)站號及經(jīng)緯度
- 危險廢物貯存污染控制標(biāo)準(zhǔn)解讀II
- 起重裝卸機(jī)械操作工國家職業(yè)技能標(biāo)準(zhǔn)(2023年版)
- 中國傳統(tǒng)文化ppt
- 現(xiàn)代漢語語法研究-陸儉明
評論
0/150
提交評論