鱼C论坛

 找回密码
 立即注册
查看: 2397|回复: 2

#include "MazeClass.h"在哪下载?

[复制链接]
发表于 2016-6-29 05:43:50 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x






#include "MazeClass.h"在哪下载?
(7) : fatal error C1083: Cannot open include file: 'MazeClass.h': No such file or directory



  1. ///////////////////////////////////////////////////
  2. //C++主要变量和函数定义
  3. //////////////////maze.h///////////////////////////
  4. //全局变量
  5. #ifndef _GLOBAL_VAR_
  6. #define _GLOBAL_VAR_
  7. #include "MazeClass.h"
  8. class CMaze *game = NULL; //迷宫类对象指针
  9. class CRoom **map; //游戏map指针
  10. HWND hWndMain; //主窗口句柄
  11. HBITMAP h_MemBm = NULL; //内存位图
  12. HDC h_MemDC = NULL; //内存DC
  13. RECT rCliRet; //游戏窗口大小
  14. HBRUSH hBrushes[10]; //绘制方块的画刷
  15. #endif
  16. //////////////////LinkList.h///////////////////////
  17. #ifndef _LINK_LIST_H
  18. #define _LINK_LIST_H
  19. #include <iostream.h>
  20. template <class T>
  21. class Node
  22. {
  23. private:
  24.         Node<T> *nextptr;
  25. public:
  26.         T data;
  27.         Node();
  28.         ~Node();
  29.         Node <T> *next() const;
  30.         Node(const T &item, Node<T> *ptrnext=NULL);
  31.         void setNext(Node<T> *ptrnext=NULL);
  32. };
  33. template <class T>
  34. class LinkList
  35. {
  36. private:
  37.         Node<T> *head;
  38.         Node<T> *tail;
  39.         Node<T> *curr;
  40.         Node<T> *getNode(const T &item, Node<T> *ptrnext=NULL);
  41.         void freeNode(Node <T> *p);
  42.         int size;
  43. public:
  44.         LinkList();
  45.         ~LinkList();
  46.         Node<T> *next();
  47.         Node<T> *current();
  48.         Node<T> *first();
  49.         Node<T> *last();
  50.         Node<T> *findNode(int index);
  51.         Node<T> *findNode(const T &item); //此功能需要模板类重载等于运算符
  52.         void reset();
  53.         int getSize();
  54.         int insertFront(const T &item);
  55.         int insertTail(const T &item);
  56.         int insertAfter(const T &item, int index);
  57.         int deleteFront(T *item);
  58.         int deleteTail(T *item);
  59.         int deleteNode(T *item, int index);
  60.         void clear();
  61.         bool isEmpty();
  62. };
  63. #endif
  64. //////////////MazeClass.h///////////////////////////
  65. #ifndef _MAZE_CLASS_H
  66. #define _MAZE_CLASS_H
  67. #include <iostream.h>
  68. #include <string.h>
  69. #include <time.h>
  70. #include "LinkList.h"
  71. //引入外部变量
  72. extern HWND hWndMain; // 主窗口句柄
  73. extern HBITMAP h_MemBm; // 内存位图
  74. extern HDC h_MemDC; // 内存DC
  75. extern RECT rCliRet; // 窗口大小
  76. extern class CMaze *game; // 迷宫类指针
  77. extern class CRoom **map; //游戏map指针
  78. extern HBRUSH hBrushes[10]; //绘制路径画刷
  79. #define RIGHT 0 //向右
  80. #define DOWN 1 //向下
  81. #define LEFT 2 //向左
  82. #define UP 3 //向后
  83. #define NODIR 4
  84. #define LEFT_WALL 0 //左边墙壁
  85. #define UP_WALL 1 //上面墙壁
  86. #define IS_WALL 0 //有墙壁
  87. #define NO_WALL 1 //没有墙壁
  88. #define HAS_DEAL 0 //map处理状态,已经处理
  89. #define IN_DEAL 1 //正在处理
  90. #define NOT_DEAL 2 //未处理
  91. #define STEP 12 //搜索步长
  92. #define AUTO_MODE 0 //玩家类型电脑自动
  93. #define PLAY_MODE 1 //手动
  94. #define INIT 0 //玩家状态初始化
  95. #define GOING 1 //运行
  96. #define STOP 2 //暂停
  97. #define OVER 3 //结束
  98. #define IDT_TIMER1 1 // 定时器编号
  99. #define IDT_TIMER2 2
  100. //坐标点类
  101. class point
  102. {
  103. public:
  104.         int x;
  105.         int y;
  106.         point();
  107.         ~point();
  108.         point(int x, int y);
  109.         point(const point &p);
  110.         point &operator =(const point &p);
  111.         bool operator ==(const point &p);
  112. };
  113. //Room类,生成迷宫用到
  114. class CRoom
  115. {
  116.         friend class CMaze;
  117. private:
  118.         point pos;
  119.         int status; //0:未访问, 1:正在访问, 2:已访问
  120.         int upstatus; //0:可以通过 1:不可以通过
  121.         int leftstatus; //0:可以通过 1:不可以通过
  122.         //每个节点只需判断up&left是否可以通过即可
  123. };
  124. //迷宫墙壁类
  125. class CWall
  126. {
  127.         friend class CMaze;
  128. private:
  129.         point pos; //墙壁位置
  130.         int dir; //方向 1:横 0:竖
  131. public:
  132.         CWall();
  133.         CWall(const point &pos, const int &dir);
  134.         CWall(const CWall &p);
  135.         ~CWall();
  136.         CWall &operator =(const CWall &p);
  137.         bool operator ==(const CWall &p);
  138. };
  139. class CBoard
  140. {
  141. protected:
  142.         HBRUSH hBrush; //绘制背景画刷
  143.         HPEN hPen; //绘制边框线的画笔
  144.         point m_pos, m_entry, m_exit;
  145.         int m_size, m_cell, m_nx, m_ny;
  146.         int m_mode, m_speed, m_status;
  147.         void fillCell(point pos, int color, int dir);
  148.         void displayText(point p, char *text);
  149. public:
  150.         CBoard();
  151.         ~CBoard();
  152.         int getCell();
  153.         int getMode();
  154.         int getSpeed();
  155.         int getStatus();
  156.         int getSize();
  157.         point getPos();
  158.         point getEntry();
  159.         point getExit();
  160.         void messageBox(char *errMsg, char *title, int style);
  161.         void setTimer(int id, int time);
  162.         void killTimer(int id);
  163. };
  164. //路径节点类
  165. class CPathNode
  166. {
  167.         friend class CPlayer;
  168. private:
  169.         int index; //节点在链表中编号
  170.         int indir; //最初进去方向
  171.         int outdir; //最后一次出去方向
  172.         class point pos; //节点位置
  173.         public:
  174.                 CPathNode();
  175.                 CPathNode(point pos, int index, int indir, int outdir);
  176.                 ~CPathNode();
  177.                 CPathNode(const CPathNode &p);
  178.                 CPathNode &operator =(const CPathNode &p); //重载赋值运算符
  179.                 bool operator ==(const CPathNode &p); //重载等于号
  180. };
  181. //游戏玩家类
  182. class CPlayer: public CBoard
  183. {
  184. private:
  185.         int curdir; //当前的移动方向
  186.         int steps; //当前步数
  187.         time_t usedTime, stopTime; //所有时间用时
  188.         LinkList <class CPathNode> path; //保存走过的正确路径链表
  189.         LinkList <class CPathNode> error; //保存走过的错误路劲链表
  190.         LinkList <class CWall> *mazeptr; //指向当前迷宫的指针
  191.         int canMove();
  192.         int doOper();
  193.         int autoGo();
  194.         void errOut(char *errMsg);
  195.         void showInfo();
  196.         void drawPath();
  197. public:
  198.         CPlayer(CMaze *maze);
  199.         ~CPlayer();
  200.         void onKeyDown(unsigned short key);
  201.         void onTimer(int id);
  202. };
  203. class CMaze: public CBoard
  204. {
  205. private:
  206.         LinkList <class CWall> wlist; //存放迷宫墙壁数据链表
  207.         class CPlayer *m_player;
  208.         void drawWall(class CWall wall);
  209.         int createWallList(LinkList<class point> *list);
  210.         int chgRoomStatus(point pos, LinkList<class point> *list, int dir, int depth);
  211.         int createMaze();
  212.         void drawMaze();
  213.         void showTime();
  214.         void showHelpInfo();
  215.         void initBkGnd();
  216.         int newGame();
  217.         void gameOver();
  218.         public:
  219.                 CMaze();
  220.                 ~CMaze();
  221.                 void dialogBox(HINSTANCE hInst, LPCTSTR IDD, DLGPROC myFunc);
  222.                 int onInit();
  223.                 void initDlg(HWND hDlg);
  224.                 void onDlgOk(HWND hDlg);
  225.                 void onTimer(int id); //游戏主控函数
  226.                 void onKeyDown(unsigned short key); //游戏主控函数
  227.                 void onPaint(HDC hdc);
  228.                 LinkList<class CWall> *getWallList();
  229. };
  230. #endif
  231. ////////////////////////////////////////////
  232. //C语言主要变量和函数定义
  233. ////////////////maze.h//////////////////////
  234. #include <stdio.h>
  235. #include <string.h>
  236. #include <malloc.h>
  237. #include <stdlib.h>
  238. #include <math.h>
  239. #include <time.h>
  240. #define M 50000 /* 迷宫最大墙壁数 */
  241. #define MAX_NODE_NUMBER 50000 /* 最大分配内存节点 */
  242. #define MAXGRADE 150 /* 游戏最大难度 */
  243. #define IDT_TIMER1 1 /* 定时器编号 */
  244. #define IDT_TIMER2 2
  245. #define STEP 16 /* 搜索步长 */
  246. #define RIGHT 0
  247. #define DOWN 1
  248. #define LEFT 2
  249. #define UP 3
  250. #define AUTO_MODE 0
  251. #define PLAY_MODE 1
  252. #define UP_WALL 0
  253. #define LEFT_WALL 1
  254. #define INIT 0
  255. #define GOING 1
  256. #define STOP 3
  257. #define OVER 4
  258. struct position
  259. {
  260.         int x;
  261.         int y;
  262. };
  263. struct GameInfo
  264. {
  265.         struct position pos; /* 背景位置坐标 */
  266.         int size; /* 大小 */
  267.         int timer;
  268.         int nx;
  269.         int ny;
  270.         int cell;
  271.         int mode;
  272.         int mazemode;
  273.         int speed;
  274.         int times;
  275.         int status;
  276. }game;
  277. struct MazeWall
  278. {
  279.         struct position pos;
  280.         int diretcion; /* 方向 0:横 1:竖 */
  281. };
  282. struct MazeCfg
  283. {
  284.         struct MazeWall data[M]; /* 墙壁坐标数据 */
  285.         struct position entry, exit; /* 入口和出口位置 */
  286.         int num; /* 墙壁个数 */
  287. }maze;
  288. struct MapCfg
  289. {
  290.         struct position pos;
  291.         int status; /* 0:未访问, 1:正在访问, 2:已访问 */
  292.         int upstatus; /* 0:可以通过 1:不可以通过 */
  293.         int leftstatus; /* 0:可以通过 1:不可以通过 */
  294.         /* 每个节点只需判断up&left是否可以通过即可 */
  295. };
  296. struct MapCfg **map;
  297. struct travInfo
  298. {
  299.         struct position pos;
  300.         struct travInfo *next;
  301. };
  302. struct RoadInfo
  303. {
  304.         int index; /* 编号 */
  305.         int indir; /* 进去方向 */
  306.         int outdir; /* 出去方向 */
  307.         struct position pos;
  308.         struct RoadInfo *next;
  309. };
  310. struct playercfg
  311. {
  312.         int direction;
  313.         int steps;
  314.         time_t usedTime, endTime, stopTime;
  315.         struct RoadInfo *RoadPtr, *errPtr;
  316. }play;
  317. HWND hWndMain; /* 主窗口句柄 */
  318. HBITMAP h_MemBm = NULL; /* 内存位图 */
  319. HDC h_MemDC = NULL; /* 内存DC */
  320. HBRUSH hBrushes[10]; /* 绘制方块的画刷 */
  321. HBRUSH hBrushBkGnd; /* 背景色画刷 */
  322. HPEN hPenBorder; /* 绘制边框线的画笔 */
  323. int initgame(HWND hWnd);
  324. int markpath(int x, int y, int dir, int color);
  325. int drawWall(int x, int y, int dir);
  326. int drawMaze();
  327. int readMazedata(int *num, int id);
  328. char *GetFldStr(char *sFldStr, char *sStr, char sFld);
  329. void initMalloc();
  330. void addMallocNode(char *);
  331. void freeMallocNode();
  332. void *gcCalloc(size_t , size_t);
  333. int initBkGnd();
  334. int createMaze();
  335. int getWallCfg();
  336. int setDirStatus(struct position pos, struct travInfo *head, int dir, int depth);
  337. int createPlayer(int mode);
  338. int destroyPlayer();
  339. int canMove();
  340. int doOperation();
  341. int havePathed(struct RoadInfo node);
  342. int newGame(int type, int mode);
  343. void drawPath();
  344. void showTime();
  345. int gameOver();
  346. int autoGo(int num);
  347. void DisplayText(int posx, int posy, char *text);
  348. int initGameSet(HWND hDlg);
  349. int chgGameStatus();
  350. void showUsedTime();
  351. void showPlayInfo();
  352. void errOut(char *errMsg)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-6-29 13:35:27 | 显示全部楼层

楼主,请恕在下冒昧:

//////////////MazeClass.h///////////////////////////


这些注释 已经给你说了 下边这些代码 是哪个文件里的。

楼主 需要手动把代码 拆分一下,粘贴到对应名字的文件中。

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-6-30 22:20:21 | 显示全部楼层
谢谢分享

评分

参与人数 1鱼币 -10 收起 理由
小甲鱼 -10 请不要无意义灌水!

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-14 16:02

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表