python用海龟绘图写贪吃蛇游戏


Posted in Python onJune 18, 2021

一个简单的贪吃蛇程序,供大家参考,具体内容如下

如图显示

python用海龟绘图写贪吃蛇游戏

导入海龟绘图库

from turtle import *
from random import randrange

常量设置

food_x = randrange(-20, 20) * 20
food_y = randrange(-20, 20) * 20
snack = [[0, 0], [20, 0], [40, 0], [40, 20]]
dir_x = 20
dir_y = 0

主函数

if __name__ == '__main__':
    # 设置主窗口的大小和位置
    # width,height,startx,starty(初始位置距离屏幕左边和右边多少,默认中间)
    setup(800, 800)
    # 禁用海龟动画
    tracer(False)
    loop_view()
    listen()
    onkey(lambda: control(0, 20), "w")
    onkey(lambda: control(0, -20), "s")
    onkey(lambda: control(-20, 0), "a")
    onkey(lambda: control(20, 0), "d")
    # 开始事件循环
    # 调用 Tkinter 的 mainloop 函数
    # 必须作为一个海龟绘图程序的结束语句
    done()

画正方形

def draw_square(x, y, size, color_name):
    '''
    画正方形
    :param x 表示在画布的x位置
    :param y 表示画布的y位置
    :param size 表示正方形的长度
    :param color_name 表示正方形的颜色
    :return
    '''

    # 画笔抬起,移动的时候不画线
    up()
    # 是海龟不可见
    ht()
    # 将海龟移动到这个位置
    goto(x, y)

    # 画笔落下 -- 移动时将画线
    down()
    color("red", color_name)
    begin_fill()
    forward(size)
    left(90)
    forward(size)
    left(90)
    forward(size)
    left(90)
    forward(size)
    left(90)
    end_fill()

    pass

在画布上画食物和蛇

def loop_view():
    '''
    循环界面
    '''
    global food_x, food_y
    if not is_zhangqiang():
        return

    snack.append([snack[-1][0] + dir_x, snack[-1][1] + dir_y])
    if snack[-1][0] != food_x or snack[-1][1] != food_y:
        snack.pop(0)
    else:
        food_x = randrange(-20, 20) * 20
        food_y = randrange(-20, 20) * 20
    clear()
    # 画食物
    draw_square(food_x, food_y, 20, "red")
    # 画蛇
    for s in range(len(snack)):
        if s == len(snack) - 1:
            draw_square(snack[s][0], snack[s][1], 20, "yellow")
            continue
        draw_square(snack[s][0], snack[s][1], 20, "black")



    ontimer(loop_view, 100)
    # 执行一次 TurtleScreen 刷新。在禁用追踪时使用
    update()

控制方向

def control(x,y):
    global dir_x, dir_y
    dir_x = x
    dir_y = y

碰撞检测

def is_zhangqiang():
    if -400 <= snack[-1][0] <= 380 and -400 <= snack[-1][1] <= 380:
        return True
    else:
        return False

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python基于有道实现英汉字典功能
Jul 25 Python
python利用装饰器进行运算的实例分析
Aug 04 Python
windows系统下Python环境的搭建(Aptana Studio)
Mar 06 Python
Python实现运行其他程序的四种方式实例分析
Aug 17 Python
Django中的CBV和FBV示例介绍
Feb 25 Python
Python3 安装PyQt5及exe打包图文教程
Jan 08 Python
python 表格打印代码实例解析
Oct 12 Python
Python遍历字典方式就实例详解
Dec 28 Python
keras做CNN的训练误差loss的下降操作
Jun 22 Python
python 如何在 Matplotlib 中绘制垂直线
Apr 02 Python
python生成可执行exe控制Microsip自动填写号码并拨打功能
Jun 21 Python
python面向对象版学生信息管理系统
Jun 24 Python
Python使用海龟绘图实现贪吃蛇游戏
Jun 18 #Python
Python turtle实现贪吃蛇游戏
python中%格式表达式实例用法
Jun 18 #Python
如何用python清洗文件中的数据
Jun 18 #Python
Python中glob库实现文件名的匹配
python中的装饰器该如何使用
Jun 18 #Python
Python预测分词的实现
You might like
上传多个文件的PHP脚本
2006/11/26 PHP
析构函数与php的垃圾回收机制详解
2013/10/28 PHP
jquery的flexigrid无法显示数据提示获取到数据
2013/07/19 Javascript
JS获得浏览器版本和操作系统版本的例子
2014/05/13 Javascript
iframe中子父类窗口调用JS的方法及注意事项
2015/08/25 Javascript
jQuery Easyui实现左右布局
2016/01/26 Javascript
AngularJS入门教程之数据绑定原理详解
2016/11/02 Javascript
JS实现页面进入和返回定位到具体位置
2016/12/08 Javascript
推荐三款日期选择插件(My97DatePicker、jquery.datepicker、Mobiscroll)
2017/04/21 jQuery
vue 实现剪裁图片并上传服务器功能
2018/03/01 Javascript
js统计页面上每个标签的数量实例代码
2018/05/29 Javascript
详解element-ui中el-select的默认选择项问题
2019/08/02 Javascript
微信小程序全局变量的设置、使用、修改过程解析
2019/09/24 Javascript
js实现旋转木马轮播图效果
2020/01/10 Javascript
让mocha支持ES6模块的方法实现
2020/01/14 Javascript
基于Vue+Webpack拆分路由文件实现管理
2020/11/16 Javascript
跟老齐学Python之从格式化表达式到方法
2014/09/28 Python
python Selenium爬取内容并存储至MySQL数据库的实现代码
2017/03/16 Python
python实现12306抢票及自动邮件发送提醒付款功能
2018/03/08 Python
使用pandas把某一列的字符值转换为数字的实例
2019/01/29 Python
使用Python操作FTP实现上传和下载的方法
2019/04/01 Python
python搜索包的路径的实现方法
2019/07/19 Python
tensorflow 实现自定义梯度反向传播代码
2020/02/10 Python
Python的pygame安装教程详解
2020/02/10 Python
狗狗玩具、零食和咀嚼物的月度送货服务:Super Chewer
2018/08/22 全球购物
JYSK加拿大:购买家具、床垫、家居装饰等
2020/02/14 全球购物
俄罗斯领先的移动和数字设备在线商店:Svyaznoy.ru
2020/12/21 全球购物
计算机通信工程专业毕业生推荐信
2013/12/24 职场文书
英语自我评价范文
2014/01/24 职场文书
实习单位鉴定评语
2014/04/26 职场文书
校园文明倡议书
2014/05/16 职场文书
电话客服工作职责
2014/07/27 职场文书
反四风对照检查材料思想汇报
2014/09/16 职场文书
2015年七一建党节活动总结
2015/03/20 职场文书
2016大学生形势与政策心得体会
2016/01/12 职场文书
深入理解redis中multi与pipeline
2021/06/02 Redis