C語言用vs2017寫乙個簡單的貪吃蛇遊戲

2021-09-25 20:31:32 字數 2942 閱讀 7278

源**

#define _crt_secure_no_warnings

#pragma warning(disable:4996)

#include#include#include#include#include#include#define high 20

#define wide 60

int speed = 0; //定義乙個全域性變數控制小蛇蛇的速度

char name[100] = "遊客選手"; //使用者名稱

void snake_menu()

void register()

void draw_map()

else

} if (i == 5)

if (i == 6)

if (i == 7)

if (i == 8)

if (i == 9)

if (i == 10)

if (i == 11)

printf("\n"); }}

typedef struct body

body;

typedef struct snake

snake;

void init_food(snake *snake) //食物初始化

void init_snake(snake *snake)

//移動游標

void test()

//隱藏游標

void hide_cur()

//4.列印蛇和食物

void show_ui(snake *snake)

else

}//顯示食物

//把食物的座標給游標

snake->coord.x = snake->food.x;

snake->coord.y = snake->food.y;

setconsolecursorposition(getstdhandle(std_output_handle), snake->coord);

printf("$");

//將原來的蛇尾列印為空。

snake->coord.x = snake->tail.x;

snake->coord.y = snake->tail.y;

setconsolecursorposition(getstdhandle(std_output_handle), snake->coord);

printf(" ");

}//移動蛇

void move_snake(snake *snake)

//更新蛇頭的位置

snake->list[0].x += snake->dx;

snake->list[0].y += snake->dy;

}void eat_food(snake * snake)

}char key2 = 0; //儲存上乙個按鍵值,通過兩次按鍵比較防止小蛇可以反身撞擊自己

void control_snake(snake * snake)

else

break;

case 's':

case 's':

case '2':

case 80:

if (key2 == 'w' || key2 == 'w' || key2 == 72||key2=='8')

else

break;

case 'a':

case 'a':

case '4':

case 75:

if (key2 == 'd' || key2 == 'd' || key2 == 77||key2=='6')

else

break;

case 'd':

case 'd':

case '6':

case 77:

if (key2 == 'a' || key2 == 'a' || key2 == 75||key2=='4')

else

break;

case 32:

pos.x = wide/2-10;

pos.y = high/2;

//設定游標的位置

setconsolecursorposition(getstdhandle(std_output_handle), pos);

printf("遊戲暫停!任意鍵繼續!\n");

_getch();

system("cls");

draw_map();

break;

default:

break;

} } }

//遊戲結束

void game_over(snake * snake)

//蛇是否碰到自己

void snake_eat_body(snake *snake) }}

void currentscoreanduser(snake* snake)

//5.遊戲業務邏輯

void start_game(snake *snake)

system("cls");

game_over(snake);

}int main(void)

draw_map();

//2.申請蛇的結構體空間

snake *snake = (snake *)malloc(sizeof(snake));

start_game(snake);

printf("\n");

system("pause");

return 0;

}

結果展示

vs2017實現乙個簡單計算器

工程 初學vs,如有出錯請多指正。部分 於網路,其中 大多重複,自行搜尋與體會 1.工程命名 2.基於對話方塊類,這跟工具集的呼叫也有關聯,3.工具箱的灰名,消失,參考csdn的解決 4.mfc中未定義識別符號的解決,在resource.h把函式定義 5 類新增函式,會有無法識別該函式的警告,可重啟...

用vs2017寫貪吃蛇小遊戲

編譯環境是vs2017 include include include include define high 15 遊戲畫面尺寸 define width 35 define enemynum 5 敵機個數 全域性變數 int fond x,fond y 食物 2 int movedirectio...

VS2017開發C語言出現「no init

當你的編譯器出現這種錯誤時,只需要在winnt.h標頭檔案中 即可消除錯誤提示 補充一點 這一 塊是微軟工程師用於在舊版本的vs中消除該錯誤提示的預編譯頭 雖然微軟的工程師們宣稱他們在最新的vs2019tkuzu中已經修復了該程式設計客棧錯誤,但是仍有很多程式設計客棧人受到程式設計客棧了該錯誤的困擾...