C语言C++编写——迷宫游戏

本文介绍了一款使用C语言和C++编写的迷宫游戏。作者首先用C语言完成初版,然后转为C++,在VC++6.0环境下开发。文章重点在于生成迷宫的算法,采用接合图的深度优先遍历,并利用链表实现。此外,还提到了游戏的主要全局变量和关键类的定义,包括C++的CMaze、CRoom、LinkList等,以及C语言的相关结构体和函数。
摘要由CSDN通过智能技术生成

最初用C语言写的,写了一天多写好。后来又改用C++,由于对C++不是很熟悉,改成C++用了三四天才改好。

程序是在VC++6.0中写的,新建一个Win32 Application即可。

 最初觉得程序的关键应该是求解迷宫,后来发现求解迷宫很简单,难点是如何生成迷宫。 这里采用接合图的深度优先遍历,生成迷宫的算法,定义了搜索步长以便控制迷宫分支多少和分支深度。 由于程序中多处用到链表,所以对于迷宫求解部分也是用链表,没有用栈。 代码比较多,就不出了,只列举了C和C++主要全局变量和函数,时间有限本人就不去一一编辑代码了;想要全部代码私聊我

 

///

//C++主要变量和函数定义

//maze.h///

//全局变量

#ifndef _GLOBAL_VAR_

#define _GLOBAL_VAR_

#include "MazeClass.h"

class CMaze *game = NULL; //迷宫类对象指针

class CRoom **map; //游戏map指针

HWND hWndMain; //主窗口句柄

HBITMAP h_MemBm = NULL; //内存位图

HDC h_MemDC = NULL; //内存DC

RECT rCliRet; //游戏窗口大小

HBRUSH hBrushes[10]; //绘制方块的画刷

#endif

//LinkList.h///

#ifndef _LINK_LIST_H

#define _LINK_LIST_H

#include <iostream.h>

template <class T>

class Node

{

private:

Node<T> *nextptr;

public:

T data;

Node();

~Node();

Node <T> *next() const;

Node(const T &item, Node<T> *ptrnext=NULL);

void setNext(Node<T> *ptrnext=NULL);

};

template <class T>

class LinkList

{

private:

Node<T> *head;

Node<T> *tail;

Node<T> *curr;

Node<T> *getNode(const T &item, Node<T> *ptrnext=NULL);

void freeNode(Node <T> *p);

int size;

public:

LinkList();

~LinkList();

Node<T> *next();

Node<T> *current();

Node<T> *first();

Node<T> *last();

Node<T> *findNode(int index);

Node<T> *findNode(const T &item); //此功能需要模板类重载等于运算符

void reset();

int getSize();

int insertFront(const T &item);

int insertTail(const T &item);

int insertAfter(const T &item, int index);

int deleteFront(T *item);

int deleteTail(T *

评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值