直接生成一个100x100的数字矩阵迷宫
时间: 2023-12-14 13:38:06 浏览: 96
好的,以下是一个生成100x100的数字矩阵迷宫的 Python 代码:
```python
import random
# 定义迷宫大小
n = 100
m = 100
# 定义迷宫矩阵
maze = [[0 for j in range(m)] for i in range(n)]
# 随机生成迷宫
for i in range(n):
for j in range(m):
if random.random() < 0.3:
maze[i][j] = 1
# 输出迷宫
for i in range(n):
for j in range(m):
print(maze[i][j], end="")
print()
```
代码中,我们首先定义了迷宫的大小为100x100,并初始化一个全0的迷宫矩阵。然后,我们使用随机数生成算法,在迷宫中随机生成一些障碍物(这里我们设定生成障碍物的概率为0.3)。最后,我们按行列顺序输出迷宫矩阵,其中1表示障碍物,0表示通路。
相关问题
生成一个100x100的数字矩阵迷宫
好的,以下是生成一个100x100的数字矩阵迷宫的 Python 代码:
```python
import random
# 定义迷宫的长和宽
width = 100
height = 100
# 初始化迷宫矩阵
maze = [[1 for j in range(width)] for i in range(height)]
# 随机选择一个起点
start_x = random.randint(0, width - 1)
start_y = random.randint(0, height - 1)
# 将起点标记为通路
maze[start_y][start_x] = 0
# 随机选择一个终点
end_x = random.randint(0, width - 1)
end_y = random.randint(0, height - 1)
# 确保终点和起点不在同一个位置
while end_x == start_x and end_y == start_y:
end_x = random.randint(0, width - 1)
end_y = random.randint(0, height - 1)
# 将终点标记为通路
maze[end_y][end_x] = 0
# 生成迷宫
stack = [(start_x, start_y)]
while stack:
x, y = stack.pop()
directions = [(x-1, y), (x+1, y), (x, y-1), (x, y+1)]
random.shuffle(directions)
for new_x, new_y in directions:
if 0 <= new_x < width and 0 <= new_y < height and maze[new_y][new_x] == 1:
maze[new_y][new_x] = 0
stack.append((new_x, new_y))
# 输出迷宫
for row in maze:
for cell in row:
print(cell, end='')
print()
```
这个程序首先定义了迷宫的长和宽,然后初始化了一个矩阵,用 1 表示墙,用 0 表示通路。程序随机选择起点和终点,并将其标记为通路。接下来,程序使用深度优先搜索算法生成迷宫,最后输出迷宫矩阵。
用matlab生成一个100x100的数字矩阵迷宫
可以使用以下代码生成一个100x100的数字矩阵迷宫:
```matlab
% 定义迷宫大小
n = 100;
% 初始化迷宫矩阵
maze = zeros(n);
% 定义随机起点和终点
start = [randi([1 n]), randi([1 n])];
goal = [randi([1 n]), randi([1 n])];
% 确保起点和终点不在同一位置
while isequal(start, goal)
goal = [randi([1 n]), randi([1 n])];
end
% 生成随机障碍物
for i = 1:n
for j = 1:n
if rand < 0.2 && ~isequal([i,j], start) && ~isequal([i,j], goal)
maze(i,j) = 1;
end
end
end
% 将起点和终点标记在迷宫中
maze(start(1), start(2)) = 2;
maze(goal(1), goal(2)) = 3;
% 显示迷宫
imshow(maze, 'InitialMagnification', 'fit')
```
这段代码首先定义了迷宫的大小为100x100,然后初始化了一个全零的迷宫矩阵。接下来,使用randi函数随机生成起点和终点,并使用while循环确保它们不在同一位置。然后,使用两个嵌套的for循环生成随机障碍物并将它们标记为1。最后,将起点和终点标记为2和3,并使用imshow函数显示迷宫。
您可以根据需要调整随机生成障碍物的概率和起点/终点的位置。
阅读全文