用C語言編小遊戲

2023-01-05 15:36:04 字數 3480 閱讀 7568

純真童趣的《泡泡堂》,還有武林情仇,笑傲江湖的《劍俠情緣on

line》.它是e時代常談的話題,是互動式娛樂的主力軍,是一種

高層次的綜合藝術,更是乙個民族的文化,世界觀的全新傳播方式

.作為遊戲玩家的我們,是不是想設計乙個屬於自己的遊戲呢?

愛玩是人的天性,而c語言是我們計算機專業都要學習的一門基礎

學科.一般來說,是比較枯燥的.那麼,我們能不能通過編一些小

遊戲來提高它的趣味性呢?這樣學習程式設計,就不會是一件艱苦

,枯燥的事,它變得象電腦遊戲一樣充滿好奇,富有樂趣.這正是

我發貼的目的.

1, 總是從hello,world開始

學習程式設計的第乙個程式,一般就是列印乙個親切的詞語——"hell

o,world!".讓我們來看看這個最簡單的c程式:

#incolude < /*把輸入輸出函式的標頭檔案包含進來*/

int main()

下面我們發現幾個值得改進的地方,1,程式的執行結果一閃而過

.2,每執行這個程式一次都能看見上次執行留下的字元.3,我們

還希望螢幕輸出乙個笑臉來歡迎我們.(大家不要小看了這個笑臉

曾經有人發貼專門問呢)讓我們來改進一下這個程式吧!

1,在return語句的前面加一句:getch ();,表示按任意鍵結

束.2,在printf語句前用clrscr函式清屏,要使用這個函式和get

ch函式,需要在程式開頭再包含標頭檔案碼也有

許多非常好玩的字元,比如ascii碼值為2的就是乙個笑臉,我們可

以用printf("%c", 2)來輸出乙個笑臉.

現在我們把hello,world程式改成乙個更好看的hello,world了.下

麵讓我們開始做遊戲吧!

2, 心動的開始,乙個運動中的笑臉

大家小時侯喜歡看動畫片嗎?哈哈,我猜你們都喜歡吧!下面就讓

我們來做乙個小動畫吧.在螢幕上顯示乙個運動的小笑臉,而且當

它到達螢幕的邊緣時會自動彈回來.

先在程式定義乙個在螢幕中運動的點的結構:

struct move_point

; 運動的原理是,先擦去物體先前的軌跡,讓物體按其速度移動一段

距離,再畫出該物體.讓我們看到以下**:

