猫史档案馆


【Python作品分享】Snake【作品秀】

用户:光影炫光影炫查看:0 回复:0 评论:0 创建时间:2021-09-01T21:40:04


【作品展示】

center_image

 

【作品介绍】

Snake'

 

【作品源代码】

import turtle
import easygui
import random
import time

apple_list=[]
Score=0
speed=0.2

def set_screen(width,height,color,title):
    global ms,player
    ms=turtle.Screen()
    ms.bgcolor(color)
    ms.setup(width,height)
    ms.title(title)
    player=True
def set_map():
    row=-305
    col=305
    drawer=turtle.Pen()
    drawer.pencolor('gray')
    drawer.hideturtle()
    drawer.speed(0)
    drawer.penup()
    drawer.goto(row,col)
    drawer.setheading(270)
    for i in range(62):
        drawer.pendown()
        drawer.forward(1000)
        row+=10
        drawer.penup()
        drawer.goto(row,col)
    row=-305
    col=305
    drawer.setheading(0)
    for i in range(62):
        drawer.pendown()
        drawer.forward(1000)
        col-=10
        drawer.penup()
        drawer.goto(row,col)
if True:
    def __main__():
        main='__main__'
        if main=='__main__':
            pass
def Snake():
    global snake,body
    snake=turtle.Pen()
    snake.shape('喵')
    snake.shapesize(0.5)
    snake.penup()
    snake.speed(0)
    body=[]
def new():
    new_body=turtle.Pen()
    new_body.penup()
    new_body.speed(0)
    new_body.goto(snake.xcor(),snake.ycor())
    new_body.shapesize(0.5)
    new_body.shape('喵')
    body.append(new_body)
def run():
    snake.forward(10)

def top():
    snake.setheading(90)
def bottom():
    snake.setheading(270)
def left():
    snake.setheading(180)
def right():
    snake.setheading(0)
def apple():
    global a
    xc=-290+10*random.randint(0,58)
    yc=-290+10*random.randint(0,58)
    a=turtle.Pen()
    a.speed(0)
    a.shape('喵')
    a.penup()
    a.color('red')
    a.goto(xc,yc)
    a.shapesize(0.5)
    apple_list.append(a)
def set_body_color(color):
    body[len(body)-1].color(color)
def set_two_color():
    body[len(body)-1].pencolor(lst[0])
    body[len(body)-1].fillcolor(lst[1])

set_screen(600,600,'snow','Snake')
helps=easygui.ynbox('是否绘制地图辅助线?','贪吃蛇3.0',('绘制', '不绘制'))
if helps==True:
    set_map()
Snake()
apple()
color=ms.textinput('Snake','贪吃蛇的颜色(英文)')
lst=color.split(',')
if color=='':
    color='black'

ms.listen()
ms.onkeypress(top,'Up')
ms.onkeypress(bottom,'Down')
ms.onkeypress(left,'Left')
ms.onkeypress(right,'Right')
for i in range(3):
    time.sleep(0.05)
    run()
    new()
while True:
    if snake.xcor()>=300 or snake.xcor()<=-300 or snake.ycor()>=300 or snake.ycor()<=-300: #蛇碰到边缘游戏结束
        easygui.msgbox(f'贪吃蛇撞墙而喵!\n \n你的得分:{Score}\n \n点击[好的]键退出', 'Snake', '好的')
        turtle.done()
    time.sleep(0.005)
    run()
    for i in body:
        if snake.distance(i)<=5:
            easygui.msgbox(f'贪吃蛇咬到了自己!\n \n你的得分:{Score}\n \n点击[好的]键退出','Snake','好的')
            turtle.done()
    if len(lst)==1:
        set_body_color(color)
    elif len(lst)==2:
        set_two_color()
    else:
        set_body_color(random.choice(lst))
    for i in apple_list:
        if not snake.distance(i)<=5:
            body[0].hideturtle()
            body.pop(0)
        else:
            i.hideturtle()
            apple_list.remove(i)
            apple()
            Score+=1
            if speed>0.01:
                speed-=0.01
    new()
__main__()

 

【提示】

部分含有Python第三方库相关内容的作品,在海龟编辑器网页端无法运行哦!如遇到这种情况,可以打开下面的链接,下载海龟编辑器客户端:

https://python.codemao.cn


回复

上一页1 页 / 共 0下一页