资源简介
推箱子游戏c++代码可以直接运行
代码片段和文件信息
/*++
Copyright (c) AFE(Active-Free-Elegance)
Module Name:
BoxMan.cpp
Abstract:
BoxMan Game Class solve all the important movment of the man and box
and some thing refer to them
Author:
Weijian Luo (Arthur Luo) 15-Jun-2005
E-mail: skybluehacker@yahoo.com.cn
Revision History: 1.0
--*/
#include “stdafx.h“
#include “skyblue_BoxMan.h“
#include “BoxMan.h“
#include //音效 Winmm.lib
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//地图状态
#define MAP_BACKGROUP 48 //‘0‘ 对应字符‘0‘背景
#define MAP_WHITEWALL 49 //‘1‘ 墙
#define MAP_BLUEWALL 50 //‘2‘ 通道
#define MAP_BALL 51 //‘3‘ 目的点
#define MAP_YELLOWBOX 52 //‘4‘ 箱子
#define MAP_REDBOX 53 //‘5‘ 安放好的箱子
#define MAP_MANWALL 54 //‘6‘ 人在通道区域
#define MAP_MANBALL 55 //‘7‘ 人在目的点区域
//声音状态
#define SOUND_STATE_START 0 //游戏开始
#define SOUND_STATE_MOVE 1 //工人行走移动
#define SOUND_STATE_PUSH 2 //行走并推动箱子
#define SOUND_STATE_VICTORY 3 //胜利
//游戏区域小方块大小
#define BLOCK_WIDTH 20 // 宽度
#define BLOCK_HEIGHT 20 // 深度
//假宏定义
int MAX_MISSION_NUM = 1;
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CBoxMan::CBoxMan()
{
m_iMissionNum = 1;
::MAX_MISSION_NUM = LoadMaxMissionNum();
LoadMap(m_iMissionNum);
m_ptManPosition = GetManPosition();
}
CBoxMan::~CBoxMan()
{
}
void CBoxMan::LoadMap(int iMissionNum)
{
CString str;
str.Format(“[%d]“ iMissionNum);
FILE *pFile = fopen(“map.info“ “rb“);
if (pFile == NULL)
{
AfxMessageBox(“载入地图文件失败“);
return;
}
char cTmp[M_TAB_WIDTH*2];
fgets(cTmp M_TAB_WIDTH*2 pFile);
while (strncmp(cTmp str 3) != 0)
{
fgets(cTmp M_TAB_WIDTH*2 pFile);
}
for (int i = 0; i < M_TAB_HEIGHT; i++)
fgets(m_cMap[i]M_TAB_WIDTH*2 pFile);
fclose(pFile);
}
int CBoxMan::LoadMaxMissionNum(void)
{
int iMissionNum = 1;
CString str;
str.Format(“[%d]“ iMissionNum);
FILE *pFile = fopen(“map.info“ “rb“);
if (pFile == NULL)
{
AfxMessageBox(“载入地图文件失败“);
return -1;
}
char cTmp[M_TAB_WIDTH*2];
while( !feof(pFile) )//not end of file
{
fgets(cTmp M_TAB_WIDTH*2 pFile);
if(strncmp(cTmp str 3) == 0)
{
str.Format(“[%d]“ ++iMissionNum);
}
}
fclose(pFile);
return iMissionNum-1;
}
CPoint CBoxMan::GetManPosition()
{
CPoint manPosition(0 0);
for (int i = 0; i < M_TAB_HEIGHT; i++)
{
for (int j = 0; j < M_TAB_WIDTH; j++)
{
if (m_cMap[i][j]==MAP_MANWALL || m_cMap[i][j]==MAP_MANBALL)
{
manPosition.x = j;
manPosition.y = i;
}
}
}
return manPosition;
}
vo
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2015-11-08 18:06 第3章 推箱子\
文件 385100 2015-11-08 18:06 第3章 推箱子\MSVCRTD.DLL
目录 0 2015-11-08 19:49 第3章 推箱子\skyblue_BoxMan\
文件 15145 2015-11-08 18:06 第3章 推箱子\skyblue_BoxMan\BoxMan.cpp
文件 1936 2015-11-08 18:06 第3章 推箱子\skyblue_BoxMan\BoxMan.h
文件 3633 2015-11-08 18:05 第3章 推箱子\skyblue_BoxMan\BoxManWnd.cpp
文件 1844 2015-11-08 18:05 第3章 推箱子\skyblue_BoxMan\BoxManWnd.h
目录 0 2015-11-08 18:06 第3章 推箱子\skyblue_BoxMan\BoxMan_Editer\
文件 14162 2015-11-08 18:06 第3章 推箱子\skyblue_BoxMan\BoxMan_Editer\BoxMan_Edit.cpp
文件 1823 2015-11-08 18:06 第3章 推箱子\skyblue_BoxMan\BoxMan_Editer\BoxMan_Edit.h
文件 35420 2015-11-08 18:06 第3章 推箱子\skyblue_BoxMan\BoxMan_Editer\BoxMan_Editer.aps
文件 2534 2015-11-08 18:06 第3章 推箱子\skyblue_BoxMan\BoxMan_Editer\BoxMan_Editer.clw
文件 3029 2015-11-08 18:06 第3章 推箱子\skyblue_BoxMan\BoxMan_Editer\BoxMan_Editer.cpp
文件 4935 2015-11-08 18:06 第3章 推箱子\skyblue_BoxMan\BoxMan_Editer\BoxMan_Editer.dsp
文件 551 2015-11-08 18:06 第3章 推箱子\skyblue_BoxMan\BoxMan_Editer\BoxMan_Editer.dsw
文件 1626 2015-11-08 18:06 第3章 推箱子\skyblue_BoxMan\BoxMan_Editer\BoxMan_Editer.h
文件 91136 2015-11-08 18:06 第3章 推箱子\skyblue_BoxMan\BoxMan_Editer\BoxMan_Editer.ncb
文件 50688 2015-11-08 18:06 第3章 推箱子\skyblue_BoxMan\BoxMan_Editer\BoxMan_Editer.opt
文件 1225 2015-11-08 18:06 第3章 推箱子\skyblue_BoxMan\BoxMan_Editer\BoxMan_Editer.plg
文件 10381 2015-11-08 18:06 第3章 推箱子\skyblue_BoxMan\BoxMan_Editer\BoxMan_Editer.rc
文件 1882 2015-11-08 18:06 第3章 推箱子\skyblue_BoxMan\BoxMan_Editer\BoxMan_EditerDoc.cpp
文件 1552 2015-11-08 18:06 第3章 推箱子\skyblue_BoxMan\BoxMan_Editer\BoxMan_EditerDoc.h
文件 2085 2015-11-08 18:06 第3章 推箱子\skyblue_BoxMan\BoxMan_Editer\BoxMan_EditerView.cpp
文件 1830 2015-11-08 18:06 第3章 推箱子\skyblue_BoxMan\BoxMan_Editer\BoxMan_EditerView.h
文件 8231 2015-11-08 18:06 第3章 推箱子\skyblue_BoxMan\BoxMan_Editer\Boxman_EditerWnd.cpp
文件 2459 2015-11-08 18:06 第3章 推箱子\skyblue_BoxMan\BoxMan_Editer\Boxman_EditerWnd.h
目录 0 2015-11-08 18:06 第3章 推箱子\skyblue_BoxMan\BoxMan_Editer\Debug\
文件 33302 2015-11-08 18:06 第3章 推箱子\skyblue_BoxMan\BoxMan_Editer\Debug\BoxMan_Edit.obj
文件 1405031 2015-11-08 18:06 第3章 推箱子\skyblue_BoxMan\BoxMan_Editer\Debug\BoxMan_Editer.exe
文件 1764892 2015-11-08 18:06 第3章 推箱子\skyblue_BoxMan\BoxMan_Editer\Debug\BoxMan_Editer.ilk
文件 16703 2015-11-08 18:06 第3章 推箱子\skyblue_BoxMan\BoxMan_Editer\Debug\BoxMan_Editer.obj
............此处省略112个文件信息
- 上一篇:精通UNIX下C语言编程与项目实践源代码笔记.rar
- 下一篇:C++ primer
相关资源
- C++ primer
- 从新手到高手 C++ 全方位学习.范磊(
- C++编程思想两卷合订本.pdf 电子书(完
- 中国象棋 陶善文源码 VC++2013 MFC 游戏
- VC++深入详解
- Visual C++开发实战1200例高清完整.pdf版
- MFC绘图软件
- 深入应用C++11 代码优化与工程级应用
- 1—C++大学教程第五版中文电子书.美戴
- C++ 试卷 吉林大学
- C++程序设计语言 The C++ Programming Lang
- C++程序语言设计第四版 高清 中英文
- Microsoft Visual C++集合(2013、2015、201
- C++ Primer习题集 第5版 高清 PDF 带目录
- c++典型工控应用编程
- c/c++解决迷宫问题
- 英语词典数据结构课设
- mfcc特征提取,c++代码实现
- Visual C++编程宝典十年典藏版
- 《C++入门到精通的四本书超经典》高
- C++ primer 高清中文版第五版最新带书签
- VC++图像处理设计
- MATLAB软件的必备编程插件
- MFC函数库手册中文版)
- IP地址查物理地址C/C++
- Beyond the C++ Standard Library: An Introducti
- c++游戏与图形编程(第二版)
- 算法Ⅰ~ⅣC++实现——基础、数据结
- IFC文件解析,有C# C++ VB.Net
- c++ 应用程序性能优化 第二版
评论
共有 条评论