程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> VC >> 關於VC++ >> 貪吃蛇游戲

貪吃蛇游戲

編輯:關於VC++

本文配套源碼

這又是一個貪吃蛇游戲,只不過算法有一點特別。運行得還是很好的。每個結點都有自己的顏色,是動態生成的。不同的顏色有不同的分數.每個結點是一個類,而蛇又是一個類。這樣程序的獨立和可移植 性很強。每個對結點是一個類,也就是一個結構。包含自身的信息,有顏色,轉角坐標列表。

class CSnake;
typedef enum{UP=1,DOWN,LEFT,RIGHT,Error} Direction;
typedef struct tagData{
  Direction dirt;
  CPoint pot;
} Data;
typedef CList DirectionList;
class CNode : public CObject
{
private:
  CPoint m_Point;
  Direction m_CurrentDirection;//當前的運動方向
  DirectionList m_List;
  COLORREF m_Color;
  int m_nColorIndex;

  friend CSnake;
public:
  CNode();
  virtual ~CNode();
  void SetDirection(int nx, int ny);
  void SetDirection(CPoint point);
  COLORREF GetColor(void);
  void SetColor(COLORREF color);
  void AddDirection(Data* eValue);
  Data* RemoveHead(void);
  void SetColor(int index);
  int GetColorIndex(void);

  void SetCurrentDirection(Direction dirt);
  Direction GetCurrentDirection(void);
  void Change(CPoint& point);
  Data* GetHead(void);
};

在CSnake類派生於CWnd是為了建立一個不可見的窗口,用來完成計時器的功能。這裡還有一個dll,用來生成一個鉤子。來完成得到鍵盤的操作。如果不這樣作的話。游戲區(CEdit)會有光標閃動。當然 鉤子也不一定要用dll,因為這是一個自己程序的鉤子。用它只是用來練手的。就這麼多吧。很簡單的。

圖一

希望大家指點。E-mail:[email protected]

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved