#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;
}
死宅番外 貪吃蛇
這兩天碼了個貪吃蛇我沒用鍊錶其實用鍊錶效率應該更高一點。放 了 include pch.h include include include 要easyx include include include 放 的 pragma comment lib,winmm.lib 放 的 using namesp...
貪吃蛇的學習
首先看到要做乙個這樣的遊戲是沒有什麼很好的頭緒,然後看了老師發的課件上的自頂向下的模型,才有了初步構想。定義貪吃蛇的每節的座標,將head單獨拿出來處理等都使得整個程式邏輯性更強,然後用swich判斷輸入的方向,每個方向用乙個函式來實現。貪吃蛇的移動也可以用陣列的傳遞實現,條理清晰。但是到了智慧型蛇...
貪吃蛇學習過程
貪吃蛇遊戲的設計 首先就是確定好思路 自頂向下,逐步求精 下面是程式的總體結構 while not 遊戲結束 do ch 等待輸入 case ch do a 左前進一步,break d 右前進一步,break w 上前進一步,break s 下前進一步,break end case 輸出字元矩陣 e...