您当前的位置:首页 > IT编程 > python
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:python用海龟绘图写贪吃蛇游戏

51自学网 2021-10-30 22:27:32
  python
这篇教程python用海龟绘图写贪吃蛇游戏写得很实用,希望能帮到您。

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

如图显示

导入海龟绘图库

from turtle import *from random import randrange

常量设置

food_x = randrange(-20, 20) * 20food_y = randrange(-20, 20) * 20snack = [[0, 0], [20, 0], [40, 0], [40, 20]]dir_x = 20dir_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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持51zixue.net。


Python使用海龟绘图实现贪吃蛇游戏
Python实现智慧校园自动评教全新版
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。