c語言做貪吃蛇遊戲

2021-10-22 18:41:16 字數 2465 閱讀 8161

閒話不多說,直接上**

#include

"stdio.h"

#include

"windows.h"

#include

"stdbool.h"

/*座標系

-------------> y||

|||x */

/*按鍵:移動: 8

4 5 6

9:暫停

*/#define x 20

#define y 70

#define wait_time 700

//移動一次需要的時間

enum

;//對食物進行標記

enum

;int map[x]

[y];

int score=0;

typedef

struct

pose;

typedef

struct

shake;

shake shake;

//製作步驟差不多如下

void

init()

;//2

void

map();

//1

void

goxy()

;//3

void

shakegrape()

;//4

void

move()

;//5

void

key();

//6void

foods()

;//7

intfoodcheck

(int x,

int y)

;//8

intisgameover()

;//9

void

show()

;//10

void

read()

;//11

intmain

(void)if

(map[shake.pose[0]

.x][shake.pose[0]

.y]==food1)

else

if(map[shake.pose[0]

.x][shake.pose[0]

.y]==food2)

}return0;

}void

init()

//初始化

;//清除游標

setconsolecursorinfo

(getstdhandle

(std_output_handle)

,&cursor_info)

; shake.len =4;

shake.pose[0]

.x =x/2;

shake.pose[0]

.y =y/2;

for(i=

0;i) shake.direction =down;

}void

map(

)for

(y=0

;y)/*********************====*/

for(x=

0;x)//給圍牆填充圖形

else

}printf

("\n");

}}void

goxy

(int x,

int y)

//移動游標到指定位置

;setconsolecursorposition

(getstdhandle

(std_output_handle)

,position);}

void

shakegrape()

//蛇的身體

}void

move()

switch

(shake.direction )

if(shake.eatfood )

}void

key(

)switch

(keys)}}

void

foods()

while(!

foodcheck

(x,y));

k=rand()

%5;goxy

(x,y);if

(k==4)

//隨機食物

else

}int

foodcheck

(int x,

int y)

//檢查食物位置是否合規

for(i=

0;ireturn1;

}int

isgameover()

for(i=

2;i)//咬到蛇身

}return0;

}void

show()

void

read()

C語言 貪吃蛇遊戲

相信每個人都接觸過貪吃蛇遊戲,而對於學習c語言的同學來說,一開始是不是覺得c語言寫不出什麼東西來呢?那麼,貪吃蛇應該是第一步,開始了解一些模組化的知識,一些物件導向的思想,一些小專案的編寫。效果 通過 wasd 移動蛇,蛇能夠吃隨機產生的食物,並且變長。基本實現 用兩個陣列snakex,snakey...

C語言 貪吃蛇遊戲

該遊戲不依賴tc環境,任何第三方庫,可以在vc 6.0 vs c free等常見ide中編譯通過。設計貪吃蛇遊戲的主要目的是讓大家夯實c語言基礎,訓練程式設計思維,培養解決問題的思路,領略多姿多彩的c語言。遊戲開始後,會在中間位置出現一條只有三個節點的貪吃蛇,並隨機出現乙個食物,如下圖所示 圖1 遊...

C語言 貪吃蛇遊戲

需要注意的是,在函式命名的時候要注意清晰明了,還有就是注意模組的劃分要清晰,該是哪個模組的任務就由哪個模組去做,不要混亂結果,打個比方,如蛇身的繪畫,可以是snake模組的任務,但是在實際設計上,繪畫並不是蛇本身的屬性,他應該是view模組的任務,這樣這是為了保證資料和操作相互隔離,分工明確。所以在...