猫史档案馆


【Python作品分享】【半决赛奇遇之旅】探秘长隆野生动物园

用户:PumpkinnnnPumpkinnnn查看:0 回复:1 评论:0 创建时间:2021-08-05T22:15:36


【作品展示】

center_image

 

【作品介绍】

在原来的作品基础上增加了人工交互,通过这个功能可以让大家看到不同动物的明信片版式,以增加惊喜感

 

【作品源代码】

import turtle
import random
turtle.bgcolor("lightblue")
p=turtle.Pen()
s=turtle.Screen()
p.speed(0)
def moveto(x,y):
        p.penup()
        p.goto(x,y)
        p.pendown()
moveto(-250,300)
p.pencolor("darkblue")
p.write("欢迎来到长隆野生动物园!",font=("文泉驿正黑",50))
moveto(-450,200)


#body(train1)
p.begin_fill()
p.fillcolor("gold")
for i in range(4):
    p.right(90)
    p.forward(200)
p.end_fill()
p.begin_fill()
p.fillcolor("darkred")
p.forward(50)
p.left(150)
p.forward(180)
p.left(60)
p.forward(180)
p.left(150)
p.forward(80)
p.end_fill()
#part1
p.penup()
p.right(90)
p.forward(15)
p.pendown()
p.begin_fill()
p.fillcolor("skyblue")
p.forward(80)
p.left(90)
p.forward(50)
p.left(90)
p.forward(80)
p.left(90)
p.forward(50)
#part2
p.penup()
p.right(180)
p.forward(100)
p.pendown()
p.right(90)
p.forward(80)
p.left(90)
p.forward(50)
p.left(90)
p.forward(80)
p.left(90)
p.forward(50)
p.end_fill()
#wheels
p.penup()
p.left(90)
p.forward(255)
p.left(90)
p.forward(30)
p.pendown()
p.begin_fill()
p.fillcolor("black")
p.circle(35)
p.end_fill()
p.begin_fill()
p.fillcolor("white")
p.penup()
p.left(90)
p.forward(18)
p.right(90)
p.pendown()
p.circle(15)
p.end_fill()
p.penup()
p.backward(90)
p.right(90)
p.forward(18)
p.left(90)
p.pendown()
p.begin_fill()
p.fillcolor("black")
p.circle(35)
p.end_fill()
p.penup()
p.left(90)
p.forward(18)
p.right(90)
p.pendown()
p.begin_fill()
p.fillcolor("white")
p.circle(15)
p.end_fill()

moveto(-450,80)
p.goto(600,-130)

#body(train2)
p.begin_fill()
p.fillcolor("gold")
for i in range(4):
    p.right(90)
    p.forward(200)
p.end_fill()
p.begin_fill()
p.fillcolor("darkred")
p.forward(50)
p.left(150)
p.forward(180)
p.left(60)
p.forward(180)
p.left(150)
p.forward(80)
p.end_fill()
#part1
p.penup()
p.right(90)
p.forward(15)
p.pendown()
p.begin_fill()
p.fillcolor("skyblue")
p.forward(80)
p.left(90)
p.forward(50)
p.left(90)
p.forward(80)
p.left(90)
p.forward(50)
#part2
p.penup()
p.right(180)
p.forward(100)
p.pendown()
p.right(90)
p.forward(80)
p.left(90)
p.forward(50)
p.left(90)
p.forward(80)
p.left(90)
p.forward(50)
p.end_fill()
#wheels
p.penup()
p.left(90)
p.forward(255)
p.left(90)
p.forward(30)
p.pendown()
p.begin_fill()
p.fillcolor("black")
p.circle(35)
p.end_fill()
p.begin_fill()
p.fillcolor("white")
p.penup()
p.left(90)
p.forward(18)
p.right(90)
p.pendown()
p.circle(15)
p.end_fill()
p.penup()
p.backward(90)
p.right(90)
p.forward(18)
p.left(90)
p.pendown()
p.begin_fill()
p.fillcolor("black")
p.circle(35)
p.end_fill()
p.penup()
p.left(90)
p.forward(18)
p.right(90)
p.pendown()
p.begin_fill()
p.fillcolor("white")
p.circle(15)
p.end_fill()
#panda(head)
p.pencolor("black")
p.penup()
p.goto(-550,-160)
p.pendown()
p.dot(40)
p.penup()
p.goto(-480, -130)
p.pendown()
p.dot(40)
p.penup()
p.goto(-500, -180)
p.pendown()
p.pencolor("white")
p.dot(100)
#panda(eyes)
p.pencolor("black")
p.penup()
p.goto(-520,-180)
p.pendown()
p.dot(35)
p.penup()
p.goto(-484,-1喵)
p.pendown()
p.dot(35)
p.pencolor("white")
p.penup()
p.goto(-488, -168)
p.pendown()
p.dot(10)
p.penup()
p.goto(-514,-180)
p.pendown()
p.dot(10)
p.pencolor("black")
p.penup()
p.goto(-450,-180)
p.pendown()
p.pensize(10)
p.forward(800)
p.right(90)
p.forward(180)
p.right(90)
p.forward(1050)
p.right(90)
p.forward(180)
p.right(90)
p.forward(148)

