本文正在参加「Python主题月」,详情查看 活动链接
hello大家好,今天我又发现了个有趣的小玩意。我是专写有趣小玩意的老诗。
相信大家对于迷宫游戏都并不陌生。现在也能找到各种各样的迷宫游戏玩。那么你们自己是否会编写呢?接下来老诗用python教你们编写迷宫小游戏。
老规矩,先上效果图
生成迷宫的核心代码是下面这一段:
def draw():
"Draw maze."
color('black')
width(5)
for x in range(-200, 200, 40):
for y in range(-200, 200, 40):
if random() > 0.5:
line(x, y, x + 40, y + 40)
else:
line(x, y + 40, x + 40, y)
迷宫的宽度是40。然后在-200到200这个范围内随机生成迷宫。
划线的动作响应
def tap(x, y):
"Draw line and dot for screen tap."
if abs(x) > 198 or abs(y) > 198:
up()
else:
down()
width(2)
color('red')
goto(x, y)
dot(4)
tap是鼠标单击响应事件。在有效范围内点击。那就把线条画出来。线条规定是红色,粗细为2。
当然现在这个迷宫并非是完整的迷宫游戏,因为他不是有唯一的入口和出口。这个需要我们堵上其他的入口出口让它们变得唯一。如何我还需要确定入口和出口的唯一连通性。
如果我们觉得难度不够大,我们还可以自己定义迷宫的大小,只需要把迷宫生成范围和触碰范围自行改大就行了。
for x in range(-200, 200, 40):
for y in range(-200, 200, 40):
if abs(x) > 198 or abs(y) > 198:
当然同学们也可以把项目做得更难一些。我们可以试着用算法把自己生成的迷宫走一边。用最短的路径把迷宫走完。这个部分就要涉及到A* 寻路。更具体的A* 寻路算法,可以自行去查阅资料:传送门
整体而言,游戏并不是太难,也很容易就可以学会。上面的思想还是说的比较清楚的。有需要拿完整源码的话,请移步到公众号:诗一样的代码。既然进来了,原创不易。小伙伴点个赞再走呗。