高級語言程序設計臺球程序設計_第1頁
高級語言程序設計臺球程序設計_第2頁
高級語言程序設計臺球程序設計_第3頁
已閱讀5頁,還剩13頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、高級語言程序課程設汁簡單臺球游戲目 錄1總體設計22模塊劃分33各算法說明58附錄源代碼12課程設計內(nèi)容一、總體設計d別神| bZ) |曲i魏Vrr|!如陽)| | h:0i嵌。i1吋”本程序把各主要功能分割成自定義的函數(shù),其中包括制圖函數(shù)畫岀游戲界面、計算 路徑的碰撞函數(shù)、判斷勝負的函數(shù)、白球運動的函數(shù),錄入鍵盤輸入的函數(shù),逐步 精化每個細節(jié),做到合理的分工,最后并由main()統(tǒng)一調(diào)用各函數(shù)。函數(shù)說明:1. drawtable ():每次循環(huán)輸出游戲界面。2. drawball ()畫岀每個球所在位置。drawpow ()畫出控制力量槽。4. help () “幫助”里所含的內(nèi)容。5. d

2、rawhelp ()畫出"幫助"界面。6. bound ()計算出每個球碰撞后的運動狀態(tài)。7. getkey ()得到鍵盤輸入。8. drawOO ()畫出在游戲等待狀態(tài)中游戲界面。9. go()控制白球的運動。10. ok ()記錄所進球。11. win ()得出贏的一方。12. wait time ()執(zhí)行游戲中所需要的等待時間二、模塊劃分1. drawtable ()函數(shù)功能:畫出游戲界面函數(shù)參數(shù):無函數(shù)返回值:無2. drawball ()函數(shù)功能:畫出每個球函數(shù)參數(shù):整型變量i,表示每個球的號碼整形標量flag,表示球是否進洞的標志變量函數(shù)返回值:無3. draw

3、power ()函數(shù)功能:顯示擊球力量,畫出力量槽函數(shù)參數(shù):無函數(shù)返回值:無4. help ()函數(shù)功能:help you界面的內(nèi)容函數(shù)參數(shù):無函數(shù)返回值:無5. Waittime ()函數(shù)功能:算出時間差函數(shù)參數(shù):雙精度實型t,需要等待的時函數(shù)返回值:無6.drawhelp ()函數(shù)功能:畫出help you界面函數(shù)參數(shù):無函數(shù)返回值:無7. bound ()函數(shù)功能:計算兩球碰撞后的運動路徑函數(shù)參數(shù):整型bl、b2,兩球的號碼函數(shù)返回值:無8. drawOO ()函數(shù)功能:畫出游戲等待界面函數(shù)參數(shù):整型ib,球的號碼;整型br,控制填充顏色函數(shù)返回值:無9. getkey ()函數(shù)功能:得

4、到鍵盤輸入函數(shù)參數(shù):無函數(shù)返回值:字符型ch,為得到的鍵盤輸入10. go ()函數(shù)功能:控制白球的運動路徑函數(shù)參數(shù):無函數(shù)返回值:無U.okO函數(shù)功能:檢查進球悄況函數(shù)參數(shù):整型b,未進球號碼函數(shù)返回值:無12. win ()函數(shù)功能:得出贏的一方函數(shù)參數(shù):整型i,玩家代號函數(shù)返回值:無三、算法說明1、 help ()定義helD的 內(nèi)容算法:函數(shù)內(nèi)容主要為“Help you”界面內(nèi)容。2 wait time ()算法:利用無限循環(huán)使a, b使得獲得時間差a-b符合傳遞過來的時間差t的 要求。3、drawhlepO算法:畫出"Help you”界面。4. drawpow ()算法:

5、初始化power值,通過比較i與power間的大小進行循環(huán),循環(huán)中 i<power時,畫出“”,并在力量槽填充黃色;當i>power時,畫出“-”,并在 力量槽里填充黑色。5. drawpl ()算法:輸出玩家信息,包括玩家輪換和玩家打的球號范圍。6. get key ()算法:通過函數(shù)kbhitO從而得到鍵盤輸入,并傳遞給ch。7. drawOO ()算法:畫出等待狀態(tài)的游戲界面,通過循環(huán)畫出洞口和臺球。8. bound ()計算出bl和b2在乂、請由的速度算法:首先得到傳遞過來的bl、b2小球,先判斷兩球是否處于臺球邊緣,若 是,側相應的坐標取相反數(shù);再次判斷兩球是否處于運動狀

6、態(tài),若兩球都在運動, 則用aton2 ()取該運動方向的X軸與Y軸之間對應的弧度;接著便通過弧度之間運 算計算出兩小球各自在X軸和Y軸的分速度;最后通過判斷(s-si)與pi/2之間的 大小判斷兩球在X軸與Y軸上速度增量的正負號。9. drawball ()算法:通過循環(huán)和進球標志flag畫出臺桌上球的數(shù)量和位置。10. drawtable ()算法:通過調(diào)用各自定義畫圖函數(shù)畫出游戲桌面情況。11. go()算法:通過畫出口球與虛擬球之間夾角弧度,并通過力量值power計算出口 球在X軸和Y軸速度初始增量。12. win ()算法:在指定位置輸出贏家信息。13. ok ()算法:先判斷是否進了

7、黑球,再判斷玩家其中一方的球是否都打進。算法:通過調(diào)用自定義畫圖函數(shù)drawtable ()和drawOO ()畫出游戲界面, 得到鍵盤輸入鍵,游戲中按“esc”退出;通過無限循環(huán)和調(diào)用函數(shù)訃算各球運動 路徑,知道有一方勝出時詢問是否繼續(xù)游戲。四、程序源代碼:ncludestdio. h>#includegraphics h>#include<conio. h>#includestdlib. h>#include<math h>#include<time h>#define PATH "c:tc"#define pi 3

8、define r 10. 0#define zero 0.01#define BC 0#define DISK 2float R=r+0. 5:struct balltypefloat x, y;float dx, dy;int flag;ball16;int ex二320-5水r, cy二240;float power=15.0;int flag=l, player=0, chang=0;int hole6 2 = 17, 92, 320,92, 623,92,17,388,320,388,623,388;int plball2 = 0, 0, ex=l;void

9、help()char *fname = ,za/4: left d/6:right w/8:up s/2:down Space: shoot, or:powerEsc:exit" ;setcolor (14);outtextxy(8, 460, fname);void waittime(double t)time_t tl,t2;double a, b;a=time(&tl);while (1)b=time(&t2);if(b-a>t) break;void drawhlep ()setbkcolor(9);setcolor (14);rectangle(50,

10、50,550,400);rectangle (50, 100, 550, 145);settextstyle(0, 0, 4);outtextxy(150, 60, "Help You!");rectangle (250, 100, 400, 145);setcolor (4);settextstyle(3, 0, 4);outtextxy(270, 102, "Playerl");outtextxy (420, 102, /zPlayer2z,);setcolor (14);rectangle (50,170,550,195);rectangle (50, 220, 550, 245);rectangle (50, 270, 550, 295);rectangle (50,320,550,345);rectangle(50, 370, 550, 400);rectangle (400, 145, 550, 245);rectangle (50, 14

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論