推箱子(C++类实现)

本文分享了使用C++编程语言实现推箱子游戏的详细代码,涵盖了游戏逻辑和交互功能,为C++爱好者和游戏开发者提供了参考。
摘要由CSDN通过智能技术生成

直接上代码

#include <iostream>
#include <fstream>
#include <algorithm>

using namespace std;

// 从文件中获取数据
void readFile(char** buffer, int* size, const char* filename)
{
   
	//ifstream in(filename, ios::binary);
	ifstream in(filename);
	if (!in)
	{
   
		// 失败
		*buffer = NULL;
		*size = 0;
	}
	else
	{
   
		in.seekg(0, ifstream::end);	// 设置文件指针到末尾
		*size = static_cast<int>(in.tellg());	// 读取文件长度
		in.seekg(0, ifstream::beg);	// 设置文件指针到开头
		*buffer = new char[*size];	// 申请内存
		in.read(*buffer, *size);	// 读取文件内容
	}
}

// 二维数组类,采用模板类方式
template<class T> class Array2D
{
   
public:
	Array2D() : m_pArray(NULL) {
   }
	~Array2D() 
	{
   
		if (m_pArray)
		{
   
			delete[] m_pArray;
			m_pArray = NULL;
		}
	}

public:
	void setSize(int sizex, int sizey)
	{
   
		m_nSizeX = sizex;
		m_nSizeY = sizey;
		m_pArray = new T[sizex * sizey];
	}

	T& operator()(int indexX,int indexY)
	{
   
		return m_pArray[indexY * m_nSizeX + indexX];
	}
	
	const T& operator()(int indexX, int indexY) const 
	{
   
		return m_pArray[indexY * m_nSizeX + indexX];
	}

private:
	T* m_pArray;
	int m_nSizeX;
	int m_nSizeY;	
};

// 状态类
class State 
{
   
public:
	
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值