導航:首頁 > 編程語言 > c語言游戲編程教程

c語言游戲編程教程

發布時間:2024-11-22 01:32:36

A. c語言編程 編一個猜數字游戲

源碼如下:

/*File:guess.c*/

#include<stdio.h>/*standardinput&outputsupport*/

#include<stdlib.h>/*srand()rand()*/

#include<time.h>/*time()*/

/*宏定義*/

#defineNUMBER_LENGTH5/*隨機數長度*/

#defineNUMBER_LIMIT10/*隨機數限制,每一位0-9*/

#defineINPUT_LENTH128/*輸入緩沖區大小*/

chargoal[NUMBER_LENGTH]={0};/*保存隨機數*/

charflag[NUMBER_LIMIT]={0};/*保存隨機數標志,保證不重復*/

charinput[INPUT_LENTH]={0};/*保存輸入*/

/*初始化用於保存數據的數組*/

voidinitData()

{

inti=0;

while(i<NUMBER_LENGTH)

goal[i++]=0;

i=0;

while(i<NUMBER_LIMIT)

{

flag[i++]=0;

}

}

/*初始化用於保存緩沖區的數組*/

voidinitBuffer()

{

inti=0;

while(i<INPUT_LENTH)

input[i++]=0;

}

/*顯示猜測結果*/

voiddisplay()

{

intcount=0;

inti=0;

while(i<NUMBER_LENGTH)

{

if(input[i]==goal[i])

{

printf("%c",'o');

count++;

}

else

{

printf("%c",'x');

}

i++;

}

printf(" RIGHT:%dbit(s) ",count);

if(count==NUMBER_LENGTH)

{

printf("Youwin!Thenumberis%s. ",goal);

exit(0);

}

}

/*生成隨機數*/

voidgeneral()

{

/*以時間作為時間種子保證生成的隨機數真正具有隨機性質*/

srand((unsignedint)time(NULL));

inti=0;

while(i<NUMBER_LENGTH)

{

chartmp;

do

{

tmp='0'+((i!=0)?(rand()%10):(1+rand()%9));

}while(flag[tmp]!=0);

flag[tmp]=1;

goal[i++]=tmp;

}

}

/*輸入方法,用於猜測*/

voidguess()

{

printf(": ");

scanf("%s",input);

display();

initBuffer();

}

/*主函數,程序主框架*/

intmain(intargc,constchar*argv[])

{

initData();

initBuffer();

general();

while(1)guess();

return0;

}

==============================================

運行結果見附圖,希望我的回答能夠對你有所幫助。

B. 怎樣用C語言編程積木游戲

1)第一行include語句前沒有加#。不知道是不是你粘貼程序的時候漏了。
include<stdio.h>
-->
#include
<stdio.h>
2)在分積木的for循環中,應該為for
(i=0;
i<n-1;
i++),而不是i<n-2。因為在這個循環中,a[i]是獲得積木的小朋友;a[i+1]是給出積木的小朋友。按照你原來的循環(i<n-2),那麼最後一個獲得積木的是a[n-3],最後一個給出積木的是a[n-2],這樣a[n-2]就得不到a[n-1]的積木了。
3)在分積木的for循環中,a[i+1]把一半的積木分給左邊的小朋友a[i]之後,剩餘的積木數量卻沒有減少。
4)循環外處理a[0]分給a[n-1]的特殊情況時,應該是按a[0]得到a[1]的積木前的數量來算。而你現在是a[0]拿到a[1]的一半積木後,再把當前的一半分給a[n-1]。
這樣修改後的代碼片段為:
int
a[100],i,n,b;
...
...
b
=
a[0];
for(i=0;
i<n
-
1;
i++)
{
a[i]
+=
a[i+1]
/
2;
/*把自己的積木分一半給左邊的小朋友*/
a[i+1]
/=
2;
}
a[i]
+=
b
/
2;
a[0]
-=
b
/
2;

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語言或其他的語言來做幾個自己喜歡的小游戲.

D. 猜數字游戲c語言編程一到五

終端編碼問題,我用了英文,但功能是完整的,圖一樂:

#include<stdio.h>

#include<stdlib.h>

#include<time.h>


intmain(){

intkey,input;

srand(time(NULL));

key=rand()%5+1;

printf("GuesswhoamI?(from1to5,0forexit) ");

printf("Youranswer:");

while(1){

scanf("%d%*c",&input);

if(input==0){

break;

}elseif(input==key){

printf("Yes!Congratulations!");

break;

}else{

printf("No...Tryagain! Youranswer:");

}

}

return0;

}

E. c鍋氭父鎴忎唬鐮佺畝鍗曟父鎴忎唬鐮乧璇璦