moveto(-650,-220)
p.write("大熊猫(学名:Ailuropoda melanoleuca):属于食肉目、熊科、大熊猫亚科和大熊猫属唯一的哺乳动物。", 
        font=("文泉驿正黑", 20))

moveto(-650,-250)
p.write("仅有二个亚种。雄性个体稍大于雌性。体型肥硕似熊、丰腴富态,头圆尾短,头躯长1.2-1.8米,尾长10-",
        font=("文泉驿正黑", 20))

moveto(-650, -280)
p.write("12厘米。体重80-120千克,最重可达180千克,体色为黑白两色,脸颊圆,有很大的黑眼圈,标志性的",
        font=("文泉驿正黑", 20))

moveto(-650, -310)
p.write("内八字的行走方式,也有解剖刀般锋利的爪子。大熊猫皮肤厚,最厚处可达10毫米。黑白相间的外表,喵,
        font=("文泉驿正黑", 20))

moveto(-650, -340)
p.write("利于隐蔽在密林的树上和积雪的地面而不易被天敌发现。",
        font=("文泉驿正黑", 20))

p.pencolor("lightpink")
moveto(-430, 50)
p.goto(330,-110)
p.left(90)
p.back(50)
p.right(90)
p.back(760)
p.left(90)
p.forward(205)
p.right(90)
#koala(face)

moveto(0,0)

p.pencolor("gray")
p.dot(200)
p.pencolor("black")
p.pu()
p.backward(40)
p.pd()
p.dot(20)
p.pencolor("white")
p.pu()
p.backward(5)
p.pd()
p.dot(5)
p.pu()
p.forward(100)
p.pd()
p.pencolor("black")
p.dot(20)
p.pu()
p.backward(5)
p.pd()
p.pencolor("white")
p.dot(5)
#koala(mouth)
p.pencolor("black")
p.penup()
p.goto(-10, -50)
p.pensize(1)
p.fillcolor("black")
p.setheading(-90)
p.pendown()
p.begin_fill()
p.circle(15, 180)
for i in range(10):
    p.forward(3)
    p.left(7)
p.left(20)
p.backward(2)
p.left(20)
for i in range(10):
    p.forward(3)
    p.left(7)
p.end_fill()
#koala(ears)
p.pu()
p.back(100)
p.left(90)
p.back(70)
p.pd()
p.pencolor("gray")
p.dot(110)
p.pu()
p.forward(175)
p.pendown()
p.dot(105)

p.penup()
p.goto(-420,10)
p.pendown()
p.pencolor("black")
p.write("树袋熊",
        font=("文泉驿正黑", 20))
p.penup()
p.goto(-420, -20)
p.pendown()
p.write("(学名:Phascolarctos cinereus)",
        font=("文泉驿正黑", 20))
p.penup()
p.goto(-420, -50)
p.write("是树袋熊科、树袋熊属动物,体形肥胖,",
        font=("文泉驿正黑", 20))
p.penup()
p.goto(-411, -80)
p.write("毛又乱又厚,没有尾巴。成年树袋熊体长约70-80厘米,",
        font=("文泉驿正黑", 20))
p.penup()
p.goto(-420, -110)
p.write("体重10千克左右,身体为浅灰色到浅黄色,腹部周围的颜色相对较亮,",
        font=("文泉驿正黑", 20))
