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判断某个用户对某个文件的权限
Oct 13 Python
Python网络爬虫项目:内容提取器的定义
Oct 25 Python
apache部署python程序出现503错误的解决方法
Jul 24 Python
Python3简单实例计算同花的概率代码
Dec 06 Python
python基础教程项目三之万能的XML
Apr 02 Python
Python Logging 日志记录入门学习
Jun 02 Python
Numpy数据类型转换astype,dtype的方法
Jun 09 Python
Python XML转Json之XML2Dict的使用方法
Jan 15 Python
python ChainMap 合并字典的实现步骤
Jun 11 Python
Python 读取用户指令和格式化打印实现解析
Sep 02 Python
使用Python给头像加上圣诞帽或圣诞老人小图标附源码
Dec 25 Python
Python进阶之迭代器与迭代器切片教程
Jan 29 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
Javascript 八进制转义字符(8进制)
2011/04/08 Javascript
JS正则表达式验证数字代码
2014/01/28 Javascript
node.js中的fs.write方法使用说明
2014/12/15 Javascript
javascript实现类似超链接的效果
2014/12/26 Javascript
jquery中checkbox全选失效的解决方法
2014/12/26 Javascript
javascript获取元素离文档各边距离的方法
2015/02/13 Javascript
javascript下使用Promise封装FileReader
2016/02/19 Javascript
js和jQuery设置Opacity半透明 兼容IE6
2016/05/24 Javascript
再谈Javascript中的异步以及如何异步
2016/08/19 Javascript
基于Jquery Ajax type的4种类型(详解)
2017/08/02 jQuery
sublime text配置node.js调试(图文教程)
2017/11/23 Javascript
微信小程序自定义底部弹出框
2020/11/16 Javascript
Vue中Quill富文本编辑器的使用教程
2018/09/21 Javascript
Bootstrap的aria-label和aria-labelledby属性实例详解
2018/11/02 Javascript
layui 阻止图片上传的实例(before方法)
2019/09/26 Javascript
[01:04:32]DOTA2-DPC中国联赛 正赛 Aster vs LBZS BO3 第二场 2月23日
2021/03/11 DOTA
简单实现python聊天程序
2018/04/01 Python
浅谈pandas筛选出表中满足另一个表所有条件的数据方法
2019/02/08 Python
python用quad、dblquad实现一维二维积分的实例详解
2019/11/20 Python
Python实现把多维数组展开成DataFrame
2019/11/30 Python
Python文字截图识别OCR工具实例解析
2020/03/05 Python
HTML5 weui使用笔记
2019/11/21 HTML / CSS
美国著名首饰网站:BaubleBar
2016/08/29 全球购物
GafasWorld西班牙:购买太阳镜、眼镜和隐形眼镜
2019/09/08 全球购物
英文简历中的自荐信范文
2013/12/14 职场文书
签约仪式主持词
2014/03/19 职场文书
大学生实习鉴定评语
2014/04/25 职场文书
春季防火方案
2014/05/10 职场文书
法人委托书
2014/07/31 职场文书
2014校长四风问题对照检查材料思想汇报
2014/09/16 职场文书
批评与自我批评总结
2014/10/17 职场文书
2015年银行工作总结范文
2015/04/01 职场文书
乡镇保密工作承诺书
2015/05/04 职场文书
2015年初一班主任工作总结
2015/05/13 职场文书
MySql子查询IN的执行和优化的实现
2021/08/02 MySQL
详细聊聊MySQL中慢SQL优化的方向
2021/08/30 MySQL