作业帮 > 字数作文 > 教育资讯

迷宫是怎么画的

来源:学生作业帮助网 编辑:作业帮 时间:2024/11/14 07:21:25 字数作文
迷宫是怎么画的字数作文

篇一:c++迷宫绘制

实习报告

1. 需求分析:

随机生成N*N阶迷宫地图,从入口开始寻找到出口的过程,显示每一步的过程.用C++实现,设计类Moze,通过其构造函数生成随机地图,通过其成员函数DoMoze实现寻找从入口到出口路径的过程.

2. 数据类型定义说明:

//迷宫通道块类型

class MazePos

{

public:

int wx,ly; //块的X,Y坐标

int path; //块的类型;0:空块,-1:墙壁,1:出口路径

bool pass; //是否曾经过(对墙壁无意义);false:没有,true:曾经过

bool operator==(const MazePos pos)

{

return (wx==pos.wx && ly==pos.ly );

};

MazePos operator=(const MazePos pos)

{

wx=pos.wx;

ly=pos.ly;

pass=pos.pass;

path=pos.path;

return *this;

};

};

//End:MazePos---------------------------------------

//class:SElemType-----------------------------------------

//辅助栈元素类型

class SElemType

{

public:

int ord; //迷宫通道块路径上的序号

MazePos seat; //通道块在迷宫中的位置坐标

int di; //从此通道块走向下一通道块的方向

//0:无效,1:东,2:南,3:西,4:北

bool operator==(const SElemType et)

{

return (seat==et.seat);

};

SElemType operator=(const SElemType et)

{

ord =et.ord ;

seat =et.seat ;

di =et.di ;

return (*this);

};

};

//End:SElemType--------------------------------------

//struct:MazeMap-------------------------------------

typedef struct MazeMap

{

//由通道块矩阵构成

MazePos mazemap[MAPWIDTH][MAPHEIGHT];

}MazeMap;

//End:MazeMap---------------------------------------

//struct::MazeWay----------------------------------------

//辅助出口路径链表元素类型

typedef struct MazeWay

{

int wx,ly;

}MazeWay;

//End:MazeWay--------------------------------------------

//Class:Maze----------------------------------------

//主体类,迷宫路径问题求解

class Maze

{

public:

Maze(int width=MAPWIDTH,int height=MAPHEIGHT); //生成迷宫地图

~Maze();

void DoMaze(); //找出出口路径并显示

private:

bool InitOK; //初始化成功标志

MazeMap map; //迷宫地图

MazePos start,end; //迷宫的入口和出口

bool FindPath(); //主要函数,寻找出口路径

list mazeway; //存放出口路径的临时链表

void RandMap(); //随机生成迷宫地图函数

bool CreateMap(bool init); //在初始和找到出口路径后生成相应地图函数

bool pass(MazePos curpos); //当前路径通道块是否可通(即是不是未经过的空块) MazePos NextPos(MazePos curpos,int di); //取得当前通道块当前方向上的下一个通道

bool Invalide(SElemType e); //使当前通道块标记为不可通

void DisplayMaze(); //显示迷宫地图

};

主程序流程图:

1>.初始化迷宫,构造辅助运行栈和结果链表

2>.从入口开始

do

{

if (当前位置可通)

{

当前位置入栈

if (当前位置是出口)

{

结束

迷宫是怎么画的

}

else

{

取得当前位置当前方向上的下一位置为当前位置

将新当前位置入栈

}

}

else

{

从栈中弹出栈顶元素为当前位置

while(当前位置已无下一有效位置 && 栈不为空)

{

将当前位置标记为无效

弹出栈顶元素为当前位置

}

if (当前位置还有下一有效位置时)

{

当前位置方向调整

当前位置进栈

取得取得当前位置当前方向上的下一位置为当前位置

}

}

}while(栈不为空时);

未找到出口

3>.生成新地图

4>.显示地图

函数调用关系:

