![高級(jí)語言程序設(shè)計(jì)臺(tái)球程序設(shè)計(jì)_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/10/bc92bb83-4bae-4f93-8314-c230a4fa3895/bc92bb83-4bae-4f93-8314-c230a4fa38951.gif)
![高級(jí)語言程序設(shè)計(jì)臺(tái)球程序設(shè)計(jì)_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/10/bc92bb83-4bae-4f93-8314-c230a4fa3895/bc92bb83-4bae-4f93-8314-c230a4fa38952.gif)
![高級(jí)語言程序設(shè)計(jì)臺(tái)球程序設(shè)計(jì)_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/10/bc92bb83-4bae-4f93-8314-c230a4fa3895/bc92bb83-4bae-4f93-8314-c230a4fa38953.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、高級(jí)語言程序課程設(shè)汁簡單臺(tái)球游戲目 錄1總體設(shè)計(jì)22模塊劃分33各算法說明58附錄源代碼12課程設(shè)計(jì)內(nèi)容一、總體設(shè)計(jì)d別神| bZ) |曲i魏Vrr|!如陽)| | h:0i嵌。i1吋”本程序把各主要功能分割成自定義的函數(shù),其中包括制圖函數(shù)畫岀游戲界面、計(jì)算 路徑的碰撞函數(shù)、判斷勝負(fù)的函數(shù)、白球運(yùn)動(dòng)的函數(shù),錄入鍵盤輸入的函數(shù),逐步 精化每個(gè)細(xì)節(jié),做到合理的分工,最后并由main()統(tǒng)一調(diào)用各函數(shù)。函數(shù)說明:1. drawtable ():每次循環(huán)輸出游戲界面。2. drawball ()畫岀每個(gè)球所在位置。drawpow ()畫出控制力量槽。4. help () “幫助”里所含的內(nèi)容。5. d
2、rawhelp ()畫出"幫助"界面。6. bound ()計(jì)算出每個(gè)球碰撞后的運(yùn)動(dòng)狀態(tài)。7. getkey ()得到鍵盤輸入。8. drawOO ()畫出在游戲等待狀態(tài)中游戲界面。9. go()控制白球的運(yùn)動(dòng)。10. ok ()記錄所進(jìn)球。11. win ()得出贏的一方。12. wait time ()執(zhí)行游戲中所需要的等待時(shí)間二、模塊劃分1. drawtable ()函數(shù)功能:畫出游戲界面函數(shù)參數(shù):無函數(shù)返回值:無2. drawball ()函數(shù)功能:畫出每個(gè)球函數(shù)參數(shù):整型變量i,表示每個(gè)球的號(hào)碼整形標(biāo)量flag,表示球是否進(jìn)洞的標(biāo)志變量函數(shù)返回值:無3. draw
3、power ()函數(shù)功能:顯示擊球力量,畫出力量槽函數(shù)參數(shù):無函數(shù)返回值:無4. help ()函數(shù)功能:help you界面的內(nèi)容函數(shù)參數(shù):無函數(shù)返回值:無5. Waittime ()函數(shù)功能:算出時(shí)間差函數(shù)參數(shù):雙精度實(shí)型t,需要等待的時(shí)函數(shù)返回值:無6.drawhelp ()函數(shù)功能:畫出help you界面函數(shù)參數(shù):無函數(shù)返回值:無7. bound ()函數(shù)功能:計(jì)算兩球碰撞后的運(yùn)動(dòng)路徑函數(shù)參數(shù):整型bl、b2,兩球的號(hào)碼函數(shù)返回值:無8. drawOO ()函數(shù)功能:畫出游戲等待界面函數(shù)參數(shù):整型ib,球的號(hào)碼;整型br,控制填充顏色函數(shù)返回值:無9. getkey ()函數(shù)功能:得
4、到鍵盤輸入函數(shù)參數(shù):無函數(shù)返回值:字符型ch,為得到的鍵盤輸入10. go ()函數(shù)功能:控制白球的運(yùn)動(dòng)路徑函數(shù)參數(shù):無函數(shù)返回值:無U.okO函數(shù)功能:檢查進(jìn)球悄況函數(shù)參數(shù):整型b,未進(jìn)球號(hào)碼函數(shù)返回值:無12. win ()函數(shù)功能:得出贏的一方函數(shù)參數(shù):整型i,玩家代號(hào)函數(shù)返回值:無三、算法說明1、 help ()定義helD的 內(nèi)容算法:函數(shù)內(nèi)容主要為“Help you”界面內(nèi)容。2 wait time ()算法:利用無限循環(huán)使a, b使得獲得時(shí)間差a-b符合傳遞過來的時(shí)間差t的 要求。3、drawhlepO算法:畫出"Help you”界面。4. drawpow ()算法:
5、初始化power值,通過比較i與power間的大小進(jìn)行循環(huán),循環(huán)中 i<power時(shí),畫出“”,并在力量槽填充黃色;當(dāng)i>power時(shí),畫出“-”,并在 力量槽里填充黑色。5. drawpl ()算法:輸出玩家信息,包括玩家輪換和玩家打的球號(hào)范圍。6. get key ()算法:通過函數(shù)kbhitO從而得到鍵盤輸入,并傳遞給ch。7. drawOO ()算法:畫出等待狀態(tài)的游戲界面,通過循環(huán)畫出洞口和臺(tái)球。8. bound ()計(jì)算出bl和b2在乂、請由的速度算法:首先得到傳遞過來的bl、b2小球,先判斷兩球是否處于臺(tái)球邊緣,若 是,側(cè)相應(yīng)的坐標(biāo)取相反數(shù);再次判斷兩球是否處于運(yùn)動(dòng)狀
6、態(tài),若兩球都在運(yùn)動(dòng), 則用aton2 ()取該運(yùn)動(dòng)方向的X軸與Y軸之間對應(yīng)的弧度;接著便通過弧度之間運(yùn) 算計(jì)算出兩小球各自在X軸和Y軸的分速度;最后通過判斷(s-si)與pi/2之間的 大小判斷兩球在X軸與Y軸上速度增量的正負(fù)號(hào)。9. drawball ()算法:通過循環(huán)和進(jìn)球標(biāo)志flag畫出臺(tái)桌上球的數(shù)量和位置。10. drawtable ()算法:通過調(diào)用各自定義畫圖函數(shù)畫出游戲桌面情況。11. go()算法:通過畫出口球與虛擬球之間夾角弧度,并通過力量值power計(jì)算出口 球在X軸和Y軸速度初始增量。12. win ()算法:在指定位置輸出贏家信息。13. ok ()算法:先判斷是否進(jìn)了
7、黑球,再判斷玩家其中一方的球是否都打進(jìn)。算法:通過調(diào)用自定義畫圖函數(shù)drawtable ()和drawOO ()畫出游戲界面, 得到鍵盤輸入鍵,游戲中按“esc”退出;通過無限循環(huán)和調(diào)用函數(shù)訃算各球運(yùn)動(dòng) 路徑,知道有一方勝出時(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)系上傳者。文件的所有權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年石英玻璃材料及制品合作協(xié)議書
- 2025年多媒體集成合作協(xié)議書
- 《基礎(chǔ)會(huì)計(jì)》繼續(xù)教育考試題及答案
- 2025年代保管檔案協(xié)議參考模板(三篇)
- 2025年二年級(jí)期末工作總結(jié)模版(二篇)
- 2025年中間人傭金協(xié)議(2篇)
- 2025年產(chǎn)品租賃協(xié)議標(biāo)準(zhǔn)樣本(2篇)
- 2025年二手車市場汽車買賣協(xié)議(三篇)
- 2025年中外來件裝配合同標(biāo)準(zhǔn)樣本(2篇)
- 2025年五年級(jí)下學(xué)期語文教學(xué)工作總結(jié)(2篇)
- 金屬表面處理中的冷噴涂技術(shù)
- 河北省石家莊市2023-2024學(xué)年高一上學(xué)期期末教學(xué)質(zhì)量檢測化學(xué)試題(解析版)
- 黑龍江省齊齊哈爾市2023-2024學(xué)年高一上學(xué)期1月期末英語試題(含答案解析)
- 綜合素質(zhì)能力提升培訓(xùn)
- 測井監(jiān)督管理手冊
- 冷庫庫房招商方案
- 麥當(dāng)勞市場調(diào)研
- 視頻監(jiān)控維保項(xiàng)目投標(biāo)方案(技術(shù)標(biāo))
- 2024標(biāo)準(zhǔn)版安全生產(chǎn)責(zé)任制培訓(xùn)記錄
- 中英旅游文本用詞的共同特點(diǎn)及其翻譯
- 城市區(qū)域環(huán)境噪聲監(jiān)測實(shí)驗(yàn)報(bào)告
評(píng)論
0/150
提交評(píng)論