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发送以整个文件夹的内容为附件的邮件的教程
May 06 Python
Python的Django框架中TEMPLATES项的设置教程
May 29 Python
python类装饰器用法实例
Jun 04 Python
Python编程实现数学运算求一元二次方程的实根算法示例
Apr 02 Python
Python分支结构(switch)操作简介
Jan 17 Python
Python with语句上下文管理器两种实现方法分析
Feb 09 Python
python调用staf自动化框架的方法
Dec 26 Python
详解pandas数据合并与重塑(pd.concat篇)
Jul 09 Python
python安装sklearn模块的方法详解
Nov 28 Python
Django haystack实现全文搜索代码示例
Nov 28 Python
分析Python list操作为什么会错误
Nov 17 Python
python中对列表的删除和添加方法详解
Feb 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
饭制《星际争霸》Mod:优化游戏机制 增加新单位
2017/07/02 星际争霸
php foreach 参数强制类型转换的问题
2010/12/10 PHP
PHP类继承 extends使用介绍
2014/01/14 PHP
Drupal7连接多个数据库及常见问题解决
2014/03/02 PHP
PHP实现的mongoDB数据库操作类完整实例
2018/04/10 PHP
PHP get_html_translation_table()函数用法讲解
2019/02/16 PHP
ASP.NET jQuery 实例13 原创jQuery文本框字符限制插件-TextArea Counter
2012/02/03 Javascript
jQuery之按钮组件的深入解析
2013/06/19 Javascript
批量实现面向对象的实例代码
2013/07/01 Javascript
javascript常用对话框小集
2013/09/13 Javascript
Node.js中使用Buffer编码、解码二进制数据详解
2014/08/16 Javascript
jQuery中prev()方法用法实例
2015/01/08 Javascript
Backbone.js中的集合详解
2015/01/14 Javascript
javascript中clipboardData对象用法详解
2015/05/13 Javascript
BootStrap创建响应式导航条实例代码
2016/05/31 Javascript
AngularJS使用指令增强标准表单元素功能
2016/07/01 Javascript
vue实现选项卡及选项卡切换效果
2018/04/24 Javascript
深入了解响应式React Native Echarts组件
2019/05/29 Javascript
JS实现商城秒杀倒计时功能(动态设置秒杀时间)
2019/12/12 Javascript
微信jssdk踩坑之签名错误invalid signature
2020/05/19 Javascript
Python利用itchat库向好友或者公众号发消息的实例
2019/02/21 Python
基于SpringBoot构造器注入循环依赖及解决方式
2020/04/26 Python
de Bijenkorf比利时官网:荷兰最知名的百货商店
2017/06/29 全球购物
HelloFresh奥地利:立即订购烹饪盒
2019/02/22 全球购物
Servlet都有哪些方法?主要作用是什么?
2014/03/04 面试题
大学生四个方面的自我评价
2013/09/19 职场文书
社区十八大感言
2014/01/19 职场文书
班组建设经验交流材料
2014/05/12 职场文书
小班教师个人总结
2015/02/05 职场文书
行政司机岗位职责
2015/04/10 职场文书
学籍证明模板
2015/06/18 职场文书
培训计划通知
2015/07/15 职场文书
农村房屋租赁合同(范本)
2019/07/23 职场文书
爱心捐款倡议书:点燃希望,传递温暖
2019/11/04 职场文书
css3 实现文字闪烁效果的三种方式示例代码
2021/04/25 HTML / CSS
java高级用法JNA强大的Memory和Pointer
2022/04/19 Java/Android