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中PIL安装简单教程
Apr 21 Python
python3.4用函数操作mysql5.7数据库
Jun 23 Python
Python入门之三角函数atan2()函数详解
Nov 08 Python
简单实现python收发邮件功能
Jan 05 Python
Python  unittest单元测试框架的使用
Sep 08 Python
python 批量解压压缩文件的实例代码
Jun 27 Python
docker-py 用Python调用Docker接口的方法
Aug 30 Python
softmax及python实现过程解析
Sep 30 Python
Python 一行代码能实现丧心病狂的功能
Jan 18 Python
给 TensorFlow 变量进行赋值的方式
Feb 10 Python
全网最细 Python 格式化输出用法讲解(推荐)
Jan 18 Python
Django使用echarts进行可视化展示的实践
Jun 10 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 文件上传功能实现代码
2009/06/24 PHP
PHP资源管理框架Assetic简介
2014/06/12 PHP
PHP提示Deprecated: mysql_connect(): The mysql extension is deprecated的解决方法
2014/08/28 PHP
PHP 实现类似js中alert() 提示框
2015/03/18 PHP
Javascript客户端脚本的设计和应用
2006/08/21 Javascript
ExtJS Grid使用SimpleStore、多选框的方法
2009/11/20 Javascript
JS倒计时代码汇总
2014/11/25 Javascript
jQuery实现的简单提示信息插件
2015/12/08 Javascript
JavaScript动态插入CSS的方法
2015/12/10 Javascript
jQuery内容折叠效果插件用法实例分析(附demo源码)
2016/04/28 Javascript
多种jQuery绑定事件的实现方式
2016/06/13 Javascript
js操作XML文件的实现方法兼容IE与FireFox
2016/06/25 Javascript
JavaScript定时器制作弹窗小广告
2017/02/05 Javascript
vue组件间通信解析
2017/03/01 Javascript
微信小程序 websocket 实现SpringMVC+Spring+Mybatis
2017/08/04 Javascript
Grunt针对静态文件的压缩,版本控制打包的实例讲解
2017/09/29 Javascript
vue-router项目实战总结篇
2018/02/11 Javascript
Vue2.0 实现单选互斥的方法
2018/04/13 Javascript
node+express框架中连接使用mysql(经验总结)
2018/11/10 Javascript
在Vue中用canvas实现二维码和图片合成海报的方法
2019/06/10 Javascript
[03:10]超级美酒第四天 fy拉比克秀 大合集
2018/06/05 DOTA
[51:52]Liquid vs Secret 2019国际邀请赛淘汰赛 败者组 BO3 第二场 8.24
2019/09/10 DOTA
Python中的ceil()方法使用教程
2015/05/14 Python
Python批量重命名同一文件夹下文件的方法
2015/05/25 Python
Python基于numpy灵活定义神经网络结构的方法
2017/08/19 Python
python面试题小结附答案实例代码
2019/04/11 Python
python ChainMap 合并字典的实现步骤
2019/06/11 Python
python3.4 将16进制转成字符串的实例
2019/06/12 Python
浅谈ROC曲线的最佳阈值如何选取
2020/02/28 Python
Jupyter notebook无法导入第三方模块的解决方式
2020/04/15 Python
应届毕业生简历自我评价
2014/01/31 职场文书
卖房协议书样本
2014/10/30 职场文书
世界红十字日活动总结
2015/02/10 职场文书
汽车销售助理岗位职责
2015/04/14 职场文书
区域销售大会开幕词
2016/03/04 职场文书
dubbo集成zipkin获取Traceid的实现
2021/07/26 Java/Android