p.penup()
p.goto(-420, -140)
p.pd()
p.write("鼻子光秃秃的,大而圆,脑袋圆滚滚的,耳朵上的毛十分蓬松,善于攀缘。",
        font=("文泉驿正黑", 20))

moveto(500,300)
p.pensize(10)
p.forward(150)
p.left(135)
p.forward(10)
moveto(650,300)
p.right(135)
p.right(135)
p.forward(10)
p.left(135)
moveto(670,300)
p.write("E",
        font=("文泉驿正黑", 50))
moveto(575, 300)
p.left(90)
p.forward(75)
p.left(135)
p.forward(10)
moveto(575,375)
p.right(135)
p.right(135)
p.forward(10)
p.left(135)
moveto(595,345)
p.write("N",
        font=("文泉驿正黑", 50))
moveto(575, 375)
p.back(150)

p.pensize(5)
p.pencolor("darkgreen")
moveto(400,40)
p.forward(90)
p.left(90)
p.forward(700)
p.right(90)
p.forward(160)
p.right(90)
p.forward(80)
moveto(420,40)
p.goto(420,140)
p.goto(-280,140)
p.goto(-280,280)
p.goto(-220,280)
moveto(380,0)
p.write("南门",
        font=("文泉驿正黑", 30))
moveto(-200,280)
p.pencolor("red")
p.begin_fill()
p.fillcolor("red")
for i in range(5):
        p.forward(30)
        p.right(150)
p.end_fill()
p.left(30)
moveto(-200,240)
p.pencolor("cornflowerblue")
p.begin_fill()
p.fillcolor("cornflowerblue")
p.forward(100)
p.right(60)
p.forward(30)
p.right(60)
p.forward(30)
p.left(120)
p.back(100)
p.left(90)
p.forward(50)
p.end_fill()
moveto(-195,200)
p.pencolor("darkblue")
p.write("长隆大熊猫",
        font=("文泉驿正黑", 20))
moveto(20,300)
p.pencolor("cornflowerblue")
p.begin_fill()
p.fillcolor("cornflowerblue")
p.back(50)
p.right(90)
p.back(100)
p.left(120)
p.forward(30)
p.right(60)
p.forward(30)
p.right(60)
p.forward(100)
p.end_fill()
moveto(-55,265)
p.pencolor("darkblue")
p.write("考拉园",
        font=("文泉驿正黑", 20))
moveto(50,220)
p.pencolor("cornflowerblue")
p.begin_fill()
p.fillcolor("cornflowerblue")
p.forward(100)
p.right(60)
p.forward(30)
p.right(60)
p.forward(30)
p.left(120)
p.back(100)
p.left(90)
p.forward(50)
p.end_fill()
moveto(60, 180)
p.pencolor("darkblue")
p.write("非洲部落",
        font=("文泉驿正黑", 20))

p.right(90)
moveto(600,80)
p.pencolor("darkgreen")
p.pensize(10)
p.left(90)
p.backward(170)
p.goto(600, 80)
p.right(90)
p.pencolor("coral")
p.pensize(3)
def 喵():
    for i in range(4):
        p.forward(20)
        p.left(90)
    for i in range(4):
        p.forward(50)
        p.left(90)
    for i in range(4):
        p.forward(60)
        p.left(90)
for i in range(45):
    p.left(360/45)
    喵()



p.pencolor("darkgreen")
p.pensize(10)
p.left(90)
p.penup()
p.back(130)
p.pd()
p.goto(540, 60)
p.right(90)
p.pencolor("gold")
p.pensize(3)


def 喵():
    for i in range(4):
        p.forward(3)
        p.left(90)
    for i in range(4):
        p.forward(15)
        p.left(90)
    for i in range(4):
        p.forward(35)
        p.left(90)


for i in range(30):
    p.left(360/30)
    喵()
p.hideturtle()

content=s.textinput("选择想查看的动物明信片","熊猫or考拉")
if content=="熊猫":
        p.clear()
        turtle.bgcolor("white")
        turtle.title("熊猫宝宝")
        turtle.shape("classic")
        p.pensize(3)
        p.pencolor("black")
        p.fillcolor("black")
        turtle.speed(100)
        p.hideturtle()
        #左耳
        p.penup()
        p.goto(-105, 97)
        p.setheading(160)
        p.begin_fill()
        p.pendown()
        p.circle(-30, 230)
        p.setheading(180)
        p.circle(37, 90)
        p.end_fill()
        #右耳
        p.penup()
        p.goto(105, 97)
        p.setheading(20)
        p.begin_fill()
        p.pendown()
        p.circle(30, 230)
        p.setheading(0)
        p.circle(-37, 90)
        p.end_fill()
        #头部轮廓
        p.penup()
        p.goto(-67, 140)
        p.setheading(30)
        p.pendown()
        p.circle(-134, 60)

        p.penup()
        p.goto(-50, -25)
        p.setheading(180)
        p.pendown()
        p.circle(-100, 30)
        p.circle(-30, 90)
        p.setheading(100)
        p.circle(-200, 20)

        p.penup()
        p.goto(50, -25)
        p.setheading(0)
        p.pendown()
        p.circle(100, 30)
        p.circle(30, 90)
        p.setheading(80)
        p.circle(200, 20)

        #两熊猫眼
        #左眼
        p.penup()
        p.goto(-90, 25)
        p.setheading(-45)
        p.begin_fill()
        p.pendown()
        #椭圆绘制技巧
        a = 0.2
        for i in range(120):
                if 0 <= i < 30 or 60 <= i < 90:
                        a = a+0.1
                        p.lt(3)  # 向左转3度
                        p.fd(a)  # 向前走a的步长
                else:
                        a = a-0.1
                        p.lt(3)
                        p.fd(a)
        p.end_fill()

        p.fillcolor("white")
        p.penup()
        p.goto(-53, 43)
        p.setheading(0)
        p.begin_fill()
        p.pendown()
        p.circle(13, 360)
        p.end_fill()

        p.penup()
        p.pensize(4)
        p.goto(-60, 57)
        p.setheading(30)
        p.pendown()
        p.circle(-12, 60)
        #右眼
        p.penup()
        p.goto(90, 25)
        p.setheading(45)
        p.pensize(2)
        p.fillcolor("black")
        p.begin_fill()
        p.pendown()
        #椭圆绘制技巧
        a = 0.2
        for i in range(120):
                if 0 <= i < 30 or 60 <= i < 90:
                        a = a+0.1
                        p.lt(3)  # 向左转3度
                        p.fd(a)  # 向前走a的步长
                else:
                        a = a-0.1
                        p.lt(3)
                        p.fd(a)
        p.end_fill()

        turtle.fillcolor("white")
        turtle.penup()
        turtle.goto(53, 43)
        turtle.setheading(0)
        turtle.begin_fill()
        turtle.pendown()
        turtle.circle(13, 360)
        turtle.end_fill()

        turtle.penup()
        turtle.pensize(4)
        turtle.goto(60, 57)
        turtle.setheading(150)
        turtle.pendown()
        turtle.circle(12,60)
        #鼻子和嘴巴
        turtle.penup()
        turtle.goto(-16, 20)
        turtle.setheading(-90)
        turtle.fillcolor("black")
        turtle.begin_fill()
        turtle.pendown()
        a = 0.2
        for i in range(120):
                if 0 <= i < 30 or 60 <= i < 90:
                        a = a + 0.03
                        turtle.lt(3)
                        turtle.fd(a)
                else:
                        a = a - 0.03
                        turtle.lt(3)
                        turtle.fd(a)
        turtle.end_fill()

        turtle.penup()
        turtle.goto(-24, 0)
        turtle.setheading(-60)
        turtle.pendown()
        turtle.circle(28, 120)

        #熊喵
        #左肢
        turtle.penup()
        turtle.goto(-65, -24)
        turtle.setheading(-140)
        turtle.begin_fill()
        turtle.pendown()
        turtle.circle(100, 40)
        turtle.setheading(180)
        turtle.circle(30, 40)
        turtle.setheading(-40)
        turtle.circle(40, 40)
        turtle.setheading(-150)
        a = 0.5
        for i in range(120):
                if 0 <= i < 30 or 60 <= i < 90:
                        a = a+0.05
                        turtle.lt(3)  
                        turtle.fd(a)  
                elif 30 <= i < 60 or 90 <= i < 100:
                        a = a-0.05
                        turtle.lt(3)
                        turtle.fd(a)
        turtle.setheading(93)
        turtle.circle(-150, 30)
        turtle.end_fill()

        turtle.penup()
        turtle.goto(-85, -115)
        turtle.setheading(-150)
        turtle.color("gray", "gray")
        turtle.begin_fill()
        turtle.pendown()
        a = 0.3
        for i in range(120):
                if 0 <= i < 30 or 60 <= i < 90:
                        a = a+0.03
                        turtle.lt(3)  
                        turtle.fd(a)  
                else:
                        a = a-0.03
                        turtle.lt(3)
                        turtle.fd(a)
        turtle.end_fill()
        #每个脚趾绘制函数


        def toe(x, y):
                turtle.begin_fill()
                turtle.goto(x, y)
                turtle.circle(3, 360)
                turtle.end_fill()


        turtle.penup()
        toe(-98, -120)
        toe(-96, -110)
        toe(-88, -105)
        toe(-80, -105)

        #右肢
        turtle.color("black")
        turtle.penup()
        turtle.goto(65, -24)
        turtle.setheading(-40)
        turtle.begin_fill()
        turtle.pendown()
        turtle.circle(-100, 40)
        turtle.setheading(0)
        turtle.circle(-30, 40)
        turtle.setheading(-140)
        turtle.circle(-40, 40)
        turtle.setheading(-30)
        a = 0.5
        for i in range(120):
                if 0 <= i < 30 or 60 <= i < 90:
                        a = a+0.05
                        turtle.rt(3)  
                        turtle.fd(a)  
                elif 30 <= i < 60 or 90 <= i < 100:
                        a = a-0.05
                        turtle.rt(3)
                        turtle.fd(a)
        turtle.setheading(87)
        turtle.circle(150, 30)
        turtle.end_fill()

        turtle.penup()
        turtle.goto(85, -115)
        turtle.setheading(150)
        turtle.color("gray", "gray")
        turtle.begin_fill()
        turtle.pendown()
        a = 0.3
        for i in range(120):
                if 0 <= i < 30 or 60 <= i < 90:
                        a = a+0.03
                        turtle.lt(3)  
                        turtle.fd(a)  
                else:
                        a = a-0.03
                        turtle.lt(3)
                        turtle.fd(a)
        turtle.end_fill()

        turtle.penup()
        toe(98, -120)
        toe(96, -110)
        toe(88, -105)
        toe(80, -105)

        turtle.goto(-57, -140)
        turtle.color("black")
        turtle.setheading(-20)
        turtle.pendown()
        turtle.circle(165, 40)

        turtle.penup()
        turtle.goto(0, 180)
        turtle.write("Pandas are the most lovely animals",
                align="center", font=("Times", 18, "bold"))
        turtle.pendown()
        turtle.hideturtle()
        turtle.done()
