簡易貪食蛇C語言

2021-07-09 21:44:41 字數 2274 閱讀 1484

#ifndef __snake_h_

#define __snake_h_

#include

#include

#include

#include //linux執行緒,編譯檔案需鏈結 -lpthread

#include

#define max     100//最大長度

#define w      

40//遊戲介面寬

#define h      

20//遊戲介面高

#define head    

'@'//頭形狀

#define food    

'o'//食物和身體形狀

#define tail  

'*'//尾巴形狀

#define up      

1//方向

#define down    

2#define left    

3#define right  

4char board[w][h] = {};

//遊戲介面用二維陣列表示

struct node_t ;

struct snake_t ;

struct snake_t *snake_init(int x, int y, int speed);

//初始化

void *snake_run(void *arg);

//執行函式

void snake_del(struct snake_t *snake);

//鍊錶銷毀函式

#endif

#include "snake.h"

struct snake_t *snake_init(int x, int y, int speed)

/*新增乙個節點*/

void add_node(struct snake_t **snake, int x, int y)

/*畫遊戲介面*/

void drawboard(struct snake_t *snake)

for (j = 1; j <= h; j++)

printf("\n");}}

/*隨機乙個座標*/

void food(void)

/*檢測目前介面中有無食物,沒有隨機放置*/

int set_food(void)

}food();

return 0;

}/*移動*/

void move(struct snake_t *snake, int dir)

else if ((board[tail->x][tail->y + snake->step] == 1 || board[tail->x][tail->y - snake->step] == 1)

&& (dir == up || dir == down))

}else if (dir == up || dir == down)}}

else }}

}/*獲取按鍵資訊*/

int getinput(void)

/*按鍵處理*/

void *key_handler(void *arg)

break;

case 'l':

if (snake->dir != left)

break;

case 'j':

if (snake->dir != up)

break;

case 'k':

if (snake->dir != down)

break;

case 'q':

snake->quit = 1;

}usleep(1000);}}

/*檢測遊戲執行狀態*/

void dead_check(void *arg)

else}}

}void *snake_run(void *arg)

}void snake_del(struct snake_t *snake)

int main(void)

else

flag = 0;

if (snake->num == max)

printf("\033[11;60h you win\n");

usleep(10000);

}printf("\033[%d;1h", h + 1);

snake_del(snake);

system("stty echo icanon");

return 0;

}

簡易貪食蛇 C語言實現

有空再新增注釋,並且重構優化 時間足夠的情況下會使用其他語言,並增加gui。include include include include include include define n 21 char score 3 char tail 3 void gotoxy int x,int y 輸出座...

貪食蛇程式

define n 200 include include include define left 0x4b00 define right 0x4d00 define down 0x5000 define up 0x4800 define esc 0x011b int i,key int score ...

貪食蛇設計

為什麼叫能走蛇 當我剛知道自己要寫一條這樣的蛇時,我的心情是十分複雜的,之所以叫這個名字,是因為這條蛇只有乙個功能,即聽從玩家的命令,在迷宮內四處走動。怎麼寫出能走蛇 那這條靈活 其實很笨拙 的蛇是如何誕生出世的呢?先寫乙個總控偽 出來,採用自頂向下的思想,一步一步解決具體檔案。頭部如下 一點小總結...