如何在Scratch上制作迷宫生成器?

时间:2018-12-03 10:10:08

标签: mit-scratch

我目前在高中,并且在APCSP(AP计算机科学原理)课程中,就我而言,该课程是在Scratch编程中学习的。我很困惑,几乎不知道我在做什么。 Scratch非常令人困惑,我觉得学习毫无意义。

我的问题是:任何人都可以帮助我在Scratch上制作迷宫生成器,因为这是我的项目,而且给我带来了挣扎。

谢谢。

3 个答案:

答案 0 :(得分:1)

实际上可以从头开始构建,但是取决于您要寻找的内容。我假设您想像在Boulder dash这样的老式8位游戏中那样生成一个简单的迷宫。

首先确定迷宫的大小:例如5 x 5块。 如果要创建一个迷宫,请想象将其绘制在纸上的网格上。块要么是“空”的,要么是填充的。我们的迷宫可以用数字表示。空块用0表示,填充块用1表示。

如果所有块都为空,则可以像这样可视化该矩阵:

0,0,0,0,0,
0,0,0,0,0,
0,0,0,0,0,
0,0,0,0,0,
0,0,0,0,0

在保持内部空白的同时添加边框墙看起来像:

1,1,1,1,1,
1,0,0,0,1,
1,0,0,0,1,
1,0,0,0,1,
1,1,1,1,1

使用“列表”变量存储此信息最适合MIT Scratch。

在这种情况下,您需要了解迷宫中的每个方块都由矩阵上方的位置表示。您可以在一张纸上以网格/矩阵的形状和大小绘制数字,以作为参考,以便记住每个块的位置(如果这样更容易)。

我们还需要研究迷宫与舞台大小之间的关系。默认草稿项目的宽度和高度(以像素为单位)为480x360。

5 x 5迷宫分为480/5 = 96宽度和360/5 = 72高度的块。换句话说,基于全屏迷宫,一个块需要为96x72像素。

下一步是创建一个代表迷宫方块可视化的精灵。我将使块精灵的第一个“服装”为空,并创建一个完全填充的块来表示迷宫的壁。

之后,我们需要以编程方式创建迷宫。我举了一个例子,您可以探索迷宫方块随机绘制的过程: https://scratch.mit.edu/projects/278731659/

(您可以更改行和列的值以查看其放大比例,但请记住,块精灵可以具有的克隆数量限制为300)

这仅仅是让您入门,决不是一个完整的解决方案。我只是希望这可以帮助您朝正确的方向思考。

您可以通过添加功能来探索和更正随机绘制的网格,以生成从位置x到位置y的可步行路径,从而使此操作更高级。例如,可以编程的规则为:网格中的每个空白位置在其上方,下方,左侧和右侧的空间中至少应具有两个其他空白位置。

答案 1 :(得分:0)

有很多不同的方法可以做到这一点;无论是带有精灵和图章还是2D列表和笔。无论哪种方式,主要组成部分都是算法。 This维基百科页面详细介绍了迷宫生成的工作原理以及几种不同的算法。还有The Coding Train here的视频系列,他在上面用2D list方法创建了一个迷宫生成器(但是,这种方法从头开始有点困难)。无论哪种方式,最好的办法是查看其他人制作的示例,弄清楚它们的工作方式,然后尝试重新创建它们或使它们变得更好。 Here's是入门的好地方。

答案 2 :(得分:0)

从头开始是毫无意义的!一个简单的迷宫生成器可以让您使用笔绘制预定义的形状(例如长的走廊或交叉点)。您还应该制作(不可见的)正方形以分隔所有内容,并在正方形中绘制程序。

稍后我将放置一个链接,该链接会导致具有代码的示例项目。

相关问题