⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bug.h

📁 模拟抓虫子的源代码,是一个很好的c++的学习代码
💻 H
字号:
// Bug.h: interface for the Bug class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_BUG_H__A2C36864_6B91_4777_B03E_D7603FA3FC23__INCLUDED_)
#define AFX_BUG_H__A2C36864_6B91_4777_B03E_D7603FA3FC23__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include "bitmap.h"
#include "randint.h"


bool operator<(const BitMap &p, const BitMap &q);
bool operator==(const BitMap &p, const BitMap &q);


enum Direction {Up, Down, Left, Right };
const int BugBitMaps = 4;  
class Bug {
	public:
		Bug(SimpleWindow &w, int HitsNeeded = 3,
	    int DirectionChangeProbability = 50);
		bool IsHit(const Position &MousePosition);
		bool IsDying();
		void Create();
		void Kill();
		virtual void Move() = 0;
	protected:
		// Bug inspectors
		SimpleWindow& GetWindow() const;
		Position GetPosition() const;
		Direction GetDirection() const;
		float GetHorizMovement() const;
		float GetVertMovement() const;
		int GetDirectionChangeProbability() const;
		BitMap& GetBmp(const Direction &d);
		const BitMap& GetBmp(const Direction &d) const;
		// Bug mutators
		void SetWindow(SimpleWindow &w);
		void SetDirection(const Direction &d);
		void SetHorizMovement(float h);
		void SetVertMovement(float v);
		void Draw();
		void Erase();
		void SetPosition(const Position &p);
		void ChangeDirection();
		Position NewPosition() const;
		bool AtRightEdge() const;
		bool AtLeftEdge() const;
		bool AtBottomEdge() const;
		bool AtTopEdge() const;
		RandomInt GeneratePercentage;
	private:
		// Data members
		SimpleWindow &Window;
		vector<BitMap> Bmp;
		float HorizMovement;
		float VertMovement;
		int HitsRequired;
		int HitsTaken;
		int DirectionChangeProbability;
		Direction CurrentDirection;
		Position CurrentPosition;
};

class SlowBug : public Bug {
	public:
		SlowBug(SimpleWindow &w, int HitsNeeded = 4,
		 int DirectionChange = 10);
		void Move();
};

class FastBug : public Bug {
	public:
		FastBug(SimpleWindow &w, int HitsNeeded = 3,
		 int DirectionChangeProbability = 20);
		void Move();
};

#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -