佇列的使用—WIN32控制檯貪吃蛇(VS2010,C++語言)
阿新 • • 發佈:2019-01-10
1.貪吃蛇原理
貪吃蛇是很有趣的小遊戲,小時候玩的挺多的。它的實現原理是一個佇列,蛇移動的操作是在蛇頭某個方向增加一個方塊,蛇尾去除一個方塊,再顯示即可。蛇增長的操作是在佇列尾部插入方塊,再顯示即可。蛇身的顯示操作即佇列的順序讀取。
2.蛇類
先看一下執行截圖吧!
蛇的上下左右移動操作對應鍵盤的方向鍵。當蛇向一個方向移動時,蛇的相對方向的運動控制鍵被遮蔽,如蛇向左移動時,右轉向按鈕無法響應,蛇只能通過“旋轉”來運動到相對方向。空格鍵是 暫停/開始 按鈕。
下面是蛇類,採用陣列實現:
class SNAKE { //與外界互動的設定為public屬性 public: SNAKE( ); <span style="white-space:pre"> </span>//蛇身初始化函式 static void InitScreen(); //螢幕初始化 void turnUp(); //方向控制 void turnDown(); void turnRight(); void turnLeft(); //蛇類自身使用的方法,設為private屬性 private: void snakeShow(); //蛇的顯示 void snakeDead(); //蛇的死亡判斷 void generateFood(); //產生實物 //蛇身的節點 struct snakeNode { int x,y; }; snakeNode snakeBody[80]; // 設定蛇身最大長度為80 int tail; //蛇的尾巴的陣列索引值,方便對尾巴刪除的操作 int foodx; //食物的座標 int foody; int foodNum; <span style="white-space:pre"> </span> //食物的數量 };
以上類在snake.h檔案中,然後再snake.c檔案中實現類的方法。再在main.c中自由呼叫,鍵盤控制的邏輯在主程式中,下載全部程式前往:c++貪吃蛇