初學者的貪吃蛇遊戲

2021-07-09 16:53:22 字數 2448 閱讀 7801

初學程式設計,利用現有的知識編寫了乙個貪吃蛇小遊戲。

目前遊戲的製作程度僅限於「能玩」。

還有一定bug有待改善。

以下是**:

#include

#include

#include

#include

#include

#define snake_max_length 30

#define snake_head 'h'

#define snake_body 'x'

#define blank_cell ' '

#define snake_food '$'

#define wall_cell '*'

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

void snakemove(int, int);

//put a food randomized on a blank cell

void put_money(void);

//out cells of the grid

void output(void);

//outs when gameover

void gameover(void);

//lengthen the snake

void lengthen(void);

char

map[12][23]=

;char map1[12][23] =

;// #define vars for snake, notice name of vars in c

int snakex[snake_max_length] = ; //蛇身和蛇頭的座標

int snakey[snake_max_length] = ;

int snakelength = 5;

int flag = 0; // gameover為1,否則為0

int tailx, taily; // 用於增加長度

int moneyx, moneyy; // 隨機生成money座標

int moneyflag = 0; // 標識是否已經確定位置放money

void snakemove(int dy, int dx)

// 頭部移動

if (dy == -1)

snakey[snakelength - 1]--;

if (dy == 1)

snakey[snakelength - 1]++;

if (dx == 1)

snakex[snakelength - 1]++;

if (dx == -1)

snakex[snakelength - 1]--;

}void put_money(void) else

put_money();

}// 得到最終座標

map[moneyy][moneyx] = '$';

}void output(void)

printf("\n");

} }void gameover(void)

void lengthen(void)

snakex[0] = tailx; // 尾部為增加的部位

snakey[0] = taily;

}int main()

printf("\n");}

getch();

system("cls");

for (i = 0; i < 12; i++) // 初始化地圖

for (j = 0; j < 23; j++)

map[i][j]=map1[i][j];

put_money(); // 初始的食物

for (i = 0; i < 12; i++)

printf("\n");}

move = 'd';

int speed = 300;

while (1)

switch (move)

// 若頭部與食物重合,即吃到食物

if (snakex[snakelength - 1] == moneyx && snakey[snakelength - 1] == moneyy)

gameover(); // 判斷是否gameover

system("cls"); // 清屏

output(); // 輸出當前地圖

if (flag==1)

break;

} printf("gameover\n");

return

0;}

沒有用到較複雜的知識點,只是用了二維陣列來表示地圖。

注意:getch(),kbhit() 需要引用標頭檔案 conio.h

sleep() 需要引用標頭檔案 windows.h

c語言初學者試寫貪吃蛇

翻出來之前用c語言寫的貪吃蛇,語法都比較簡單,希望可以交流一下並給一點建議。原始碼 include include include include includevoid welcome 歡迎介面 void finish 結束介面 void over 通關介面 void start 遊戲介面 voi...

貪吃蛇遊戲

貪吃蛇遊戲 結構化程式設計 c語言程式設計 重要的的是結構化的程式設計思想 include include include include include include define field width 300 就做20個格仔的 define field height 300 define f...

貪吃蛇遊戲

include include include include include 使用當前時間做種子 enum dir 列舉型別enum dir 圍牆 class fencef 定義物件 畫框框 void fence initfence 顯示框框 void fence outputf int snak...