相信每個人都接觸過貪吃蛇遊戲,而對於學習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。在相應位置列印出蛇,初始化蛇為五個節點 初始化蛇頭的移動方向為右,根據按鍵來確定蛇的移動狀態,要是吃到食物,就讓食物為蛇頭,然後隨機...