計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)課程設(shè)計(jì)論文_第1頁
計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)課程設(shè)計(jì)論文_第2頁
計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)課程設(shè)計(jì)論文_第3頁
計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)課程設(shè)計(jì)論文_第4頁
計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)課程設(shè)計(jì)論文_第5頁
已閱讀5頁,還剩25頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論