• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    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为中秋节绘制一块美味的月饼
    • Python使用海龟绘图实现贪吃蛇游戏
    • 中秋快到了利用 python 绘制中秋礼物
    上一篇:Python使用海龟绘图实现贪吃蛇游戏
    下一篇:Python实现智慧校园自动评教全新版
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

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