贪吃蛇

作者: 小贱贱9395 | 来源:发表于2018-04-13 21:49 被阅读18次
    from random import randrange
    from freegames import square, vector
    
    food = vector(0,0)
    snake = [vector(10,0)]
    aim = vector(0,10)
    
    def change(x,y):
        "Change snake direction"
        aim.x = x
        aim.y = y
    
    def inside(head):
        "Return True if head inside boundaries"
        return -200 < head.x < 190 and -200 < head.y < 200
    
    def move():
        "Move snake forward one segment."
        head = snake[-1].copy()
        head.move(aim)
    
        if not inside(head) or head in snake:
            square(head.x, head.y, 9, 'red')
            update()
            return
    
        snake.append(head)
    
        if head == food:
            print('Snake:', len(snake))
            food.x = randrange(-15, 15) * 10
            food.y = randrange(-15, 15) * 10
        else:
            snake.pop(0)
    
        clear()
    
        for body in snake:
            square(body.x, body.y, 9, 'black')
    
        square(food.x, food.y, 9, 'green')
        update()
        ontimer(move, 300)
    
    def main():
        setup(420, 420, 370, 0)
        hideturtle()
        tracer(False)
        listen()
        onkey(lambda : change(10, 0), 'Right')
        onkey(lambda: change(-10, 0), 'Left')
        onkey(lambda: change(0, 10), 'Up')
        onkey(lambda: change(0, -10), 'Down')
        move()
        done()
    
    main()
    

    相关文章

      网友评论

          本文标题:贪吃蛇

          本文链接:https://www.haomeiwen.com/subject/waihkftx.html