


下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
使用C語言編寫簡單小游戲使用C語言編寫簡單小游戲使用C語言編寫簡單小游戲xxx公司使用C語言編寫簡單小游戲文件編號(hào):文件日期:修訂次數(shù):第1.0次更改批準(zhǔn)審核制定方案設(shè)計(jì),管理制度純真童趣的《泡泡堂》,還有武林情仇,笑傲江湖的《劍俠情緣online》.它是e時(shí)代常談的話題,是交互式娛樂的主力軍,是一種高層次的綜合藝術(shù),更是一個(gè)民族的文化,世界觀的全新傳播方式.作為游戲玩家的我們,是不是想設(shè)計(jì)一個(gè)屬于自己的游戲呢
愛玩是人的天性,而C語言是我們計(jì)算機(jī)專業(yè)都要學(xué)習(xí)的一門基礎(chǔ)學(xué)科.一般來說,是比較枯燥的.那么,我們能不能通過編一些小游戲來提高它的趣味性呢這樣學(xué)習(xí)程序設(shè)計(jì),就不會(huì)是一件艱苦,枯燥的事,它變得象電腦游戲一樣充滿好奇,富有樂趣.
1,
總是從Hello,world開始學(xué)習(xí)編程的第一個(gè)程序,一般就是打印一個(gè)親切的詞語——"Hello,world!".讓我們來看看這個(gè)最簡單的C程序:#incolude<>/*把輸入輸出函數(shù)的頭文件包含進(jìn)來*/intmain(){printf("Hello,
world!");/*在屏幕上輸出字符串"Hello,world!"*/return0;/*退出main函數(shù),并返回0*/}
下面我們發(fā)現(xiàn)幾個(gè)值得改進(jìn)的地方,1,程序的運(yùn)行結(jié)果一閃而過.2,每執(zhí)行這個(gè)程序一次都能看見上次運(yùn)行留下的字符.3,我們還希望屏幕輸出一個(gè)笑臉來歡迎我們.讓我們來改進(jìn)一下這個(gè)程序吧!1,在return語句的前面加一句:getch();,表示按任意鍵結(jié)束.2,在printf語句前用clrscr函數(shù)清屏,要使用這個(gè)函數(shù)和getch函數(shù),需要在程序開頭再包含頭文件碼也有許多非常好玩的字符,比如ASCII碼值為2的就是一個(gè)笑臉,我們可以用printf("%c",2)來輸出一個(gè)笑臉.現(xiàn)在我們把Hello,world程序改成一個(gè)更好看的Hello,world了.下面讓我們開始做游戲吧!
2,
心動(dòng)的開始,一個(gè)運(yùn)動(dòng)中的笑臉大家小時(shí)侯喜歡看動(dòng)畫片嗎哈哈,我猜你們都喜歡吧!下面就讓我們來做一個(gè)小動(dòng)畫吧.在屏幕上顯示一個(gè)運(yùn)動(dòng)的小笑臉,而且當(dāng)它到達(dá)屏幕的邊緣時(shí)會(huì)自動(dòng)彈回來.先在程序定義一個(gè)在屏幕中運(yùn)動(dòng)的點(diǎn)的結(jié)構(gòu):structmove_point{
intx,y;/*該點(diǎn)的位置,包括x坐標(biāo)和y坐標(biāo)*/
intxv,yv;/*該點(diǎn)在x軸,y軸的速度*/};運(yùn)動(dòng)的原理是,先擦去物體先前的軌跡,讓物體按其速度移動(dòng)一段距離,再畫出該物體.讓我們看到以下代碼:gotoxy,;/*把光標(biāo)移到指定的坐標(biāo)*/printf("");/*輸出一個(gè)空格,把先前的字符擦去*/然后我們讓物體按其速度運(yùn)動(dòng):+=;/*水平方向按x軸的速度運(yùn)動(dòng)*/+=;/*垂直方向按y軸的速度運(yùn)動(dòng)*/運(yùn)動(dòng)后還要判斷物體是否出界,如果出了界,就令物體反彈,即讓它下一刻的速度等于現(xiàn)在的速度的相反數(shù).最后打印出這個(gè)笑臉:gotoxy,;printf("%c\b",2);/*輸出ASCII碼值為2的"笑臉"字符*/怎么樣是不是很有趣呢不過這個(gè)笑臉一直是自己運(yùn)動(dòng),能不能讓我們來控制它運(yùn)動(dòng)呢答案是肯定的,讓我們繼續(xù)往下學(xué)吧!
3,
交互的實(shí)現(xiàn)——讓我們來控制笑臉運(yùn)動(dòng)
這個(gè)程序的主要功能是接受按鍵,如果接收的是方向鍵,就讓笑臉順著方向移動(dòng),如果接收的是ESC鍵就退出程序,其他按鍵則忽略處理.接受按鍵我們用以下兩條語句:while(bioskey(1)==0);/*等待按鍵*/key=bioskey(0);/*把接收的按鍵的鍵盤碼賦給變量key*/然后用switch語句來判斷按鍵以及執(zhí)行相關(guān)操作,如下:switch(key)/*對(duì)變量key的值進(jìn)行判斷*/{caseUP:
/*如果按的是向上鍵*/
…break;/*讓物體向上運(yùn)動(dòng),并退出switch*/caseDOWN:/*如果按的是向下鍵*/
…break;/*讓物體向下運(yùn)動(dòng),并退出switch*/caseLEFT:
/*向左鍵*/
…break;;/*向左運(yùn)動(dòng)*/caseRIGHT:/*向右鍵*/
…break;/*向右運(yùn)動(dòng)*/default:
break;/*其他按鍵則忽略處理*/}怎么樣,是不是有了玩游戲的感覺了不過這個(gè)程序沒有什么目的,也沒有什么判斷勝負(fù)的條件.下面我們就利用這個(gè)能控制它移動(dòng)的笑臉來做一個(gè)更有趣的游戲吧!
4,
在迷宮中探索
小時(shí)侯,我常在一些小人書和雜志上看見一些迷宮的游戲,非常喜歡玩,還常到一些書上找迷宮玩呢.好的,現(xiàn)在我們用C語言來編個(gè)迷宮的游戲,重溫一下童年的樂趣.
首先,我們定義一個(gè)二維數(shù)組map,用它來保存迷宮的地圖,其中map[x][y]=='#'表示在(x,y)坐標(biāo)上的點(diǎn)是墻壁.DrawMap函數(shù)在屏幕上輸出迷宮的地圖和一些歡迎信息.在main函數(shù)里,我們定義了"小人"man的坐標(biāo)和"目的地"des的坐標(biāo).在游戲循環(huán)中,我們?cè)黾恿艘恍┯脕砼袛鄤儇?fù)的語句:if==&&==/*如果人的坐標(biāo)等于目的地的坐標(biāo)*/{
gotoxy(35,3);
printf("Ok!Youwin!");/*輸出勝利信息*/….}在判斷按鍵時(shí),如果玩家按的是方向鍵,我們還要先判斷前面是不是有"墻壁",如果有的話,就不能往前移動(dòng)了.好的,我們?cè)谂袛喟存I的switch語句的各個(gè)分支加上了判斷語句,如下:if(map[…][…]=='#')break;/*如果前面是墻壁,就不執(zhí)行下去*/哇噻!真棒,我們做出了一個(gè)完整的游戲了.當(dāng)然你還可以通過修改二維數(shù)組map來修改迷宮的地圖,讓它更有挑戰(zhàn)性.不過,我們要設(shè)計(jì)一個(gè)更好玩的游戲——
5,
聰明的搬運(yùn)工
大家一定玩過"搬運(yùn)工"的游戲吧!這是在電腦和電子字典上較流行的益智游戲,讓我們動(dòng)手做一個(gè)屬于自己的"搬運(yùn)工"吧!程序依然用數(shù)組map來保存地圖,數(shù)組元素如果為空格則表示什么也沒有,'b'表示箱子,'#'表示墻壁,'*'表示目的地,'i'表示箱子在目的地.我們以后每推一下箱子,不但要改變屏幕的顯示,也要改變map相應(yīng)元素的值.游戲的主循環(huán)依然是接受按鍵.當(dāng)接收一個(gè)方向鍵,需要判斷小人前面一格的狀態(tài),如果是空地或目的地,則人物可以直接移動(dòng);如果是墻壁,則不可移動(dòng);如果是箱子或目的地上的箱子,則需要繼續(xù)判斷箱子前面一格的狀態(tài):如果前一格是空地或目的地,則人推箱子前進(jìn),否則不可移動(dòng).好的,我們?cè)趕witch中增加了這些判斷語句.程序還有一個(gè)重要的功能就是判斷勝利.數(shù)組Des用來記錄全部目的地的坐標(biāo),我們每執(zhí)行一步操作后,程序就要通過Des數(shù)組判斷這些目的地上是否都有箱子了.真棒啊!我們可以做游戲了.而且是一個(gè)老少皆宜,趣味十足的游戲呢!當(dāng)然,我們可以通過修改map數(shù)組來制作不同的游戲地圖,我們還可以相互分享好的游戲地圖呢.
尾聲:
在C++等高級(jí)語言還沒出來的時(shí)候,很多應(yīng)用程序也是C語言開發(fā)的.C語言在與硬件聯(lián)系緊密的編程中,也占有重要地位.其實(shí)我覺得學(xué)習(xí)編程,可以通過一些小游戲,實(shí)用的例子來學(xué)習(xí).象學(xué)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 六年級(jí)上冊(cè)數(shù)學(xué)教案- 1.6圓的面積(一) 北師大版
- 合同制消防員報(bào)名表(2025年版)
- 一年級(jí)上冊(cè)數(shù)學(xué)教案-小雞吃食 10的加減法-北師大版
- 統(tǒng)編版語文一年級(jí)下冊(cè)第一單元1春夏秋冬 公開課一等獎(jiǎng)創(chuàng)新教案(2課時(shí))
- 2025年海口經(jīng)濟(jì)學(xué)院單招職業(yè)技能測(cè)試題庫及參考答案
- 2024年液位傳感器項(xiàng)目資金籌措計(jì)劃書代可行性研究報(bào)告
- 2025年湖南省株洲市單招職業(yè)適應(yīng)性測(cè)試題庫帶答案
- 2025年度學(xué)校代課教師教學(xué)資源共享平臺(tái)建設(shè)合同
- 2025年度客戶信息保密外包服務(wù)合同
- 2025年度電信服務(wù)合同單方違約解除賠償倍數(shù)計(jì)算標(biāo)準(zhǔn)合同
- 羽毛球課件教學(xué)課件
- 多重耐藥菌的預(yù)防及護(hù)理課件
- 抽水蓄能電站課件
- GB/T 25052-2024連續(xù)熱浸鍍層鋼板和鋼帶尺寸、外形、重量及允許偏差
- 河北科大項(xiàng)目實(shí)施計(jì)劃書
- 消防設(shè)施操作和維護(hù)保養(yǎng)規(guī)程
- -精益與智能工廠三年規(guī)劃
- 中醫(yī)基礎(chǔ)理論(一)
- 中小學(xué)校園安全教育主題班會(huì)課件:筑牢安全紅線、守護(hù)校園平安
- 高空作業(yè)考試題(帶答案)
- 北師大版數(shù)學(xué)八年級(jí)上冊(cè)1.1探索勾股定理 同步練習(xí)【基礎(chǔ)版】(附答案解析)
評(píng)論
0/150
提交評(píng)論