#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檔案,讀取最高紀錄 ...