#创作计划#用Python做出二维地图
2024-12-22 07:40:22
发布于:北京
此文采用了制作10*10地图的案例讲解
第一个目标结果:
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 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
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 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
第一部分详解:
首先需要定义一个列表map
,即为:
map = []
然后定义map_x
和map_y
两个变量,以便修改地图的x和地图的y:
map_x = 10
map_y = 10
这时定义一个叫one_line_map
的列表:
one_line_map = []
然后用for
循环将one_line_map
列表赋值为[0,0,0,0,0,0,0,0,0,0]
for x in range(map_x):
one_line_map.append("0")
敲黑板重点 !!
这时只要往map
里添加map_y
次one_line_map
,map就能成为二维数组,即为[[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,0,0,0,0,0]]
for y in range(map_y):
map.append(one_line_map)
接下来,我们来尝试格式化输出map
,看看数据对不对:
首先,我们采用for
循环进行格式化输出:
for y in range(map_x):
for x in range(map_y):
# _____________(在这里写格式化输出的代码)
既然是二维数组,那也就需要两个索引,但注意,y
要在x
前面:
print(map[y][x],end=' ')
记得在for x
部分循环完结后加上print()
换行,所以此部分完整代码为:
for y in range(map_x):
for x in range(map_y):
print(map[y][x],end=' ')
print()
庆祝!🎉🎉🎉
但接下来就是我们的第二个挑战——怪兽来临,地图更新
第二个目标如下:
0 0 0 0 0 0 0 0 1 1
0 0 0 0 0 0 0 0 1 1
0 0 0 0 0 0 0 0 1 1
0 0 0 0 0 0 0 0 1 1
0 0 0 0 0 0 0 0 1 1
0 0 0 0 0 0 0 0 1 1
0 0 0 0 0 0 0 0 1 1
0 0 0 0 0 0 0 0 1 1
0 0 0 0 0 0 0 0 1 1
0 0 0 0 0 0 0 0 1 1
第二部分详解:
我们依然需要必不可少的for
:
for y in range(map_x):
for x in range(_①_):
_____②_____
不过这次,上面的①部分就不是map_y
,而是range(8,10)
②部分为赋值语句,即为map[y][x] = 1
所以,第二部分完整代码为:
for y in range(map_x):
for x in range(range(7,9)):
map[y][x] = 1
接下来是第三个挑战——大炮攻击,打败怪兽
第三个目标如下:
0 0 0 0 0 0 0 0 1 1
0 0 0 0 0 0 0 0 1 1
0 0 0 0 0 0 0 0 1 1
0 0 0 0 0 0 0 0 2 1
0 0 0 0 0 0 0 0 1 1
0 0 0 0 0 0 0 0 1 1
0 0 0 0 0 0 0 0 2 1
0 0 0 0 0 0 0 0 1 1
0 0 0 0 0 0 0 0 1 1
0 0 0 0 0 0 0 0 1 1
第三部分详解:
我们只需要修改和两个坐标的怪兽为大炮攻击点,所以修改的代码为:
map[3][8] = 2
map[6][8] = 2
作者在憋大招!
这里空空如也
有帮助,赞一个