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网络爬虫采集联想词示例
Feb 11 Python
Python实现115网盘自动下载的方法
Sep 30 Python
跟老齐学Python之重回函数
Oct 10 Python
Python中如何获取类属性的列表
Dec 26 Python
python自动裁剪图像代码分享
Nov 25 Python
tensorflow TFRecords文件的生成和读取的方法
Feb 06 Python
手机使用python操作图片文件(pydroid3)过程详解
Sep 25 Python
Python利用PyExecJS库执行JS函数的案例分析
Dec 18 Python
Python MySQLdb 执行sql语句时的参数传递方式
Mar 04 Python
python利用后缀表达式实现计算器功能
Feb 22 Python
Python 高级库15 个让新手爱不释手(推荐)
May 15 Python
使用Pytorch训练two-head网络的操作
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
PHP5.3安装Zend Guard Loader图文教程
2014/09/29 PHP
php语言注释,单行注释和多行注释
2018/01/21 PHP
Laravel框架实现定时Task Scheduling例子
2019/10/22 PHP
JS实现自动变换的菜单效果代码
2015/09/09 Javascript
Eclipse引入jquery报错如何解决
2015/12/01 Javascript
jQuery实现为控件添加水印文字效果(附源码)
2015/12/02 Javascript
JS 组件系列之BootstrapTable的treegrid功能
2017/06/16 Javascript
vue axios 表单提交上传图片的实例
2018/03/16 Javascript
解决vue 引入子组件报错的问题
2018/09/06 Javascript
JS实现可视化文件上传
2018/09/08 Javascript
vue单文件组件lint error自动fix与styleLint报错自动fix详解
2019/01/08 Javascript
JS根据json数组多个字段排序及json数组常用操作
2019/06/06 Javascript
JavaScript onclick事件使用方法详解
2020/05/15 Javascript
[03:39]2015国际邀请赛主赛事首日精彩回顾
2015/08/05 DOTA
[52:00]2018DOTA2亚洲邀请赛 4.1 小组赛 A组加赛 LGD vs Optic
2018/04/02 DOTA
python使用chardet判断字符串编码的方法
2015/03/13 Python
python实现爬取千万淘宝商品的方法
2015/06/30 Python
Python的装饰器使用详解
2017/06/26 Python
django请求返回不同的类型图片json,xml,html的实例
2018/05/22 Python
Python字节单位转换实例
2019/12/05 Python
django 利用Q对象与F对象进行查询的实现
2020/05/15 Python
python3访问字典里的值实例方法
2020/11/18 Python
canvas绘制视频封面的方法
2018/02/05 HTML / CSS
雅诗兰黛香港官网:Estee Lauder香港
2017/09/26 全球购物
英国可持续奢侈品包包品牌:Elvis & Kresse
2018/08/05 全球购物
什么是SCM(软件配置管理)
2014/08/16 面试题
西安夏日科技有限公司Java笔试题
2013/01/11 面试题
内科护士实习自我鉴定
2013/10/17 职场文书
实习评语
2013/12/16 职场文书
工商管理专业职业生涯规划
2014/01/01 职场文书
特色蛋糕店创业计划书
2014/01/28 职场文书
2014年城管工作总结
2014/11/20 职场文书
会计求职自荐信
2015/03/26 职场文书
企业党建工作总结2015
2015/05/26 职场文书
当你找不到方向的时候,不妨读读刘备的一生
2019/08/05 职场文书
导游词之南京栖霞山
2019/10/18 职场文书