C璇璦鏄涓縐嶉潪甯告祦琛岀殑緙栫▼璇璦錛屽畠鍙浠ヨ鐢ㄤ簬鍚勭嶄笉鍚岀殑搴旂敤紼嬪簭寮鍙戱紝鍖呮嫭娓告垙寮鍙戙備簨瀹炰笂錛岃稿氳憲鍚嶇殑娓告垙閮芥槸鐢–璇璦緙栧啓鐨勩傚洜姝わ紝濡傛灉浣犳兂鎴愪負涓鍚嶆父鎴忓紑鍙戜漢鍛橈紝瀛︿範濡備綍浣跨敤C璇璦緙栧啓娓告垙浠g爜鏄闈炲父閲嶈佺殑銆
棣栧厛錛屾垜浠闇瑕佷簡瑙C璇璦鐨勪竴浜涘熀鏈姒傚康鍜岃娉曘侰璇璦鏄涓縐嶉珮綰х紪紼嬭璦錛屽畠浣跨敤涓浜涘叧閿瀛楀拰榪愮畻絎︽潵鎵ц屽悇縐嶆搷浣溿備緥濡傦紝濡傛灉浣犳兂澹版槑涓涓鍙橀噺鏉ュ瓨鍌ㄧ帺瀹剁殑鍒嗘暟錛屼綘鍙浠ヤ嬌鐢ㄤ互涓嬩唬鐮侊細
intscore;
榪欎釜浠g爜澹版槑浜嗕竴涓鍚嶄負鈥渟core鈥濈殑鏁存暟鍙橀噺銆備綘鍙浠ヤ嬌鐢ㄥ叾浠栫被鍨嬬殑鍙橀噺鏉ュ瓨鍌ㄥ叾浠栫被鍨嬬殑鏁版嵁錛屼緥濡傛誕鐐規暟銆佸瓧絎﹀拰甯冨皵鍊箋
涓鏃︿綘瀛︿細浜嗗備綍澹版槑鍙橀噺錛屼綘灝卞彲浠ュ紑濮嬬紪鍐欐父鎴忎唬鐮佷簡銆備竴涓綆鍗曠殑娓告垙閫氬父鍖呭惈涓涓寰鐜錛屽畠涓嶆柇鍦版洿鏂版父鎴忕姸鎬佸苟澶勭悊鐜╁惰緭鍏ャ備緥濡傦紝涓嬮潰鏄涓涓浣跨敤C璇璦緙栧啓鐨勭畝鍗曟父鎴忓驚鐜錛
while(running){
//鏇存柊娓告垙鐘舵
update_game_state();
//澶勭悊鐜╁惰緭鍏
handle_input();
//緇樺埗娓告垙鐢婚潰
draw_game();
}
榪欎釜浠g爜鐗囨典嬌鐢ㄤ竴涓鍚嶄負鈥渞unning鈥濈殑甯冨皵鍙橀噺鏉ユ帶鍒舵父鎴忓驚鐜鐨勮繍琛屻傚湪娓告垙寰鐜涓錛屽畠渚濇¤皟鐢ㄤ簡涓変釜鍑芥暟錛歶pdate_game_state銆乭andle_input鍜宒raw_game銆傝繖浜涘嚱鏁板彲浠ュ湪鍏朵粬鍦版柟瀹氫箟錛屽苟涓旀牴鎹娓告垙鐨勯渶瑕佹墽琛屽悇縐嶆搷浣溿
闄や簡寰鐜涔嬪栵紝C璇璦榪樻彁渚涗簡涓浜涘叾浠栫殑鍔熻兘錛屼緥濡傛潯浠惰鍙ャ佸驚鐜璇鍙ュ拰鍑芥暟銆傝繖浜涘姛鑳藉彲浠ュ府鍔╀綘緙栧啓鏇村嶆潅鐨勬父鎴忎唬鐮侊紝渚嬪傚疄鐜版父鎴忎漢鐗╃殑縐誨姩銆佸疄鐜版父鎴忕殑鐗╃悊寮曟搸絳夌瓑銆
鏈鍚庯紝浣滀負涓鍚嶆父鎴忓紑鍙戜漢鍛橈紝浣犺繕闇瑕佸︿細濡備綍浣跨敤娓告垙寮曟搸鍜屽叾浠栧伐鍏鋒潵綆鍖栨父鎴忓紑鍙戣繃紼嬨傝稿氭父鎴忓紩鎿庯紝渚嬪俇nity鍜孶nrealEngine錛屼嬌鐢–璇璦浣滀負瀹冧滑鐨勭紪紼嬭璦銆傝繖浜涘紩鎿庢彁渚涗簡涓浜涢珮綰у姛鑳斤紝渚嬪傚浘褰㈡覆鏌撱佺墿鐞嗘ā鎷熷拰闊抽戝勭悊錛屽彲浠ヨ╀綘鏇磋交鏉懼湴寮鍙戞父鎴忋
鎬諱箣錛屽湪C璇璦涓緙栧啓娓告垙浠g爜闇瑕佸︿範涓浜涘熀鏈鐭ヨ瘑鍜岃娉曪紝騫朵笖闇瑕佹帉鎻′竴浜涢珮綰х殑娓告垙寮鍙戞妧鏈銆傚傛灉浣犳兂鎴愪負涓鍚嶆父鎴忓紑鍙戜漢鍛橈紝瀛︿範C璇璦緙栫▼鏄闈炲父閲嶈佺殑涓姝ャ

閱讀全文

與c語言游戲編程教程相關的資料

熱點內容
ps李濤pdf 瀏覽:636
linuxfork線程 瀏覽:95
易語言編譯改名 瀏覽:721
阿里伺服器都提供什麼 瀏覽:754
cf打開伺服器接不上怎麼辦 瀏覽:901
linux下more命令 瀏覽:402
des演算法運算位數 瀏覽:375
珠海建行貸款解壓 瀏覽:635
布穀源碼iOS 瀏覽:66
雲存儲節點伺服器是啥 瀏覽:784
壓縮文件可以用pad解壓么 瀏覽:609
我的世界伺服器如何換 瀏覽:64
程序員要拒絕嗎 瀏覽:124
下期視頻怎麼解壓 瀏覽:383
方法命令函數指令 瀏覽:130
視頻已加密請輸入密碼確認 瀏覽:362
香港中產程序員 瀏覽:917
python適合什麼編譯器 瀏覽:844
雙強力夾文件夾使用方法 瀏覽:330
程序員瑜伽教學 瀏覽:809