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编写简单的画图板程序的示例教程
Dec 08 Python
Python中的字符串替换操作示例
Jun 27 Python
python实现快速排序的示例(二分法思想)
Mar 12 Python
python bmp转换为jpg 并删除原图的方法
Oct 25 Python
修改默认的pip版本为对应python2.7的方法
Nov 06 Python
在python中利用最小二乘拟合二次抛物线函数的方法
Dec 29 Python
Python求离散序列导数的示例
Jul 10 Python
Python urlencode和unquote函数使用实例解析
Mar 31 Python
python中的socket实现ftp客户端和服务器收发文件及md5加密文件
Apr 01 Python
python matplotlib.pyplot.plot()参数用法
Apr 14 Python
详解Python中第三方库Faker
Sep 25 Python
python实现计算器简易版
Dec 17 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
数据库相关问题
2006/10/09 PHP
PHP下用rmdir实现删除目录的三种方法小结
2008/04/20 PHP
浅析使用Turck-mmcache编译来加速、优化PHP代码
2013/06/20 PHP
PHP5.3新特性小结
2016/02/14 PHP
100行PHP代码实现socks5代理服务器
2016/04/28 PHP
PHP实现的简单适配器模式示例
2017/06/22 PHP
IE不出现Flash激活框的小发现的js实现方法
2007/09/07 Javascript
摘自启点的main.js
2008/04/20 Javascript
让你的网站可编辑的实现js代码
2009/10/19 Javascript
chrome原生方法之数组
2011/11/30 Javascript
图片翻转效果具体实现代码
2014/01/09 Javascript
javascript获取四位数字或者字母的随机数
2015/01/09 Javascript
JavaScript数组随机排列实现随机洗牌功能
2015/03/19 Javascript
JS基于面向对象实现的选项卡效果示例
2016/12/20 Javascript
Vue组件模板形式实现对象数组数据循环为树形结构(实例代码)
2017/07/31 Javascript
JQuery判断正整数整理小结
2017/08/21 jQuery
基于openlayers4实现点的扩散效果
2020/08/17 Javascript
详解给Vue2路由导航钩子和axios拦截器做个封装
2018/04/10 Javascript
React props和state属性的具体使用方法
2018/04/12 Javascript
超简单的微信小程序轮播图
2019/11/22 Javascript
vue实现虚拟列表功能的代码
2020/07/28 Javascript
JS常用跨域方法实现原理解析
2020/12/09 Javascript
[01:17]Ti4 循环赛第一日回顾
2014/07/11 DOTA
python通过exifread模块获得图片exif信息的方法
2015/03/16 Python
python optparse模块使用实例
2015/04/09 Python
Python入门_浅谈字符串的分片与索引、字符串的方法
2017/05/16 Python
node.js获取参数的常用方法(总结)
2017/05/29 Python
Python判断字符串是否为字母或者数字(浮点数)的多种方法
2018/08/03 Python
tensor和numpy的互相转换的实现示例
2019/08/02 Python
Python列表list常用内建函数实例小结
2019/10/22 Python
Django连接数据库并实现读写分离过程解析
2019/11/13 Python
Python使用pdb调试代码的技巧
2020/05/03 Python
python3.6中anaconda安装sklearn踩坑实录
2020/07/28 Python
详解scrapy内置中间件的顺序
2020/09/28 Python
屈臣氏官方旗舰店:亚洲享负盛名的保健及美妆零售商
2019/03/15 全球购物
CSS 实现Chrome标签栏的技巧
2021/08/04 HTML / CSS