五子棋小游戲-光電信息科學(xué)與工程c語言程序設(shè)計(jì).docx_第1頁
五子棋小游戲-光電信息科學(xué)與工程c語言程序設(shè)計(jì).docx_第2頁
五子棋小游戲-光電信息科學(xué)與工程c語言程序設(shè)計(jì).docx_第3頁
五子棋小游戲-光電信息科學(xué)與工程c語言程序設(shè)計(jì).docx_第4頁
五子棋小游戲-光電信息科學(xué)與工程c語言程序設(shè)計(jì).docx_第5頁
已閱讀5頁,還剩22頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

成 績 評(píng) 定 表學(xué)生姓名郭雨佳班級(jí)學(xué)號(hào)1409060103專 業(yè)光電信息科學(xué)與工程課程設(shè)計(jì)題目五子棋小游戲評(píng)語組長簽字:成績?nèi)掌?20 年 月 日課程設(shè)計(jì)任務(wù)書學(xué) 院理學(xué)院專 業(yè)光電信息科學(xué)與工程學(xué)生姓名郭雨佳班級(jí)學(xué)號(hào)1409060103課程設(shè)計(jì)題目五子棋小游戲?qū)嵺`教學(xué)要求與任務(wù):要求:1、進(jìn)一步培養(yǎng)學(xué)生結(jié)構(gòu)化程序設(shè)計(jì)的思想,加深對高級(jí)語言基本語言要素和控制結(jié)構(gòu)的理解。2、針對C語言中的重點(diǎn)和難點(diǎn)內(nèi)容進(jìn)行訓(xùn)練,獨(dú)立完成有一定工作量的程序設(shè)計(jì)任務(wù),同時(shí)強(qiáng)調(diào)好的程序設(shè)計(jì)風(fēng)格。3、掌握C語言的編程技巧和上機(jī)調(diào)試程序的方法。4、掌握程序設(shè)計(jì)中的常用算法。任務(wù):1、聯(lián)系已學(xué)過的內(nèi)容,鞏固所學(xué)的理論,增強(qiáng)獨(dú)立工作能力。2、通過設(shè)計(jì)主要使學(xué)生有一個(gè)獨(dú)立編寫程序的過程,對理論學(xué)習(xí)及動(dòng)手能力都有一個(gè)很大的提高。3、通過本次設(shè)計(jì),進(jìn)一步培養(yǎng)學(xué)生熱愛專業(yè)的思想,同時(shí)對本專業(yè)綜合素質(zhì)的提高起一個(gè)積極的推動(dòng)作用。工作計(jì)劃與進(jìn)度安排:第一周:查閱資料 、算法設(shè)計(jì)第二周: 第一、二天:算法設(shè)計(jì) 第三、四天:程序?qū)崿F(xiàn) 第五天:答辯指導(dǎo)教師: 201 年 月 日專業(yè)負(fù)責(zé)人:201 年 月 日學(xué)院教學(xué)副院長:201 年 月 日摘要C語言是國際上廣泛流行的計(jì)算機(jī)高級(jí)語言,它適合作為系統(tǒng)描述語言,即可以用來編寫系統(tǒng)軟件,也可以編寫應(yīng)用軟件。在早期的操作系統(tǒng)軟件主要是匯編語言編寫的,但匯編語言依賴于計(jì)算機(jī)硬件程序的可讀性和可移植性級(jí)語言,而C語言兼具一般語言優(yōu)點(diǎn)還能克服其他語言的缺點(diǎn)。五子棋是一種兩人對弈的純策略型棋類游戲,應(yīng)用C語言編寫程序可以在計(jì)算機(jī)上實(shí)現(xiàn)二人對弈五子棋功能。二人對弈五子棋程序由圖像生成、光標(biāo)移動(dòng)與落子、判斷勝負(fù)和系統(tǒng)幫助等子程序構(gòu)成;程序中應(yīng)用了結(jié)構(gòu)體、數(shù)組、全局變量、按鍵處理和圖形編程等元素和語句。程序通過棋盤和棋子圖像生成、二人移子與落子和判斷勝負(fù)等功能的實(shí)現(xiàn),在計(jì)算機(jī)上實(shí)現(xiàn)二人五子棋對弈。同時(shí)也對其他系統(tǒng)游戲的開發(fā)設(shè)計(jì)有一定的借鑒作用。關(guān)鍵詞:C語言;數(shù)組;結(jié)構(gòu)體;全局變量;按鍵處理目錄1引言11.1五子棋介紹11.2程序需求分析11.3編程方案22五子棋游戲的設(shè)計(jì)與實(shí)現(xiàn)22.1模塊圖22.2流程圖33對應(yīng)程序:44運(yùn)行結(jié)果截屏:115總結(jié)146參考文獻(xiàn)14211引言1.1五子棋介紹五子棋是起源于中國古代的傳統(tǒng)黑白棋種之一。五子棋不僅能增強(qiáng)思維能力,提高智力,而且富含哲理,有助于修生養(yǎng)性。五子棋既有現(xiàn)代休閑的明顯特征“短、平、快”,又有古典哲學(xué)的高深學(xué)問“陰陽易理”;它既有簡單易學(xué)的特性,為人民群眾所喜聞樂見,又有深?yuàn)W的技巧和高水平的國際性比賽;它的棋文化源遠(yuǎn)流長,具有東方的神秘和西方的直觀;既有“場”的概念,亦有“點(diǎn)”的連接。他是東西文化的交流點(diǎn),是古今哲理的結(jié)晶。1.2程序需求分析根據(jù)功能需求將程序分為圖形顯示、玩家控制、勝負(fù)判斷三個(gè)模塊,以下分析各模塊的需求。圖形顯示模塊:游戲開始后要求棋盤生成為15*15,游戲運(yùn)行中要求顯示已落棋子情況。玩家控制模塊:游戲過程中玩家需移動(dòng)光標(biāo)選擇落子。勝負(fù)判斷模塊:一旦某一顏色棋子出現(xiàn)物資連續(xù),終止游戲,彈出改色游戲玩家勝出。1.3編程方案棋子的移動(dòng)與落子在鍵盤上按鍵控制,本程序選取按鍵為、和空擋鍵。分別代表上移、左移、下移、右移和落子。在光標(biāo)移動(dòng)過程中,光標(biāo)按照玩家按鍵移動(dòng);在玩家按下落子鍵后,程序自動(dòng)調(diào)用棋子顯示子程序和判斷勝負(fù)子程序。2五子棋游戲的設(shè)計(jì)與實(shí)現(xiàn)五子棋游戲2.1模塊圖勝負(fù)判斷圖形顯示玩家控制 是否有五子黑白棋落子棋盤的拼成2.2流程圖開始畫15*15界面開始游戲白子落子白子落子5? N白子獲勝?輸出白方獲勝! Y Y黑子落子 N黑子落子 黑子獲勝?輸出黑方獲勝! Y N白子落子 輸出平局!棋盤鋪滿? YN結(jié)束3對應(yīng)程序:#include #include #include #include #define MAXIMUS 15 int pMAXIMUSMAXIMUS;char buffMAXIMUS*2+1MAXIMUS*4+3;int Cx,Cy;int Now;int wl,wp;char* showText;int count;char* Copy(char* strDest,const char* strSrc)char* strDestCopy = strDest;while (*strSrc!=0)*strDest+=*strSrc+;return strDestCopy;void Initialize()int i,j;showText=;count=0;for(i=0;iMAXIMUS;i+)for(j=0;jMAXIMUS;j+)pij=0;Cx=Cy=MAXIMUS/2;Now=1;char* getStyle(int i,int j)if(pij=1)return ;else if(pij=2)return ;else if(i=0&j=0)return ;else if(i=MAXIMUS-1&j=0)return ;else if(i=MAXIMUS-1&j=MAXIMUS-1)return ;else if(i=0&j=MAXIMUS-1)return ;else if(i=0)return ;else if(i=MAXIMUS-1)return ;else if(j=0)return ;else if(j=MAXIMUS-1)return ;return ;char* getCurse(int i,int j)if(i=Cx)if(j=Cy)return ;else if (j=Cy+1)return ;else if(i=Cx+1)if(j=Cy)return ;else if (j=Cy+1)return ;return ;void write(char* c)Copy(buffwl+wp,c);wp+=strlen(c);void ln()wl+=1;wp=0;void Display()int i,l=strlen(showText);int Offset=MAXIMUS*2+2-l/2;if(Offset%2=1)Offset-;Copy(buffMAXIMUS+Offset,showText);if(l%2=1)*(buffMAXIMUS+Offset+l)=0x20;system(cls);for(i=0;iMAXIMUS*2+1;i+)printf(%s,buffi);if(iMAXIMUS*2)printf(n);void Print()int i,j;wl=0;wp=0;for(j=0;j=MAXIMUS;j+)for(i=0;i=MAXIMUS;i+)write(getCurse(i,j);if(j=0|j=MAXIMUS)if(i!=MAXIMUS)write();elseif(i=0|i=MAXIMUS-1)write();else if(i!=MAXIMUS)write();if(j=MAXIMUS)break;ln();write();for(i=0;iMAXIMUS;i+)write(getStyle(i,j);if(i!=MAXIMUS-1)if(j=0|j=MAXIMUS-1)write();elsewrite();ln();Display();int Put()if(pCxCy=0)pCxCy=Now;return 1;elsereturn 0;int Check()intw=1,x=1,y=1,z=1,i; for(i=1;i5;i+)if(Cy+iMAXIMUS&pCxCy+i=Now)w+;else break;for(i=1;i0&pCxCy-i=Now)w+;else break;if(w=5)return Now;for(i=1;i5;i+)if(Cx+iMAXIMUS&pCx+iCy=Now)x+;else break;for(i=1;i0&pCx-iCy=Now)x+;else break;if(x=5)return Now;for(i=1;i5;i+)if(Cx+iMAXIMUS&Cy+iMAXIMUS&pCx+iCy+i=Now)y+;else break;for(i=1;i0&Cy-i0&pCx-iCy-i=Now)y+;else break;if(y=5)return Now;for(i=1;i5;i+)if(Cx+i0&pCx+iCy-i=Now)z+;else break;for(i=1;i0&Cy+i=5)return Now; return 0; int RunGame()int input;int victor;Initialize();while(1) Print();input=getch();if(input=27)exit(0);else if(input=0x20) if(Put()victor=Check();Now=3-Now; count+;if(victor=1) showText=白方獲得了勝利!;Print();if(getch()=0xE0)getch();return Now;else if(victor=2) showText=黑方獲得了勝利!;Display();if(getch()=0xE0)getch();return Now;else if(count=MAXIMUS*MAXIMUS) showText=平局!;Display();if(getch()=0xE0)getch();return 0;else if(input=0xE0) input=getch();switch(input) case 0x4B:/Cx-;break;case 0x48:Cy-;break;case 0x4D:Cx+;break;case 0x50:Cy+;break;if(Cx0)Cx=MAXIMUS-1; if(CyMAXIMUS-1)Cx=0;if(CyMAXIMUS-1)Cy=0;int main()system(title 簡易五子棋 1409060103 郭雨佳);system(mode con cols=63 lines=32);system(color A2f);while(1)RunGame();4運(yùn)行結(jié)果截屏:5總結(jié)C語言課程設(shè)計(jì)和現(xiàn)代計(jì)算機(jī)技術(shù)的實(shí)際應(yīng)用相結(jié)合,是我們在本階段學(xué)完理論課程之后對自己該方面的能力的一次很好的檢驗(yàn),從開始的算法思路到運(yùn)行調(diào)試后的美觀的圖形界面以及另人興奮的可用程序,都是一個(gè)很好的學(xué)習(xí)和鍛煉的過程。使我們鞏固了原有的理論知識(shí),培養(yǎng)了我們靈活運(yùn)用和組合集成所學(xué)過知識(shí)及技能來分析、解決實(shí)際問題的能力。使我們體會(huì)到自身知識(shí)和能力能在實(shí)際中的應(yīng)用和發(fā)揮。不但可以激發(fā)創(chuàng)新意識(shí),還可以開發(fā)創(chuàng)造能力、培養(yǎng)溝通能力。這次實(shí)習(xí)時(shí)間雖然僅有一個(gè)星期,但確實(shí)使我受益非淺。給我們提供了一個(gè)既動(dòng)手又動(dòng)腦,獨(dú)立實(shí)踐的機(jī)會(huì)。通過實(shí)習(xí)我豐富了計(jì)算機(jī)操作經(jīng)驗(yàn),更加深了對C語言的了解,熟悉了其環(huán)境。本次課程設(shè)計(jì),使我對五子棋設(shè)計(jì)的基本過程的設(shè)計(jì)方法、步驟、思路,有一定的了解與認(rèn)識(shí)。在課程設(shè)計(jì)過程中,我基本

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論