1. 程式人生 > >佇列的使用—WIN32控制檯貪吃蛇(VS2010,C++語言)

佇列的使用—WIN32控制檯貪吃蛇(VS2010,C++語言)

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++貪吃蛇