C語言 貪吃蛇

2021-09-02 05:29:03 字數 1756 閱讀 5173

#include #include #include #include #include #include #include #include #include #include #include #define keycode_u 0x41   // 向上按鍵

#define keycode_d 0x42 // 向下按鍵

#define keycode_l 0x44 // 向左按鍵

#define keycode_r 0x43 // 向右按鍵

int kfd = 0;

struct termios cooked, raw;

char dir = keycode_u; // 當前蛇的移動方向

獲取鍵盤響應:上、下、左、右鍵

void* get_dir(void *a)

tcsetattr(kfd, tcsanow, &cooked);//在程式結束時在恢復原來的配置

dir = c; }}

unsigned char map[17][17] = ; // 遊戲地圖

int snake[50] = ; // 初始化蛇座標,遊戲開始的時候蛇在第5行第11列

int food = 73; // 食物的座標,遊戲開始的時候在第5行第6列

int len = 1; // 儲存蛇的當前長度

將數字轉化為座標系

void num_to_xy(int num, unsigned char *x, unsigned char *y)

更新地圖資料

void update_map()

else if(i == food) //食物位置賦值@

else

}for(i = 0;i <=289; i++) //蛇存在的所用位置賦值為"*"

}}}

列印地圖

void print_map()

printf("\n");

} usleep(500000/(len/4+1)); //列印完後給乙個延遲來進入下乙個週期

}

生成食物

void generate_food()

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

} }

}

移動蛇

void move_snake()

end = snake[len-1]; //保留上一次的尾巴

for(i = len-1; i > 0; i--)

snake[0] = x*17 + y; //根據移動的方向重新生成乙個頭

if(snake[0] == food)

}

判斷蛇是否應該存活,如果返回值是0代表應該存活,1代表不應該存活

int isalive()

for(i = 1; i < len; i++) }

return temp;

}int main()

} tcsetattr(kfd, tcsanow, &cooked);//在程式結束時在恢復原來的配置

printf ("game over!\n");

return 0;

}

C語言貪吃蛇

include include include include include include define screen width 40 遊戲螢幕寬度 define screen length 15 遊戲螢幕長度 define start x 16 螢幕起始x座標 define start y ...

C語言 貪吃蛇

include include include define framewidght 22 define frameheight 22 short generaterandnumber short a,short b void posconsolecursor short x,short y voi...

C語言貪吃蛇

親測devc 編譯器完美執行 define crt secure no warnings include include include include void readini file fphead,int score,char argv 建立或開啟乙個和執行檔案對應的ini檔案,讀取最高紀錄 ...