版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)(C 語言)課程設(shè)計(jì)題目:簡易五子棋軟件設(shè)計(jì): 信息工程學(xué)院姓名:班級:指導(dǎo)教師簽名2011 年 7 月 7 日北京任務(wù)書 總體設(shè)計(jì) 模塊劃分 算法說明 流程圖 第3頁第4頁第第3頁第4頁第4頁第4頁第5頁結(jié)論 第22 頁體會及建議 第22 頁參考文獻(xiàn) 第23 頁北京石油化工學(xué)院BEIJING INSTITUTE OF PETROCHEMICAL TECHNOLOGY北京石油化工學(xué)院BEIJING INSTITUTE OF PETROCHEMICAL TECHNOLOGY課程設(shè)計(jì)用紙第 第 頁 共 23 頁n1=0;n2=0;/* 垂直向上數(shù)*/for(j=x,k=y;k=1
2、;k-)if(statusjk=flag)n1+;elsebreak ;/* 垂直向下數(shù)*/for(j=x,k=y;k=5)return(1);/* 從左上方到右下方進(jìn)行判斷是否有5 個(gè)同色的圓*/n1=0;n2=0;/* 向左上方數(shù)*/for(j=x,k=y;(j=1)&(k=1);j-,k-)if(statusjk=flag)n1+;elsebreak;/* 向右下方數(shù)*/for(j=x,k=y;(j=15)&(k=5)return(1);/* 從右上方到左下方進(jìn)行判斷是否有5 個(gè)同色的圓*/n1=0;n2=0;/* 向右上方數(shù)*/for(j=x,k=y;(j=1);j+,k-)if(st
3、atusjk=flag)n1+;elsebreak;/* 向左下方數(shù)*/for(j=x,k=y;(j=1)&(k=5)return(1);return(0);/* 執(zhí)行下棋函數(shù)*/void Done()int i ;int j ; TOC o 1-5 h z /* 根據(jù)不同的key 值進(jìn)行不同的操作*/switch(key)/* 如果是向左移動的*/case LEFT:/* 如果下一步超出棋盤左邊界則什么也不作*/if(step_x-1=1;i-)if(statusij=0)/* 每移動一步畫一個(gè)圓,消除移動的過程*/DrawCircle(step_x,step_y,2);break ;if(
4、i15)/* 報(bào)警音樂 */sound(1000);/* 揚(yáng)聲器的發(fā)生時(shí)間,為1 秒鐘 */delay(1000);nosound();break ;elsefor(i=step_x+1,j=step_y;i15)break ;step_x=i ;/* 根據(jù)不同的行棋者畫不同顏色的圓*/JudgePlayer(step_x,step_y);/* 顯示行棋一方是誰*/break ; TOC o 1-5 h z /* 如果是向下移動的*/case DOWN :/* 如果下一步超出棋盤下邊界則什么也不作*/if(step_y+1)15)/* 報(bào)警音樂*/sound(1000);/* 揚(yáng)聲器的發(fā)生時(shí)間
5、,為1 秒鐘 */delay(1000);nosound();break ;elsefor(i=step_x,j=step_y+1;j15)break ;step_y=j ;JudgePlayer(step_x,step_y);break ;/* 如果是向上移動的*/case UP :/* 報(bào)警音樂 */if(step_y-1)=1;j-)if(statusij=0)DrawCircle(step_x,step_y,2);break ;if(j=1&step_x=1&step_y=15)/* 按下確定鍵后,如果棋子當(dāng)前位置的狀態(tài)為0*/if(statusstep_xstep_y=0)/* 則更
6、改棋子當(dāng)前位置的狀態(tài)在flag , 表示是哪個(gè)行棋者行的棋*/statusstep_xstep_y=flag ;/* 如果判斷當(dāng)前行棋者獲勝*/if(ResultCheck(step_x,step_y)=1)gotoxy(30,4);setbkcolor(BLUE); TOC o 1-5 h z /* 清除圖形屏幕*/cleardevice();/* 為圖形輸出設(shè)置當(dāng)前視口*/setviewport(100,100,540,380,1);/* 綠色實(shí)填充*/setfillstyle(1,2);setcolor(YELLOW);/* 畫矩形 */rectangle(0,0,439,279);fl
7、oodfill(50,50,14);setcolor(12);settextstyle(1,0,5);/* 三重筆劃字體, 水平放大5 倍 */outtextxy(20,20,Congratulation !);setcolor(15);settextstyle(3,0,4); TOC o 1-5 h z /* 如果是 Player1 獲勝,顯示獲勝信息*/if(flag=1) /*無襯筆劃字體, 水平放大5倍 */outtextxy(20,120,Player1 win the game !);WinMusic();/* 如果是 Player1 獲勝,顯示獲勝信息*/if(flag=2) /
8、* 無襯筆劃字體, 水平放大5 倍 */outtextxy(20,120,Player2 win the game !); WinMusic();setcolor(14);settextstyle(2,0,8);getch();exit(0);/* 如果當(dāng)前行棋者沒有獲勝,則交換行棋方*/Alternation();/* 提示行棋方是誰*/ShowMessage(); break;else break ;/* 顯示行棋方函數(shù)*/void ShowMessage()/* 輪到 Player1 行棋 */if(flag=1)setcolor(2);settextstyle(1,0,1);gotox
9、y(100,30);/* 覆蓋原有的字跡*/outtextxy(100,30,Its turn to Player2 !);setcolor(12);settextstyle(1,0,1);outtextxy(100,30,Its turn to Player1 !);/* 輪到 Player2 行棋 */if(flag=2)setcolor(2);settextstyle(1,0,1);/* 覆蓋原有的字跡*/outtextxy(100,30,Its turn to Player1 !);setcolor(12);settextstyle(1,0,1);gotoxy(100,20);outt
10、extxy(100,30,Its turn to Player2 !);/* 主函數(shù) */int main()int gdriver;int gmode;int errorcode; TOC o 1-5 h z /* 清空文本模式窗口*/clrscr();/* 顯示歡迎信息*/WelcomeInfo();gdriver=DETECT;gmode=0;/* 初始化圖形系統(tǒng)*/initgraph(&gdriver,&gmode, d:tc);/* 設(shè)置 flag 初始值,默認(rèn)是Player1 先行 */flag=1;/* 畫棋盤 */DrawBoard();ShowMessage();dostep
11、_x=0 ;step_y=0 ;JudgePlayer(step_x-1,step_y-1); do TOC o 1-5 h z /* 如果沒有鍵按下,則bioskey(1) 函數(shù)將返回0*/while(bioskey(1)=0);/* 獲取從鍵盤按下的鍵值*/key=bioskey(0);/* 根據(jù)獲得的鍵值進(jìn)行下棋操作*/Done();while(key!=ENTER&key!=ESC);while(key!=ESC);/* 關(guān)閉圖形系統(tǒng)*/closegraph();return 0;八 結(jié)論 :本次課程設(shè)計(jì)使我學(xué)到了很多東西, 當(dāng)我獨(dú)立將程序的主題寫出來時(shí), 我很高興 , 因?yàn)檫@個(gè)程序不
12、象想象中的那么簡單, 經(jīng)過幾次調(diào)試后, 我發(fā)現(xiàn)最出的程序雖然能運(yùn)行 , 能實(shí)現(xiàn)預(yù)期目標(biāo), 但整個(gè)程序繁雜結(jié)構(gòu)不清楚, 后與同學(xué)老師交流次程 TOC o 1-5 h z 序設(shè)計(jì)方法, 采納了幾個(gè)比較好的設(shè)計(jì)理念, 將整個(gè)程序進(jìn)行了模塊的細(xì)致劃分,并整理 , 將住函數(shù)中的非自定義表達(dá)式語句大幅縮減。主函數(shù)中大量使用的是自定義函數(shù)調(diào)用,這樣一來使主函數(shù)結(jié)構(gòu)清晰。最終程序經(jīng)過幾次重大修改后變得更加人性化,增加了可操作性。我認(rèn)為這次課程設(shè)計(jì)進(jìn)行的很成功九 體會及建議:來講通過這次綜合應(yīng)用程序的開發(fā),我掌握了C語言程序設(shè)計(jì)的一些基本方法和常用算法,學(xué)會從實(shí)際應(yīng)用出發(fā)來分析問題,進(jìn)行軟件規(guī)劃和算法設(shè)計(jì),逐步求精,熟悉軟件設(shè)計(jì)的基本步驟。程序最終調(diào)試之后,我終于松了一口氣,說實(shí)在的, 真的很累,實(shí)現(xiàn)規(guī)定的程序功能是最困難的,很多功能看似簡單但做起來卻異常困難。從構(gòu)思到實(shí)現(xiàn),從修改到完善,在老師的幫助下前后更改了許多地方。伴隨著修改的同時(shí),我的程序設(shè)計(jì)能力也在不斷提高,程序設(shè)計(jì)思想
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度危險(xiǎn)品運(yùn)輸與安全裝卸協(xié)議3篇
- 專業(yè)水泥購銷協(xié)議規(guī)范版B版
- 二零二五年度電子商務(wù)平臺建設(shè)與運(yùn)營管理協(xié)議2篇
- 專項(xiàng)融資委托代理協(xié)議(2024版)版A版
- 個(gè)人借款抵押車復(fù)雜合同(2024版)2篇
- 二零二五年度城市綜合體項(xiàng)目投資合作協(xié)議5篇
- 專業(yè)短視頻攝制服務(wù)合同(2024年)3篇
- 2025年度生物制藥研發(fā)與市場推廣合作協(xié)議2篇
- 2025年度廠房物業(yè)管理與能源審計(jì)服務(wù)協(xié)議4篇
- 2025年度廠區(qū)生態(tài)景觀綠化養(yǎng)護(hù)服務(wù)合同樣本4篇
- 2024版?zhèn)€人私有房屋購買合同
- 2025年山東光明電力服務(wù)公司招聘筆試參考題庫含答案解析
- 《神經(jīng)發(fā)展障礙 兒童社交溝通障礙康復(fù)規(guī)范》
- 2025年中建六局二級子企業(yè)總經(jīng)理崗位公開招聘高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2024年5月江蘇省事業(yè)單位招聘考試【綜合知識與能力素質(zhì)】真題及答案解析(管理類和其他類)
- 注漿工安全技術(shù)措施
- 2024年世界職業(yè)院校技能大賽“食品安全與質(zhì)量檢測組”參考試題庫(含答案)
- 讀書分享會《白夜行》
- 2023上海高考英語詞匯手冊單詞背誦默寫表格(復(fù)習(xí)必背)
- 人民軍隊(duì)歷史與優(yōu)良傳統(tǒng)(2024)學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- 3-9年級信息技術(shù)(人教版、清華版)教科書資源下載
評論
0/150
提交評論