python实现简单贪吃蛇游戏


Posted in Python onSeptember 29, 2020

本文实例为大家分享了python实现贪吃蛇游戏的具体代码,供大家参考,具体内容如下

python实现简单贪吃蛇游戏

代码:

from turtle import *
from random import randrange
from time import sleep

### 定义变量
snake = [[0,0],[10,0],[20,0],[30,0],[40,0],[50,0]]
apple_x = randrange(-20,20)*10 
apple_y = randrange(-20,20)*10 
aim_x = 10
aim_y = 0


def squre(x,y,size,color_name):
 up()
 goto(x,y)
 down()
 color(color_name)
 begin_fill()

 forward(size)
 left(90)
 forward(size)
 left(90)
 forward(size)
 left(90)
 forward(size)
 left(90)

 end_fill()

## 控制蛇
def change(x,y):
 global aim_x,aim_y
 aim_x = x;
 aim_y = y;
#判断撞墙
def inside():
 #判断是否在画布里面
 if -210 <= snake[-1][0]<=200 and -210 <= snake[-1][1]<=200:
 return True
 else:
 return False
#随机生成苹果
def gameLoop():
 global apple_x,apple_y,aim_x,aim_y,snake
 snake.append([snake[-1][0]+aim_x,snake[-1][1]+aim_y])
 if not inside():
 sleep(2)
 # snake = [[0,0],[10,0],[20,0],[30,0],[40,0],[50,0]]
 # apple_x = randrange(-20,20)*10 
 # apple_y = randrange(-20,20)*10 
 # aim_x = 10
 # aim_y = 0
 return
 #吃苹果
 if snake[-1][0] != apple_x or snake[-1][1]!=apple_y:
 snake.pop(0) # 加一个元素 删除一个元素 蛇就往前运行了
 else:
 apple_x = randrange(-20,20)*10 
 apple_y = randrange(-20,20)*10

 clear() # 清楚之前画的痕迹
 squre(apple_x,apple_y,10,'red') ## x y 位置 图形大小 颜色
 for n in range(len(snake)):
 squre(snake[n][0],snake[n][1],10,'black')

 ontimer(gameLoop,100) #每100毫秒运行一次
 update()

### 主程序
setup(420,420,0,0)
hideturtle() ## 隐藏箭头
tracer(False) ## 不延时
listen() #监听
onkey(lambda: change(0,10), "w")
onkey(lambda: change(0,-10), "s")
onkey(lambda: change(-10,0), "a")
onkey(lambda: change(10,0), "d")

gameLoop()
done()

更多有趣的经典小游戏实现专题,分享给大家:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python实现在pickling的时候压缩的方法
Sep 25 Python
Python 数据结构之队列的实现
Jan 22 Python
用python制作游戏外挂
Jan 04 Python
Python入门必须知道的11个知识点
Mar 21 Python
pandas 数据实现行间计算的方法
Jun 08 Python
使用numba对Python运算加速的方法
Oct 15 Python
Python用61行代码实现图片像素化的示例代码
Dec 10 Python
Python 获取主机ip与hostname的方法
Dec 17 Python
libreoffice python 操作word及excel文档的方法
Jul 04 Python
numpy.meshgrid()理解(小结)
Aug 01 Python
python中openpyxl和xlsxwriter对Excel的操作方法
Mar 01 Python
8g内存用python读取10文件_面试题-python 如何读取一个大于 10G 的txt文件?
May 28 Python
python爬虫---requests库的用法详解
Sep 28 #Python
如何在scrapy中捕获并处理各种异常
Sep 28 #Python
python向企业微信发送文字和图片消息的示例
Sep 28 #Python
python利用tkinter实现图片格式转换的示例
Sep 28 #Python
python在CMD界面读取excel所有数据的示例
Sep 28 #Python
python调用摄像头的示例代码
Sep 28 #Python
python 调用API接口 获取和解析 Json数据
Sep 28 #Python
You might like
js 页面传参数时 参数值含特殊字符的问题
2009/12/13 Javascript
js post提交调用方法
2014/02/12 Javascript
checkbox选中与未选中判断示例
2014/08/04 Javascript
javascript绘制漂亮的心型线效果完整实例
2016/02/02 Javascript
Bootstrap自动适应PC、平板、手机的Bootstrap栅格系统
2016/05/27 Javascript
JS Array创建及concat()split()slice()的使用方法
2016/06/03 Javascript
JS实现兼容各种浏览器的高级拖动方法完整实例【测试可用】
2016/06/21 Javascript
jquery编写日期选择器
2017/03/16 Javascript
JS实现微信里判断页面是否被分享成功的方法
2017/06/06 Javascript
用js实现每隔一秒刷新时间的实例(含年月日时分秒)
2017/10/25 Javascript
js实现关闭网页出现是否离开提示
2017/12/07 Javascript
Vue引用第三方datepicker插件无法监听datepicker输入框的值的解决
2018/01/27 Javascript
js数据类型检测总结
2018/08/05 Javascript
详解ng-alain动态表单SF表单项设置必填和正则校验
2019/06/11 Javascript
vue如何实现自定义底部菜单栏
2019/07/01 Javascript
Vue 子组件与数据传递问题及注意事项
2019/07/11 Javascript
layui按条件隐藏表格列的实例
2019/09/19 Javascript
Vue3 响应式侦听与计算的实现
2020/11/11 Javascript
[54:56]DOTA2上海特级锦标赛主赛事日 - 5 总决赛Liquid VS Secret第三局
2016/03/06 DOTA
[53:10]Secret vs Pain 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
tornado捕获和处理404错误的方法
2014/02/26 Python
Python中的并发编程实例
2014/07/07 Python
python的pandas工具包,保存.csv文件时不要表头的实例
2018/06/14 Python
python求解数组中两个字符串的最小距离
2018/09/27 Python
对python:threading.Thread类的使用方法详解
2019/01/31 Python
Python OpenCV 使用滑动条来调整函数参数的方法
2019/07/08 Python
tensorflow图像裁剪进行数据增强操作
2020/06/30 Python
奶茶店创业计划书范文
2014/01/17 职场文书
法律系毕业生求职信
2014/05/28 职场文书
三问三解心得体会
2014/09/05 职场文书
财务工作失职检讨书
2014/11/21 职场文书
新教师个人工作总结
2015/02/06 职场文书
2015年社区重阳节活动总结
2015/07/30 职场文书
2019年国庆祝福语(70句)
2019/09/19 职场文书
python 实现的截屏工具
2021/05/08 Python
springboot集成springCloud中gateway时启动报错的解决
2021/07/16 Java/Android