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 相关文章推荐
python3模拟百度登录并实现百度贴吧签到示例分享(百度贴吧自动签到)
Feb 24 Python
python单线程实现多个定时器示例
Mar 30 Python
python中的sort方法使用详解
Jul 25 Python
Python THREADING模块中的JOIN()方法深入理解
Feb 18 Python
Python3自动签到 定时任务 判断节假日的实例
Nov 13 Python
Python 异常的捕获、异常的传递与主动抛出异常操作示例
Sep 23 Python
Jupyter Notebook输出矢量图实例
Apr 14 Python
Python实现读取并写入Excel文件过程解析
May 27 Python
python开发前景如何
Jun 11 Python
pandas取dataframe特定行列的实现方法
May 24 Python
pandas中pd.groupby()的用法详解
Jun 16 Python
Python使用pandas导入xlsx格式的excel文件内容操作代码
Dec 24 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
PHP substr 截取字符串出现乱码问题解决方法[utf8与gb2312]
2011/12/16 PHP
PHP解析RSS的方法
2015/03/05 PHP
详解WordPress中调用评论模板和循环输出评论的PHP函数
2016/01/05 PHP
向大师们学习Javascript(视频与PPT)
2009/12/27 Javascript
使用jquery与图片美化checkbox和radio控件的代码(打包下载)
2010/11/11 Javascript
图片延迟加载的实现代码(模仿懒惰)
2013/03/29 Javascript
JS实现的4种数字千位符格式化方法分享
2015/03/02 Javascript
jquery实现上传文件大小类型的验证例子(推荐)
2016/06/25 Javascript
jQuery获取attr()与prop()属性值的方法及区别介绍
2016/07/06 Javascript
ES6新特征数字、数组、字符串
2016/10/01 Javascript
jquery自定义表单验证插件
2016/10/12 Javascript
基于js实现的限制文本框只可以输入数字
2016/12/05 Javascript
javascript html5轻松实现拖动功能
2017/03/01 Javascript
NodeJs使用Mysql模块实现事务处理实例
2017/05/31 NodeJs
JS数组求和的常用方法总结【5种方法】
2019/01/14 Javascript
Servlet返回的数据js解析2种方法
2019/12/12 Javascript
[53:20]2018DOTA2亚洲邀请赛 4.1 小组赛 A组加赛 VG vs OG
2018/04/03 DOTA
[38:32]完美世界DOTA2联赛循环赛 Forest vs DM 第二场 11.06
2020/11/06 DOTA
python进阶教程之函数参数的多种传递方法
2014/08/30 Python
使用rst2pdf实现将sphinx生成PDF
2016/06/07 Python
python实现12306火车票查询器
2017/04/20 Python
余弦相似性计算及python代码实现过程解析
2019/09/18 Python
Pytorch 计算误判率,计算准确率,计算召回率的例子
2020/01/18 Python
使用Keras实现简单线性回归模型操作
2020/06/12 Python
python实现学生信息管理系统源码
2021/02/22 Python
新百伦折扣店:Joe’s New Balance Outlet
2016/08/20 全球购物
女士鞋子、包包和服装在线,第一款10美元:ShoeDazzle
2019/07/26 全球购物
计算机本科生自荐信
2013/10/15 职场文书
竞选部长演讲稿
2014/04/26 职场文书
挂职锻炼个人总结
2015/03/05 职场文书
电影圆明园观后感
2015/06/03 职场文书
父亲去世追悼词
2015/06/23 职场文书
2015年大学生暑期实习报告
2015/07/13 职场文书
中学后勤工作总结2015
2015/07/22 职场文书
测量JavaScript函数的性能各种方式对比
2021/04/27 Javascript
gateway与spring-boot-starter-web冲突问题的解决
2021/07/16 Java/Android