當前位置:編程學習大全網 - 編程語言 - 教妳如何使用C語言編寫簡單小遊戲

教妳如何使用C語言編寫簡單小遊戲

愛玩是人的天性,而C語言是我們計算機專業都要學習的壹門基礎 學科.壹般來說,是比較枯燥的.那麽,我們能不能通過編壹些小遊戲來提高它的趣味性呢?這樣學習程序設計,就不會是壹件艱苦 ,枯燥的事,它變得象電腦遊戲壹樣充滿好奇,富有樂趣. 1, 總是從Hello,world開始 學習編程的第壹個程序,壹般就是打印壹個親切的詞語——"Hell o,world!".讓我們來看看這個最簡單的C程序:#incolude /*把輸入輸出函數的頭文件包含進來*/int main(){printf("Hello, world!");/*在屏幕上輸出字符串"Hello,world!"*/return 0;/*退出main函數,並返回0*/} 下面我們發現幾個值得改進的地方,1,程序的運行結果壹閃而過 .2,每執行這個程序壹次都能看見上次運行留下的字符.3,我們 還希望屏幕輸出壹個笑臉來歡迎我們. 讓我們來改進壹下這個程序吧!1,在return語句的前面加壹句:getch ();,表示按任意鍵結束.2,在printf語句前用clrscr函數清屏,要使用這個函數和getch函數,需要在程序開頭再包含頭文件conio.h.3,ASCII碼也有 許多非常好玩的字符,比如ASCII碼值為2的就是壹個笑臉,我們可 以用printf("%c", 2)來輸出壹個笑臉. 現在我們把Hello,world程序改成壹個更好看的Hello,world了.下面讓我們開始做遊戲吧! 2, 心動的開始,壹個運動中的笑臉 大家小時侯喜歡看動畫片嗎?哈哈,我猜妳們都喜歡吧!下面就讓我們來做壹個小動畫吧.在屏幕上顯示壹個運動的小笑臉,而且當它到達屏幕的邊緣時會自動彈回來.先在程序定義壹個在屏幕中運動的點的結構:struct move_point{ int x, y;/*該點的位置,包括x坐標和y坐標*/ int xv, yv;/*該點在x軸,y軸的速度*/};運動的原理是,先擦去物體先前的軌跡,讓物體按其速度移動壹段距離,再畫出該物體.讓我們看到以下代碼:gotoxy(man.x, man.y);/*把光標移到指定的坐標*/printf(" ");/*輸出壹個空格,把先前的字符擦去*/然後我們讓物體按其速度運動:man.x += man.xv;/*水平方向按x軸的速度運動*/man.y += man.yv;/*垂直方向按y軸的速度運動*/運動後還要判斷物體是否出界,如果出了界,就令物體反彈,即讓 它下壹刻的速度等於現在的速度的相反數.最後打印出這個笑臉:gotoxy(man.x, man.y);printf("%c\b", 2); /*輸出ASCII碼值為2的"笑臉"字符*/怎麽樣?是不是很有趣呢?不過這個笑臉壹直是自己運動,能不能 讓我們來控制它運動呢?不過這個程序沒有什麽目的,也沒有什麽判斷勝負的條件.下面我們就利用這個能控制它移動的笑臉來做壹個更有趣的遊戲吧! 4, 在迷宮中探索 小時侯,我常在壹些小人書和雜誌上看見壹些迷宮的遊戲,非常喜歡玩,還常到壹些書上找迷宮玩呢.好的,現在我們用C語言來編個迷宮的遊戲,重溫壹下童年的樂趣. 首先,我們定義壹個二維數組map,用它來保存迷宮的地圖,其中map[x][y] == '#'表示在(x,y)坐標上的點是墻壁.DrawMap函數在屏幕上輸出迷宮的地圖和壹些歡迎信息.在main函數裏,我們定義了"小人"man的坐標和"目的地"des的 坐標.在遊戲循環中,我們增加了壹些用來判斷勝負的語句:if (man.x == des.x && man.y == des.y) /*如果人的坐標等於目的地的坐標*/{ gotoxy(35, 3); printf("Ok! You win!"); /*輸出勝利信息*/….}在判斷按鍵時,如果玩家按的是方向鍵,我們還要先判斷前面是不是有"墻壁",如果有的話,就不能往前移動了.好的,我們在判斷按鍵的switch語句的各個分支加上了判斷語句,如下:if (map[…][…] == '#') break;/*如果前面是墻壁,就不執行下去*/哇噻!真棒,我們做出了壹個完整的遊戲了.當然妳還可以通過修改二維數組map來修改迷宮的地圖,讓它更有挑戰性.不過,我們要設計壹個更好玩的遊戲—— 5, 聰明的搬運工 大家壹定玩過"搬運工"的遊戲吧!這是在電腦和電子字典上較流行的益智遊戲,讓我們動手做壹個屬於自己的"搬運工"吧!程序依然用數組map來保存地圖,數組元素如果為空格則表示什麽也沒有,'b'表示箱子,'#'表示墻壁,'*'表示目的地,'i'表示箱子在目的地.我們以後每推壹下箱子,不但要改變屏幕的顯示,也要改變map相應元素的值.遊戲的主循環依然是接受按鍵.當接收壹個方向鍵,需要判斷小人前面壹格的狀態,如果是空地或目的地,則人物可以直接移動;如果是墻壁,則不可移動;如果是箱子或目的地上的箱子,則需要繼續判斷箱子前面壹格的狀態:如果前壹格是空地或目的地,則人推箱子前進,否則不可移動.好的,我們在switch中增加了這些判斷語句.程序還有壹個重要的功能就是判斷勝利.數組Des用來記錄全部目的地的坐標,我們每執行壹步操作後,程序就要通過Des數組判斷這些目的地上是否都有箱子了.真棒啊!我們可以做遊戲了.而且是壹個老少皆宜,趣味十足的遊戲呢!當然,我們可以通過修改map數組來制作不同的遊戲地圖,我們還可以相互分享好的遊戲地圖呢. 尾聲: 在C++等高級語言還沒出來的時候,很多應用程序也是C語言開發的.C語言在與硬件聯系緊密的編程中,也占有重要地位.其實我覺得學習編程,可以通過壹些小遊戲,實用的例子來學習.象學習音樂的人,不是要等到把全部樂理學完後才演奏壹個完整的曲子.而是剛開始學時就有壹些簡單的曲子讓妳演奏,讓妳立刻就有成就感,讓妳很快就能賣弄出來在別人面前表現自己了.通過編遊戲來學習編程,把學習變成遊戲,不失為學習計算機的壹種好方法. 好了,編遊戲就這麽簡單,希望大家也嘗試用C語言或其他的語言來做幾個自己喜歡的小遊戲.

  • 上一篇:C程序設計
  • 下一篇:幼兒園科學領域活動實施方案5篇
  • copyright 2024編程學習大全網