资源简介

随机迷宫生成用来我自己设计的一种算法,可以生成有一条通路的迷宫。并可自动寻路。 有两种模式 自动和手动。 自己游戏选手动,查看如何寻路的选自动 自动寻路开始快捷键SPACE 没有C++,与API编程基础的人不要看。 武汉科技大学的,请不要下载因为这是我的课程大作业,花了3天时间完善的。还要给老师检查,可别雷同了。

资源截图

代码片段和文件信息

#include “StdAfx.h“
#include “GoMaze.h“
#include “Resource.h“

//生成随数,并且【range_min<=uint RangedRand(int range_min int range_max)
{
int u = rand();
 u = (double)u/ (RAND_MAX + 1) * (range_max - range_min)+ range_min;
return u;
}


//设置地图
void CGoMaze::SetMaze(int nWidthint nHeightHWND hwndHINSTANCE hInst)
{
bitmapstone = LoadBitmap(hInstMAKEINTRESOURCE(IDB_STONE));
bitmapin = LoadBitmap(hInstMAKEINTRESOURCE(IDB_IN));
bitmapout = LoadBitmap(hInstMAKEINTRESOURCE(IDB_OUT));
bitmapman = LoadBitmap(hInstMAKEINTRESOURCE(IDB_MAN));
this->hwnd = hwnd;
m_wide = nWidth;
m_height = nHeight;
this->hInst = hInst;
CreateMap();//随机生成地图
}

CGoMaze::CGoMaze(void)
{
InitList(list);
}

CGoMaze::~CGoMaze(void)
{//销毁窗口
for(int i =0;i for(int j =0;j {
if (maze[i][j] == 1)
{
DestroyWindow(hwndmaze[i][j]);
}
}
DestroyWindow(hwndmaze[0][0]);
DestroyWindow(hwndmaze[m_height-1][m_wide-1]);
DestroyWindow(hwndman);
DestroyList(list);
}

void CGoMaze::DrawMaze(void)
{
int ID = 2000;
for(int i =0;i for(int j =0;j {
if (maze[i][j] == 1)
{
hwndmaze[i][j] = CreateWindow(_T(“static“)NULLSS_BITMAP |WS_CHILD|WS_VISIBLEj*33i*333333hwnd(HMENU)(ID++)hInstNULL);
SendMessage(hwndmaze[i][j]STM_SETIMAGE(WPARAM)IMAGE_BITMAP(LPARAM)bitmapstone);
}
else
maze[i][j] = 0;
}
curPos.x=0;curPos.y=0;
endPos.x=m_height-1;endPos.y=m_wide-1;
//小人的图标
hwndman = CreateWindow(_T(“man“)NULLSS_BITMAP |WS_CHILD|WS_VISIBLE003333hwnd(HMENU)(ID++)hInstNULL);
SendMessage(hwndmanSTM_SETIMAGE(WPARAM)IMAGE_BITMAP(LPARAM)bitmapman);
//出入口图标
hwndmaze[0][0] = CreateWindow(_T(“static“)NULLSS_BITMAP |WS_CHILD|WS_VISIBLE003333hwnd(HMENU)(ID++)hInstNULL);
SendMessage(hwndmaze[0][0]STM_SETIMAGE(WPARAM)IMAGE_BITMAP(LPARAM)bitmapin);
hwndmaze[m_height-1][m_wide-1] = CreateWindow(_T(“static“)NULLSS_BITMAP |WS_CHILD|WS_VISIBLE(m_wide-1)*33(m_height-1)*333333hwnd(HMENU)(ID++)hInstNULL);
SendMessage(hwndmaze[m_height-1][m_wide-1]STM_SETIMAGE(WPARAM)IMAGE_BITMAP(LPARAM)bitmapout);
}

//inclu为TRUE时包括边
//获取每一个点的信息,当inclu为false时计算指定点附近可以打通的墙的个数
//当inclu为false时计算指定点附近可以打通的墙的个数包括地图边界.
int CGoMaze::SurroundNum(int xint yBOOL inclu)
{
int i =1;
int num = 0;
POINT temp;
int next_x=x+1next_y=y+1prev_x=x-1prev_y=y-1;
if(!inclu) ClearList(list);
//下
if (next_x>=m_height)
{
if(inclu)
num++;
}
else
{
if (maze[next_x][y] == 1)
{
temp.x = next_x;
temp.y = y;
if(!inclu) ListInsert(listi++temp);
num ++;
}
}
//右
if (next_y>=m_wide)
{
if(inclu)
num++;
}
else
{
if (maze[x][next_y] == 1)
{
temp.x = x;
temp.y = next_y;
if(!inclu) ListInsert(listi++temp);
num ++;
}
}
//上
if (prev_x<0)
{
if(inclu)
num++;
}
else
{
if

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件        798  2010-05-30 03:14  Maze\Maze\bitmap1.bmp

     文件        798  2010-05-30 03:14  Maze\Maze\bitmap2.bmp

     文件       6920  2010-05-31 23:53  Maze\Maze\GoMaze.cpp

     文件        875  2010-05-31 23:45  Maze\Maze\GoMaze.h

     文件       1078  2010-05-29 12:23  Maze\Maze\icon1.ico

     文件       2203  2010-05-29 23:05  Maze\Maze\list.cpp

     文件        377  2010-05-29 23:10  Maze\Maze\list.h

     文件       3126  2010-05-30 15:37  Maze\Maze\man.bmp

     文件      14364  2010-05-30 15:37  Maze\Maze\Maze.aps

     文件       8216  2010-05-31 23:49  Maze\Maze\Maze.cpp

     文件         39  2010-05-29 12:02  Maze\Maze\Maze.h

     文件      23558  2010-05-29 12:14  Maze\Maze\Maze.ico

     文件       5110  2010-05-30 15:37  Maze\Maze\Maze.rc

     文件       5370  2010-05-30 18:11  Maze\Maze\Maze.vcproj

     文件       1413  2010-05-31 23:58  Maze\Maze\Maze.vcproj.ANDIS-PC.ANDIS.user

     文件       1919  2010-05-29 12:02  Maze\Maze\ReadMe.txt

     文件       1441  2010-05-30 15:37  Maze\Maze\resource.h

    .......     23558  2003-07-24 09:52  Maze\Maze\small.ico

     文件        209  2010-05-29 12:02  Maze\Maze\stdafx.cpp

     文件        429  2010-05-31 22:15  Maze\Maze\stdafx.h

     文件       3030  2010-05-29 14:08  Maze\Maze\stone.bmp

     文件       1026  2010-05-29 12:02  Maze\Maze\targetver.h

     文件        878  2010-05-29 12:02  Maze\Maze.sln

    ..A..H.     29184  2010-05-31 23:58  Maze\Maze.suo

     文件      90112  2010-05-31 23:53  Maze\Release\Maze.exe

     目录          0  2010-05-31 23:59  Maze\Maze

     目录          0  2010-05-31 23:59  Maze\Release

     目录          0  2010-05-31 23:59  Maze

     文件      90112  2010-05-31 23:53  Maze.exe

----------- ---------  ---------- -----  ----

............此处省略2个文件信息

评论

共有 条评论