目錄
貪吃蛇游戲::
一、游戲效果及功能實現:
????????????????????????????????????????1.規則
?????????????????????????????????????????????????????????????2.基本功能實現
?????????????????????????????????????????????????????????????3.技術要點
?????????????????????????????????????????????????????????????4.實現思路
?????????????????????????????????????????????????????????????5.游戲效果呈現
二、Win32 API介紹
?????????????????????????????????????????????????????????????1.WindowsAPI函數簡單介紹
?????????????????????????????????????????????????????????????2.控制臺程序(Console)
? ? ? ? ?????????????????????????????????????????????????????????????cmd命令窗口打開方式
? ? ? ? ?????????????????????????????????????????????????????????????控制cmd控制臺的長度寬度命令
? ? ? ?????????????????????????????????????????????????????????????? title命令
?????????????????????????????????????????????????????????????3.vs中的控制臺窗口
?????????????????????????????????????????????????????????????4.設置控制臺相關屬性
? ? ? ? ?????????????????????????????????????????????????????????????system函數執行系統命令5.控制臺屏幕上的坐標COORD
?????????????????????????????????????????????????????????????5.GetStdHandle函數
?????????????????????????????????????????????????????????????6.GetConsoleCursorInfo函數(檢測光標大小和可見性)
? ? ? ? ?????????????????????????????????????????????????????????????CONSOLE_CURSOR_INFO
?????????????????????????????????????????????????????????????7.SetConsoleCursorInfo(設置光標大小和可見性)
?????????????????????????????????????????????????????????????8.SetConsoleCurPosition(設置光標坐標位置)
?????????????????????????????????????????????????????????????9.GetAsyncKeyState(獲取鍵盤虛擬鍵值)
? ? ? ? ?????????????????????????????????????????????????????????????檢測鍵盤輸入的內容:"虛擬鍵代碼"
三、貪吃蛇游戲設計與分析
?????????????????????????????????????????????????????????????1.地圖/界面
????????????????????????????????????????????????????????????????????????????本地化
????????????????????????????????????????????????????????????????????????????類項
????????????????????????????????????????????????????????????????????????????setlocale函數
????????????????????????????????????????????????????????????????????????????打印寬字符
????????????????????????????????????????????????????????????????????????????地圖坐標
?????????????????????????????????????????????????????????????2.蛇身與食物
?????????????????????????????????????????????????????????????3數據結構設計
四、具體代碼實現
?????????????????????????????????????????????????????????????1.文件管理
?????????????????????????????????????????????????????????????2.頭文件的聲明準備
????????????????????????????????????????????????????????????????????????????define預處理
????????????????????????????????????????????????????????????????????????????蛇的狀態、游戲狀態的枚舉類型聲明
?????????????????????????????????????????????????????????????3.控制臺的定位
?????????????????????????????????????????????????????????????4.隱藏光標
?????????????????????????????????????????????????????????????5.游戲界面初始化
????????????????????????????????????????????????????????????????????????????歡迎界面
?????????????????????????????????????????????????????????????????????游戲說明界面
?????????????????????????????????????????????????????????????????????游戲準備界面
?????????????????????????????????????????????????????????????6.蛇的初始化
?????????????????????????????????????????????????????????????7.食物的生成
?????????????????????????????????????????????????????????????8.游戲的初始化
?????????????????????????????????????????????????????????????9.蛇的移動
? ? ? ? ?????????????????????????????????????????????????????????????蛇頭出現
?????????????????????????????????????????????????????????????10.吃食物
? ? ? ? ?????????????????????????????????????????????????????????????判定食物
? ? ? ? ?????????????????????????????????????????????????????????????蛇移動、吃食物變長的邏輯
??????????????????????????????????????????????????????????????11.死亡判定
? ? ? ? ?????????????????????????????????????????????????????????????撞墻死亡
? ? ? ? ?????????????????????????????????????????????????????????????撞到自身死亡
?????????????????????????????????????????????????????????????12.鍵盤操控相關
? ? ? ? ?????????????????????????????????????????????????????????????加速減速
? ? ? ? ?????????????????????????????????????????????????????????????空格暫停
?????????????????????????????????????????????????????????????13.GameStart函數
?????????????????????????????????????????????????????????????14.GameRun函數
?????????????????????????????????????????????????????????????15.GameEnd函數
五、貪吃蛇源代碼展示:
??????????????????????????????????????????????????????snake.h
??????????????????????????????????????????????????????snake.c
?????????????????????????????????????????????????????????????test.c