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中的魔法方法深入理解
Jul 09 Python
python之wxPython菜单使用详解
Sep 28 Python
Python使用matplotlib实现在坐标系中画一个矩形的方法
May 20 Python
python中判断文件编码的chardet(实例讲解)
Dec 21 Python
Anaconda入门使用总结
Apr 05 Python
python 判断三个数字中的最大值实例代码
Jul 24 Python
Django Rest framework权限的详细用法
Jul 25 Python
Python range、enumerate和zip函数用法详解
Sep 11 Python
python GUI库图形界面开发之PyQt5动态加载QSS样式文件
Feb 25 Python
python输入一个水仙花数(三位数) 输出百位十位个位实例
May 03 Python
Python使用eval函数执行动态标表达式过程详解
Oct 17 Python
python的列表生成式,生成器和generator对象你了解吗
Mar 16 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获取金书网的书名的实现代码
2010/06/11 PHP
php自定义函数call_user_func和call_user_func_array详解
2011/07/14 PHP
php把字符串指定字符分割成数组的方法
2018/03/12 PHP
phpMyAdmin通过密码漏洞留后门文件
2018/11/20 PHP
js css后面所带参数含义介绍
2013/08/18 Javascript
Jquery 类网页微信二维码图块滚动效果具体实现
2013/10/14 Javascript
带有定位当前位置的百度地图前端web api实例代码
2016/06/21 Javascript
JS使用正则实现去掉字符串左右空格的方法
2016/12/27 Javascript
深入浅出webpack教程系列_安装与基本打包用法和命令参数详解
2017/09/10 Javascript
基于 Vue 实现一个酷炫的 menu插件
2017/11/14 Javascript
redux-saga 初识和使用
2018/03/10 Javascript
使用electron实现百度网盘悬浮窗口功能的示例代码
2018/10/24 Javascript
Vue $attrs &amp; inheritAttr实现button禁用效果案例
2020/12/07 Vue.js
javascript实现倒计时关闭广告
2021/02/09 Javascript
[02:23]完美世界全国高校联赛街访DOTA2第一期
2019/11/28 DOTA
[01:16:37]【全国守擂赛】第三周决赛 Dark Knight vs. 一个弱队
2020/05/04 DOTA
在Lighttpd服务器中运行Django应用的方法
2015/07/22 Python
Python实现多线程抓取妹子图
2015/08/08 Python
python实现感知器算法(批处理)
2019/01/18 Python
执行Django数据迁移时报 1091错误及解决方法
2019/10/14 Python
python实现MySQL指定表增量同步数据到clickhouse的脚本
2021/02/26 Python
mui几种页面跳转方式对比总结概括
2017/08/18 HTML / CSS
HEMA英国:荷兰原创设计
2018/08/28 全球购物
漫威玩具服装及周边商品官方购物网站:Marvel Shop
2019/05/11 全球购物
印度第一网上礼品店:IGP.com
2020/02/06 全球购物
集团公司人力资源部岗位职责
2014/01/03 职场文书
艾滋病宣传活动总结
2014/05/08 职场文书
写求职信有哪些注意事项
2014/05/08 职场文书
春季防火方案
2014/05/10 职场文书
食品质量与安全专业毕业生求职信
2014/08/11 职场文书
优秀班主任先进事迹材料
2014/12/16 职场文书
建筑技术负责人岗位职责
2015/04/13 职场文书
导游词之岳阳楼
2019/09/25 职场文书
php随机生成验证码,php随机生成数字,php随机生成数字加字母!
2021/04/01 PHP
Python scrapy爬取起点中文网小说榜单
2021/06/13 Python
Javascript使用integrity属性进行安全验证
2021/11/07 Javascript