(1). CreatMap(bool?RandMap

(2). DoMaze -->FindPath( );

-->CreatMap( );

-->DisplayMaze( );

(3). FindPath -->Pass( ):

-->NextPos( );

3. 调试分析:

程序运行时不停的闪动,通过修改sleep(1000)中的值问题解决

时间和空间复杂度都是n*n.

4. 使用说明:

运行程序后生成一随机地图,按提示操作即开始从入口到出口运行的每一步步骤,每走一步显示一次地图,并显示走过的路径.

5. 源程序及运行结果:

#include

#include

#include

#include

#include

#include

#include

using namespace std;

Maze::Maze(int width,int height)

{ //

//随机生成迷宫地图

CreateMap(true);

//显示地图

DisplayMaze();

}

Maze::~Maze()

{

//Add codes here

}

bool Maze::FindPath ()

{//寻找出口,并生成出口路径链表

if(InitOK)

{

//MazeStack mstack;

stack > mstack;

MazePos curpos=start;

int curstep=1; //经过的步数

MazeWay mw; //出口路径块元素

unsigned mwsize=mazeway.size (); //为显示运行过程而设

do

{

if(pass(curpos))

{

//如果当前位置可通(即是未走过的空块)

//封装栈元素,将当前位置进栈

SElemType e;

e.ord =curstep;

e.seat =curpos;

e.di =1;

mstack.push (e);

//保存当前位置到出口路径链表

mw.wx =e.seat .wx ;

mw.ly =e.seat .ly ;

mazeway.push_back (mw);

//如果是出口,则结束

if(curpos==end)

return true;

//不然就将得到下一个通道块

curpos=NextPos(curpos,e.di );

curstep++;

}

else

{

//当前位置不可通,则在栈内找到下一个位置

if(!mstack.empty())

{

SElemType e;

e=mstack.top ();

mstack.pop ();

//调整出口路径链表

mazeway.pop_back ();

while((e.di==0 || e.di ==4) && !mstack.empty ()) {

Invalide(e); //标记刻通道块不能通过

e=mstack.top ();

mstack.pop (); //退回一步

//调整出口路径链表

mazeway.pop_back ();

}

if(mstack.empty ())

return false;

else if( e.di<5)

{

e.di++;

e.di=e.di%5;

mstack.push (e);

篇二:画迷宫

教学目的;

1、了解迷宫的有关知识,学习运用线条表现物象,理解线条的造型能力,丰富学生的感受。通过迷宫造型游戏,体验快乐。

2、学生能够大胆的运用线条、颜色画迷宫,提高用线和色的表现力。

3、通过迷宫造型游戏,体验快乐。

教学重点:教师通过迷宫范例讲解设计迷宫的要点,使学生清晰可辩

教学难点 : 设计迷宫,给迷宫涂上漂亮的颜色。

教学过程:

一、引导自学

1、玩迷宫:

教师出示一张迷宫图片,通过大屏幕师生共同玩迷宫,体验玩迷宫带来的快乐。

探究迷宫:设计迷宫包括的内容有:起点、终点、障碍物、故事情节、路线清晰可辨。学生欣赏、分析迷宫图片。

2、你都玩够那些迷宫?我玩过小猪找家的迷宫。

3、作业步骤:1、构思迷宫(迷宫的内容、迷宫的外形、故事情节等)

4、设计迷宫,用铅笔起稿,黑笔勾边。(起点、终点、路线、内容清晰可辨)

二、当堂检测:

作品展示

鼓励学生向同学们介绍自己的作品,教师要选择有特点的作业进行点评,学生纷纷展示自己的作品,与同学们进行交流。

三、巩固拓展:

学生除了在附近的公园玩过真实的迷宫,其余都是在迷宫书上见到的,要学生把真实的自然界中大型的植物迷宫,画下来,开阔眼界,增长知识提高绘画能力。

篇三:3、画迷宫

3、画迷宫

授课时间:

教学目标:

知识与能力:

能大胆的想象和创造,运用多种造型方法表现出一个平面的或立体的迷宫。在学习中掌握相关的方法和技能,提高学生的动手能力。 过程与方法:

收集有关的迷宫的资料,了解它的文化和历史以及造型特点。 情感态度与价值观:

掌握不同材料和工具的使用方法。养成有序的制作的习惯,培养学生的合作精神。

教学重点:了解它的文化和历史以及造型特点。

教学难点:运用多种造型方法表现出一个平面的迷宫。

用具准备:课本、铅笔、彩色笔、作业本

教学过程

一、 玩迷宫:(3分钟)

教师出示一张迷宫图片,通过大屏幕师生共同玩迷宫,体验玩迷宫带来的快乐。

二、探究迷宫:(10分钟)

1、设计迷宫包括的内容有:起点、终点、障碍物、故事情节、路线清晰可辨。

2、提问学生都玩够那些迷宫?

学生回答问题:

1、我玩过奥特曼抢险的迷宫。

2、我玩过小猪找家的迷宫。

3、学生欣赏、分析迷宫图片。

4、教师以一小段故事引出课本中外形像鱼的迷宫,依次引出怪兽迷宫和房子迷宫,发现三个迷宫的不同之处:

①通过对迷宫的比较,发现每个迷宫的外形不同。

②迷宫所反应的内容不相同。

③每座迷宫的设计路线不同。

5、教师启发学生发挥想象力,引导学生在丰富的生活中、在所听所看的故事情节中选择体验最深的内容作为素材去创作迷宫。

(设计意图:迷宫对于二年级的小学生来说充满了神秘的色彩,

就利用他们的兴趣,是他们认识到迷宫的特点,为以后设计迷宫、画迷宫打下基础。)

学生回答问题:

①我想设计刺猬摘果子的迷宫。

②我想设计小猪探宝的迷宫。

三、学生创作,教师辅导:(15分钟)

作业步骤:1、构思迷宫(迷宫的内容、迷宫的外形、故事情节等)

2、设计迷宫,用铅笔起稿,黑笔勾边。(起点、终点、

路线、内容清晰可辨)

3、给迷宫涂上漂亮的颜色。

四、作品展示(5)

鼓励学生向同学们介绍自己的作品,教师要选择有特点的作业进行点评。

五、开阔眼界:(7分钟)

学生除了在附近的广场玩过真实的迷宫,其余都是在迷宫书上见到的,教师在这个环节将要为学生展示自然界中大型的植物迷宫,开阔眼界,增长知识。

六、板书设计

三、画迷宫

设计迷宫包括的内容:

1、起点

2、终点

3、障碍物

4、故事情节

5、路线清晰可辨

这设计路线是复习一下曾经学过的线条:折线、直线、曲线、波浪线、乱缠线、弹簧线等。

篇四:2-6岁少儿迷宫图3(可以当着色画哦)

2-6岁少儿迷宫图 3 (可以当着色画哦)

早在古希腊神话中,就有迷宫的传说。迷宫这个词,就是从希腊文演变过来的。传说古埃及金字塔藏有珍宝,为了防盗,里面就建成迷宫的结构。16世纪时,欧洲曾兴起一股建迷宫的热潮。后来世界许多地方也都建起了迷宫。迷宫开始为了藏宝,后来逐渐变成娱乐性建筑。科学家把它移植到纸上,成为一种纸上游戏。孩子玩迷宫游戏可以提高孩子专注力,加强耐心和毅力,还能让孩子对事物整体和局部之间的关系有一个基础的训练,开发孩子的右大脑。这是一项非常好的寓教于乐的训练题材。 这里我搜集了一些适合2——6岁的孩子游戏的迷宫图,喜欢的可以让孩子试一试。

篇五:2-6岁少儿迷宫图3(可以当着色画哦)

2-6

岁少儿迷宫图 3 (可以当着色画哦)

字数作文