C語言 貪吃蛇遊戲

2021-06-28 00:14:23 字數 2056 閱讀 3098

相信每個人都接觸過貪吃蛇遊戲,而對於學習c語言的同學來說,一開始是不是覺得c語言寫不出什麼東西來呢?

那麼,貪吃蛇應該是第一步,開始了解一些模組化的知識,一些物件導向的思想,一些小專案的編寫。

效果:通過「wasd」移動蛇,蛇能夠吃隨機產生的食物,並且變長。

基本實現:

用兩個陣列snakex,snakey來記錄蛇的位置。

建立並初始化乙個地圖map,並對其不斷更新。

不足:當蛇長度超過允許的最大長度時,就會出現錯誤。

源**如下:

// snake

// created by climber_pg

#include #include #include #include #define snake_max_length 20

#define snake_head 'h'

#define snake_body 'x'

#define blank_cell ' '

#define snake_food '$'

#define wall_cell '*'

// clear the map

void clear_map(void);

// update the map

void update_map(void);

// put a food randomized on a blank cell

void put_money(void);

// snake stepping: dy = -1(up), 1(down); dx = -1(left),1(right),0(no move)

void snakemove(int, int);

// out cells of the grid

void output(void);

// outs when game is over

void gameover(void);

char map[12][12] = ;

// define variables for snake, notice name of variables in c

int snakex[snake_max_length] = ;

int snakey[snake_max_length] = ;

int snakelength = 5;

int score = 0, food_x = 0, food_y = 0;

int main()

}return 0;

}void clear_map(void)

void update_map(void)

return;

}void put_money(void)

// put the food into the map

map[food_x][food_y] = '$';

return;

}void snakemove(int x, int y) else

// move the head of snake

snakex[snakelength - 1] += x;

snakey[snakelength - 1] += y;

}gameover();

update_map();

return;

}void output(void)

return;

}void gameover(void)

if (flag || snakex[snakelength - 1] < 1 || snakex[snakelength - 1] > 10 \

|| snakey[snakelength - 1] < 1 || snakey[snakelength - 1] > 10)

put_money();

printf("gameover!\nyour score is %d!\npress any key to continue.\n", score);

score = 0;

getch();

}return;

}

C語言 貪吃蛇遊戲

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

C語言 貪吃蛇遊戲

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

語言貪吃蛇遊戲

加速每個食物得分更高 先列印出遊戲介面,還有初始化蛇,蛇的節點用字串 表示,遊戲背景用 表示,因為這些字串佔兩個位元組的寬度,所以每次x,y座標的對應關係是x y 2。在相應位置列印出蛇,初始化蛇為五個節點 初始化蛇頭的移動方向為右,根據按鍵來確定蛇的移動狀態,要是吃到食物,就讓食物為蛇頭,然後隨機...