Linux學習之路(番外 貪吃蛇)

2021-09-02 02:38:46 字數 1779 閱讀 8827

#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...