gotoxy( 把游標移到指定的座標*/

printf(" ");/*輸出乙個空格,把先前的字元擦去*/

然後我們讓物體按其速度運動:

+= 水平方向按x軸的速度運動*/

+= 垂直方向按y軸的速度運動*/

運動後還要判斷物體是否出界,如果出了界,就令物體**,即讓

它下一刻的速度

等於現在的速度的相反數.最後列印出這個笑臉:

gotoxy(

printf("%c\b", 2); /*輸出ascii碼值為2的"笑臉"字元*/

怎麼樣?是不是很有趣呢?不過這個笑臉一直是自己運動,能不能讓我們來控制它運動呢?答案是肯定的,讓我們繼續往下學吧!

3, 互動的實現——讓我們來控制笑臉運動這個程式的主要功能是接受按鍵,如果接收的是方向鍵,就讓笑臉順著方向移動,如果接收的是esc鍵就退出程式,其他按鍵則忽略處理.接受按鍵我們用以下兩條語句:

while (bioskey(1) == 0);/*等待按鍵*/

key = bioskey(0);/*把接收的按鍵的鍵盤碼賦給變數key*/

然後用switch語句來判斷按鍵以及執行相關操作,如下:

switch (key) /*對變數key的值進行判斷case up: /*如果按的是向上鍵break; /*讓物體向上運動,並退出switch*/

case down: /*如果按的是向下鍵break; /*讓物體向下運動,並退出switch*/

case left: /*向左鍵break;;/*向左運動*/

case right: /*向右鍵break;/*向右運動2007-8-4 08:39 回覆可樂晚安

2位粉絲

2樓default:

break;/*其他按鍵則忽略處理怎麼樣,是不是有了玩遊戲的感覺了?不過這個程式沒有什麼目的

,也沒有什麼判斷勝負的條件.下面我們就利用這個能控制它移動的笑臉來做乙個更有趣的遊戲吧!

4, 在迷宮中探索小時侯,我常在一些小人書和雜誌上看見一些迷宮的遊戲,非常喜歡玩,還常到一些書上找迷宮玩呢.好的,現在我們用c語言來編個迷宮的遊戲,重溫一下童年的樂趣.

首先,我們定義乙個二維陣列map,用它來儲存迷宮的地圖,其中m

ap[x][y] == '#'表示在(x,y)座標上的點是牆壁.drawmap函式在螢幕上輸出迷宮的地圖和一些歡迎資訊.

在main函式裡,我們定義了"小人"man的座標和"目的地"des的座標.在遊戲迴圈中,我們增加了一些用來判斷勝負的語句:

if ( == && == /*如果人的座標等於目的地的座標gotoxy(35, 3);

printf("ok! you win!"); /*輸出勝利資訊在判斷按鍵時,如果玩家按的是方向鍵,我們還要先判斷前面是不是有"牆壁",如果有的話,就不能往前移動了.

好的,我們在判斷按鍵的switch語句的各個分支加上了判斷語句,如下:

if (mapbreak;/*如果前面是牆壁,就不執行下去*/

哇噻!真棒,我們做出了乙個完整的遊戲了.當然你還可以通過修改二維陣列map來修改迷宮的地圖,讓它更有挑戰性.不過,我們要設計乙個更好玩的遊戲——

5, 聰明的搬運

運工大家一定玩過"搬運工"的遊戲吧!這是在電腦和電子字典上較流行的益智遊戲,讓我們動手做乙個屬於自己的"搬運工"吧!

程式依然用陣列map來儲存地圖,陣列元素如果為空格則表示什麼也沒有,'b'表示箱子,'#'表示牆壁,'*'表示目的地,'i

'表示箱子在目的地.我們以後每推一下箱子,不但要改變螢幕的顯示,也要改變map相應元素的值.

遊戲的主迴圈依然是接受按鍵.當接收乙個方向鍵,需要判斷小人前面一格的狀態,如果是空地或目的地,則人物可以直接移動;如果是牆壁,則不可移動;如果是箱子或目的地上的箱子,則需要繼續判斷箱子前面一格的狀態:如果前一格是空地或目的地,則人推箱子前進,否則不可移動.

好的,我們在switch中增加了這些判斷語句.

程式還有乙個重要的功能就是判斷勝利.陣列des用來記錄全部目的地的座標,我們每執行一步操作後,程式就要通過des陣列判斷這些目的地上是否都有箱子了.

真棒啊!我們可以做遊戲了.而且是乙個老少皆宜,趣味十足的遊戲呢!當然,我們可以通過修改map陣列來製作不同的遊戲地圖,

我們還可以相互分享好的遊戲地圖呢.

尾聲:在c++等高階語言還沒出來的時候,很多應用程式也是c語言開發的

.c語言在與硬體聯絡緊密的程式設計中,也占有重要地位.

其實我覺得學習程式設計,可以通過一些小遊戲,實用的例子來學習.

象學習**的人,不是要等到把全部樂理學完後才演奏乙個完整的曲子.而是剛開始學時就有一些簡單的曲子讓你演奏,讓你立刻就有成就感,讓你很快就能賣弄出來在別人面前表現自己了.通過編遊戲來學習程式設計,把學習變成遊戲,不失為學習計算機的一種好方法.

好了,編遊戲就這麼簡單,希望大家也嘗試用c語言或其他的語言來做幾個自己喜歡的小遊戲.

主持用的暖場小遊戲

主持暖場 會議 培訓 晚會等可用的暖場小遊戲 咱們聚樂部經常有活動,需要有人做主持人,做主持人需要快速暖場,讓大家互相認識或者熱絡。掌握一些遊戲,動的,靜的,室內的,戶外的,坐的,唱的,文的,武的,很重要.007遊戲 規則 1 大家站成一圈,5 10人為佳。2 a任意指乙個人 b 說 0 b接著任意...

用C語言表白

include stdio.h include string.h int start int gift int surelove main int seelove while strcmp i love fuyang love 0 printf 輸入正確,你知道的,我也愛寶貝 n getchar p...

C語言課題設計報告 猜數字遊戲

課程設計報告 課程名稱 c 語言課程設計 課題名稱猜數字遊戲 專業電氣工程及其自動化 班級1183 學號13 姓名魯響 指導教師王穎 2012年 6 月 25 日 湖南工程學院 課程設計任務書 課程名稱 c語言程式設計 課題猜數字遊戲 專業班級電氣1183 學生姓名魯響 學號201113010313...