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检测QQ在线状态的方法
May 09 Python
Python合并两个字典的常用方法与效率比较
Jun 17 Python
Python实现模拟登录及表单提交的方法
Jul 25 Python
Python实现包含min函数的栈
Apr 29 Python
Python的Tornado框架的异步任务与AsyncHTTPClient
Jun 27 Python
Python设计模式之代理模式简单示例
Jan 09 Python
Python3 XML 获取雅虎天气的实现方法
Feb 01 Python
django中send_mail功能实现详解
Feb 06 Python
Python爬虫框架scrapy实现downloader_middleware设置proxy代理功能示例
Aug 04 Python
Python逐行读取文件内容的方法总结
Feb 14 Python
python实现图像拼接功能
Mar 23 Python
python smtplib发送多个email联系人的实现
Oct 09 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截取指定2个字符之间字符串的方法
2015/04/15 PHP
PHP+MySQL使用mysql_num_rows实现模糊查询图书信息功能
2018/05/31 PHP
PHP hebrev()函数用法讲解
2019/02/21 PHP
Javascript 函数中的参数使用分析
2010/03/27 Javascript
Javascript 面向对象编程(coolshell)
2012/03/18 Javascript
浅谈关于JavaScript的语言特性分析
2013/04/11 Javascript
Google官方支持的NodeJS访问API,提供后台登录授权
2014/07/29 NodeJs
jQuery实现HTML5 placeholder效果实例
2014/12/09 Javascript
jquery实现上下左右滑动的方法
2015/02/09 Javascript
详解AngularJS的通信机制
2015/06/18 Javascript
JS模拟酷狗音乐播放器收缩折叠关闭效果代码
2015/10/29 Javascript
详解Vue.js Mixins 混入使用
2017/09/15 Javascript
html中通过JS获取JSON数据并加载的方法
2017/11/30 Javascript
elementUI vue this.$confirm 和el-dialog 弹出框 移动 示例demo
2019/07/03 Javascript
js实现拾色器插件(ColorPicker)
2020/05/21 Javascript
JS实现悬浮球只在一侧滑动并且是横屏状态下
2020/08/19 Javascript
mapboxgl实现带箭头轨迹线的代码
2021/01/04 Javascript
[03:56]还原FTP电影首映式 DOTA2群星拼出遗迹世界
2014/03/26 DOTA
python 字典(dict)遍历的四种方法性能测试报告
2014/06/25 Python
Python contextlib模块使用示例
2015/02/18 Python
Python调用命令行进度条的方法
2015/05/05 Python
python如何通过实例方法名字调用方法
2018/03/21 Python
python实现合并两个排序的链表
2019/03/03 Python
Python OpenCV 调用摄像头并截图保存功能的实现代码
2019/07/02 Python
Python 实现国产SM3加密算法的示例代码
2020/09/21 Python
浅谈html5标签css3的常用样式
2016/10/20 HTML / CSS
公务员培训自我鉴定
2013/09/19 职场文书
加工操作管理制度
2014/01/19 职场文书
铁路个人事迹材料
2014/01/30 职场文书
工商企业管理应届生求职信
2014/05/04 职场文书
计生办班子群众路线教育实践活动个人对照检查材料思想汇报
2014/10/04 职场文书
工作态度检讨书范文
2015/05/06 职场文书
2016年万圣节活动总结
2016/04/05 职场文书
Keras多线程机制与flask多线程冲突的解决方案
2021/05/28 Python
python Django框架快速入门教程(后台管理)
2021/07/21 Python
Nginx安装配置详解
2022/06/25 Servers