版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《畫角》(教學(xué)設(shè)計(jì))-2024-2025學(xué)年四年級上冊數(shù)學(xué)人教版
- 部編版三年級上冊語文第12周作業(yè)單
- 安徽省蕪湖市2025年高三3月期初聯(lián)考(溫州八校)生物試題含解析
- 安徽省安慶市潛山市第二中學(xué)2025年高三第二次診斷性考試生物試題試卷含解析
- 2025年浙江省臺州市聯(lián)誼五校高考最后沖刺模擬(一)生物試題含解析
- 九年級化學(xué)下冊 第七章 溶液 7.3 溶液濃稀的表示 第2課時(shí) 配制一定溶質(zhì)質(zhì)量分?jǐn)?shù)的溶液教案 (新版)粵教版
- 2024學(xué)年高中地理 5.1《資源跨區(qū)域調(diào)配》第一課時(shí)教學(xué)設(shè)計(jì) 新人教版必修3
- 2025年浙江省“七彩陽光”新高三下學(xué)期期中生物試題文試題含解析
- 2025年錫林郭勒市重點(diǎn)中學(xué)高三綜合測試生物試題試卷含解析
- 2025年陜西省商洛市高三高考考前指導(dǎo)卷(2)生物試題含解析
- 超輕黏土課件
- 組織行為學(xué)考試題(附參考答案)
- 水果生鮮加盟合同范本
- 招聘工作人員筆試考務(wù)手冊
- 2024年秋新版人教版三年級英語上冊電子課本
- 淘寶微觀環(huán)境分析
- 2024年04月中國發(fā)展研究基金會2024年招考筆試歷年典型考題及考點(diǎn)研判與答案解析
- 中國文化與文學(xué)精粹 知到智慧樹網(wǎng)課答案
- 中華人民共和國突發(fā)事件應(yīng)對法課件
- 教育部:中小學(xué)綜合實(shí)踐活動課程指導(dǎo)綱要
- 2022年10月自考04435老年護(hù)理學(xué)試題及答案含解析
評論
0/150
提交評論