c語言版貪吃蛇《課程設計》

2021-07-14 03:03:35 字數 3682 閱讀 7192

主要運用了游標的移動-.-

教程會在乙個月內發布-.-最近考試好多......

看**應該能看懂....

3.1 規則模組與動畫模組

1)函式原型:void gui( );void dong( );

2)功  能:利用for迴圈語句和printf,coord,sleep()函式完成游標的移動和遊戲規則的輸出。

3)變數及型別:

coord coord;  定義座標結構體,通過它來移動游標的座標。

int x,y,r,i;  定義x,y兩個變數,用來傳遞座標的位置。r為遊戲高度。i為游標與邊界距離。

4)說明:gui();通過for迴圈與游標的移動輸出分割線,然後再通過游標的移動輸出遊戲規則;dong();通過for迴圈和i,x,y的變化和sleep()的停頓效果,改變游標的位置,從外圍到內部逐次輸出,達到動畫的效果。

3.2 遊戲開始與結束選擇模組 和 遊戲難度選擇模組

1)函式原型:int kai( ); int xuan( );

2)功  能:利用for迴圈語句和printf,coord函式完成對遊戲螢幕左側的清空,然後利用printf,scanf函式輸出遊戲的選擇型別和輸入玩家的選擇。

3)變數及型別:

coord coord;  定義座標結構體,通過它來移動游標的座標。

int x,y,lp,xx;  定義x,y兩個變數,用來傳遞座標的位置;lp裡存入玩家的選擇,是kai( )函式的返回值;xx是xuan( )函式的返回值。

4)說明:通過for迴圈和游標的移動,輸出空格使螢幕為空,然後printf函式輸出提示語,scanf函式讓玩家輸入他的選擇,最後返回玩家的選擇。

3.3 遊戲主體模組

1)函式原型:int youxi(int xx,int bei);

2)功  能:利用for迴圈語句,while迴圈語句,if-else,if語句,break語句,結構體,一維,二維陣列,printf,rand,kbhit,getch,coord函式,完成整個遊戲執行的功能。

3)變數及型別:

struct nodeshen[1000]; 定義貪吃蛇的每個身體座標。

coord coord;定義座標結構體,通過它來移動游標的座標。

char map[60][30];定義遊戲地圖。

char xiang[4]=; 存放貪吃蛇的方向。

int x,y,i,r=50,d=24,ll=0,fen=0,p,wu=0,wux,wuy,fafe=0; 定義多個變數,x,y用來傳遞座標的位置;i為變數;r,d 用來代表遊戲右邊界和下邊界;ll表示貪吃蛇的長度;fen記錄貪吃蛇所吃的食物;p記錄貪吃蛇的方向;wux,wuy通過rand函式隨機得到食物的位置;wu表示食物的狀態,fafe表示遊戲的狀態。

4)說明:先通過for迴圈和游標的移動和printf清空遊戲介面和設定邊界,然後通過rand()函式得到第乙個貪吃蛇身體和它的方向;for迴圈,增加貪吃蛇的3個身體;然後rand()使隨機出現乙個食物,乙個while迴圈 + sleep 的停頓效果使遊戲暫停,printf輸出提示語,kbhit和 getch 判斷是否有鍵盤輸入和得到鍵盤輸入值,跳出while進入遊戲操作while迴圈中,通過printf輸出沒時刻的分數,通過sleep,結構體,for,printf使貪吃蛇每隔一段時間向前移動一下。kbhit和 getch 判斷是否有遊戲玩家的方向操作並得到方向值,如果輸入空格遊戲會暫停,然後可以選擇遊戲繼續或退出。食物被貪吃蛇所吃會再次隨機出現乙個食物,while迴圈一直迴圈直至遊戲失敗或遊戲退出返回遊戲得分。

3.4 遊戲失敗提示模組

1)函式原型:void jiesu( );

2)功  能:利用for迴圈語句和printf,coord函式完成對遊戲螢幕左側中間位置的清空,然後利用printf,scanf函式輸出遊戲失敗提示語。

3)變數及型別:

coord coord;  定義座標結構體,通過它來移動游標的座標。

int x,y,i,j;  定義x,y兩個變數,用來傳遞座標的位置;i,j 為迴圈變數。

4)說明:通過for迴圈和游標的移動,輸出空格使螢幕為空,然後printf函式輸出提示語。

**:

#include#include#include#include#include#include#define cx coord.x=x

#define cy coord.y=y

#define scp setconsolecursorposition(getstdhandle(std_output_handle),coord)

char map[60][30];

struct nodeshen[1000];

char xiang[4]=;

void dong();

void gui();

int kai();

int youxi();

void xiao();

int main()

int kp=youxi();

x=51;y=14;

cx;cy;scp;

printf(" ");

xiao();

if (kp==-1)

else

}sleep(100000);

return 0;

}void dong()

}sleep(100);}}

/* else if (zhiling==' ')//有點小難

}/* else

system("pause");*/}}

if (xiang[p]=='w')

if (map[x][y]=='#')

cx;cy;scp;map[x][y]='+';

printf("+");

if (!wu)

shen[1000];

char xiang[4]=;

void dong();

void gui();

int kai();

int youxi();

int xuan();

void jiesu();

int main()

; system("color 74");

gui();

dong();

while (1)

xx=xuan();

kp=youxi(nan[xx],xx);

x=51;y=14;

cx;cy;scp;

printf(" ");//消遊戲中顯示的得分...

if (kp==-1)

else

}sleep(100000);

return 0;

}int xuan()//困難程度

x=0;y=0;cx;cy;scp;

printf("請選擇遊戲困難程度:\n");

printf("1.簡單模式\n");

printf("2.一般模式\n");

printf("3.困難模式\n");

scanf("%d",&xx);

return xx;

}void dong()//開始動畫

}sleep(100);}}

}}

if (xiang[p]=='w')

if (map[x][y]=='#')

cx;cy;scp;map[x][y]='+';

printf("+");

if (!wu)

打造C語言版貪吃蛇(上)

學了程式設計後難免會有些手癢,於是飢渴難耐的我瞄上了小學的經典記憶 貪吃蛇。下面我就遊戲的設計來逐步講解我打造c語言版貪吃蛇的過程。這是乙個系列的文章,共三篇,第一篇講遊戲的主體設計,第二篇就設計的細節及具體實現給出講解,第三篇給出簡易遊戲ai的設計。遊戲中用到了windows的庫,只保證能在win...

貪吃蛇原始碼(C語言版)

貪吃蛇其實就是實現以下幾步 1 蛇的運動 通過 畫頭擦尾 來達到蛇移動的視覺效果 2 生成食物 3 蛇吃食物 實現 畫頭不擦尾 4 遊戲結束判斷 也就是蛇除了食物,其餘東西都不能碰 include include include include include define width 60 def...

用佇列寫貪吃蛇(C語言版)

by tomas 2016.3.2 程式語言 c 程式介紹 利用佇列這個資料結構編寫乙個簡單的貪吃蛇小遊戲。原理分析 佇列的特點就是先進先出 fifo 我們就是利用他的這個特點來模擬一條貪吃蛇。我們首先考慮一下這個遊戲需要哪些元素,然後怎麼用終端模擬這些元素。蛇 蛇在終端上的表示就是很多個字元連在一...