赞
踩
觉得有帮助请点赞关注收藏~~~
贪吃蛇小游戏相信大家都不陌生,接下来我们用python实现一个简单版的贪吃蛇小游戏 效果如下
游戏界面如下 随着吃的变多蛇会变长
控制台会显示得分数目
源码如下
-
- from random import randrange # 导入随机函数
- from freegames import vector,square # 导入向量函数与绘图函数
- import turtle # 导入绘图海龟模块
-
- food = vector(0,0) # 食物
- snake = [vector(10, 0)] # 蛇
- position = vector(0, -10) # 移动位置,一步的距离为10
-
- def change(x, y): # 改变蛇的移动方向
- position.x = x
- position.y = y
-
- def is_inside(head): # 判断蛇头是否在窗体内
- return -200 < head.x < 190 and -200 < head.y < 190
-
- def move(): # 可以让蛇移动的方法
- head = snake[-1].copy() # 确定蛇头的位置
- head.move(position) # 移动一步
- if not is_inside(head) or head in snake: # 如果蛇的头部位于边界外或者蛇头在蛇的身体中
- square(head.x, head.y, 9, 'red') # 绘制红色蛇头,说明游戏结束
- turtle.update() # 更新
- return
- snake.append(head) # 更新蛇的位置
- if head == food: # 如果蛇吃到食物
- print('Snake:', len(snake)) # 根据蛇的长度进行加分
- food.x = randrange(-15, 15) * 10 # 随机生成食物x坐标
- food.y = randrange(-15, 15) * 10 # 随机生成食物y坐标
- else:
- snake.pop(0) # 移除蛇走过的坐标
- turtle.clear() # 清空蛇走过的位置
- for body in snake: # 循环遍历蛇的坐标
- square(body.x, body.y, 9, 'black') # 绘制黑色蛇
- square(food.x, food.y, 9, 'green') # 绘制绿色食物
- turtle.update()
- turtle.ontimer(move, 100) # 定时执行move函数
-
- if __name__ == '__main__': # 程序入口
- turtle.setup(420, 420, 370, 0) # 创建窗体大小
- turtle.hideturtle() # 隐藏箭头显示
- turtle.tracer(False) # 关闭绘画效果
- move() # 调用让蛇移动的方法
- turtle.listen() # 事件监听器
- turtle.onkey(lambda: change(10, 0), 'Right') # 按键盘右键,蛇向右走
- turtle.onkey(lambda: change(-10, 0), 'Left') # 按键盘左键,蛇向左走
- turtle.onkey(lambda: change(0, 10), 'Up') # 按键盘上键,蛇向上走
- turtle.onkey(lambda: change(0, -10), 'Down') # 按键盘下键,蛇向下走
- turtle.done() # 停止画笔绘制,但绘图窗体不关闭
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。