python初学,贪吃蛇完整代码记录

跟着B站up主做的,权当是仓库记录一下,效果直接粘贴跑下就好了

import turtle
from random import randrange
snake = [[0,0],[0,10],[0,20]]
aim = [0,10]
food = [-10,0]

def change_direction(x,y):
    aim[0] = x
    aim[1] = y

def square(x,y,size,color):
    turtle.penup()
    turtle.goto(x,y)
    turtle.pendown()
    turtle.color(color)
    turtle.begin_fill()
    for i in range(4):
        turtle.forward(size)
        turtle.left(90)
        turtle.end_fill()
def inside(head):
    return -250<head[0]<250 and -250<head[1]<250

import copy
def snake_move():
    head = copy.deepcopy(snake[-1])
    head = [head[0]+aim[0],head[1]+aim[1]]

    print("snake的长度", len(snake))
    if head in snake or not inside(head):
        print("game over")
        square(head[0],head[1],10,"red")
        return
    if head == food:
        food[0] = randrange(-15,15)*10
        food[1] = randrange(-15,15)*10
    else:
        snake.pop(0)
    snake.append(head)
    turtle.clear()
    square(food[0],food[1],10,"green")
    for body in snake:
       square(body[0],body[1],10,"black")
    turtle.update()
    turtle.ontimer(snake_move,200)

turtle.setup(500,500)
turtle.tracer(False)
turtle.hideturtle()
turtle.listen()
turtle.onkey(lambda :change_direction(0,10),"Up")
turtle.onkey(lambda :change_direction(0,-10),"Down")
turtle.onkey(lambda :change_direction(10,0),"Right")
turtle.onkey(lambda :change_direction(-10,0),"Left")
snake_move()
turtle.done()
上一篇:《Python海龟宝典》简介


下一篇:Python 程序基本格式