if content == "考拉":
        p.clear()
        def tree(x, y):
                p.penup()
                p.goto(x,y)
                p.pendown()
                p.pensize(25)
                p.pencolor("brown")
                p.left(90)
                p.backward(200)
                p.forward(200)
                p.begin_fill()
                p.fillcolor("darkgreen")
                p.pencolor("darkgreen")
                p.pensize(2)
                p.right(90)
                p.forward(100)
                p.left(135)
                p.forward(130)
                p.right(135)
                p.forward(80)
                p.left(135)
                p.forward(110)
                p.right(135)
                p.forward(50)
                p.left(135)
                p.forward(90)
                p.left(90)
                p.forward(90)
                p.right(45)
                p.back(50)
                p.left(45)
                p.forward(110)
                p.right(45)
                p.back(80)
                p.left(45)
                p.forward(130)
                p.right(45)
                p.back(100)
                p.end_fill()
        tree(0,0)
        tree(100,0)
        tree(200,0)
        tree(300,0)
        p.penup()
        p.goto(-200,-50)
        p.pendown()
        p.write("Koalas like eating leaves best",
                     align="center", font=("Times", 18, "bold"))
        p.hideturtle()
        turtle.done()

 

【提示】

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

https://python.codemao.cn


回复

上一页1 页 / 共 1下一页
梓小沐梓小沐

emotion_编程猫_点赞

点赞0


评论