用户:
炑炑吖查看:1 回复:1 评论:1 创建时间:2021-07-12T09:49:27
【作品展示】

【作品介绍】
参赛作品,希望评委大大多加点分,谢谢支持!
【作品源代码】
from turtle import Turtle, colormode, tracer, mainloop
import turtle
from random import randrange
from time import clock
from PIL import Image
screen = turtle.Screen()
x,y=800,800
screen.setup(x,y)
screen.bgpic("bgpic.gif")
print(" 奇 遇 之 旅 ")
print("-----------------------------------------------------------------")
print("想看熊猫吗?那就在键盘上按下‘p’键吧!")
print("想看小鹿吗?那就在键盘上按下‘d’键吧!")
print("看完了吗?")
print("让我们按下空格键进入长隆森林公园吧!")
def symRandom(n):
return randrange(-n,n+1)
def randomize( branchlist, angledist, sizedist ):
return [ (angle+symRandom(angledist),
sizefactor*1.01**symRandom(sizedist))
for angle, sizefactor in branchlist ]
def randomfd( t, distance, parts, angledist ):
for i in range(parts):
t.left(symRandom(angledist))
t.forward( (1.0 * distance)/parts )
def tree(tlist, size, level, widthfactor, branchlists, angledist=10, sizedist=5):
# benutzt Liste von turtles und Liste von Zweiglisten,
# fuer jede turtle eine!
if level > 0:
lst = []
brs = []
for t, branchlist in list(zip(tlist,branchlists)):
t.pensize( size * widthfactor )
t.pencolor( 255 - (180 - 11 * level + symRandom(15)),
180 - 11 * level + symRandom(15),
0 )
t.pendown()
randomfd(t, size, level, angledist )
yield 1
for angle, sizefactor in branchlist:
t.left(angle)
lst.append(t.clone())
brs.append(randomize(branchlist, angledist, sizedist))
t.right(angle)
for x in tree(lst, size*sizefactor, level-1, widthfactor, brs,
angledist, sizedist):
yield None
def start(t,x,y):
colormode(255)
t.reset()
t.speed(0)
t.hideturtle()
t.left(90)
t.penup()
t.setpos(x,y)
t.pendown()
def doit1(level, pen):
pen.hideturtle()
start(pen, 20, -208)
t = tree( [pen], 80, level, 0.1, [[ (45,0.69), (0,0.65), (-45,0.71) ]] )
return t
def doit2(level, pen):
pen.hideturtle()
start(pen, -135, -130)
t = tree( [pen], 120, level, 0.1, [[ (45,0.69), (-45,0.71) ]] )
return t
def doit3(level, pen):
pen.hideturtle()
start(pen, 190, -90)
t = tree( [pen], 100, level, 0.1, [[ (45,0.7), (0,0.72), (-45,0.65) ]] )
return t
# Hier 3 Baumgeneratoren:
def main():
screen.clear()
p = Turtle()
p.ht()
tracer(75,0)
u = doit1(6,Turtle(undobuffersize=1))
s = doit2(7, Turtle(undobuffersize=1))
t = doit3(5, Turtle(undobuffersize=1))
a = clock()
while True:
done = 0
for b in u,s,t:
try:
b.__next__()
except:
done += 1
if done == 3:
break
tracer(1,10)
b = clock()
return "runtime: %.2f sec." % (b-a)
def img(img, t, x, y):
f = Image.open(img)
t.hideturtle()
screen.register_shape(img)
t.shape(img)
t.up()
t.goto(x, y)
t.down()
img_panda = "panda2.gif"
f = Image.open(img_panda)
panda = turtle.Pen()
img(img_panda, panda, -x//2+f.width//2, -y//2+f.height//2)
img_deer = "deer.gif"
f = Image.open(img_deer)
deer = turtle.Pen()
img(img_deer, deer, x//2-f.width//2, -y//2+f.height//2)
def show(t):
t.showturtle()
def show_panda():
show(panda)
def show_deer():
show(deer)
information = "长隆野生动物世界位于广州市番禺区,是全世界动物种类最多,最大的5A级野生动物主题公园,也是来广州旅游必去的景点之一.\
园区分为自驾车游览区和步行游览区两大部分,后者位于园区东半部,以世界各地的珍稀野生动物为主要特色\
园区内的方舟剧场,大象剧场,河马剧场,花果山剧场等四大剧场剧场均位于此区中.\
它们聚集了五大洲的珍奇异兽,从空中,陆地,水上等不同的形式表演,是园区众多亮点之一."
bg2 ="长隆森林公园.gif"
f = Image.open(bg2)
def infor():
deer.hideturtle()
panda.hideturtle()
screen.bgpic(bg2)
screen.setup(f.width,f.height)
print(information)
print("最后我们一起看看长隆的树吧")
print("请按下T键")
screen.onkeypress(infor,"space")
screen.onkeypress(show_panda, "p")
screen.onkeypress(show_deer, "d")
screen.onkeypress(main, "t")
screen.listen()
if __name__ == '__main__':
# main()
mainloop()
【提示】
部分含有Python第三方库相关内容的作品,在海龟编辑器网页端无法运行哦!如遇到这种情况,可以打开下面的链接,下载海龟编辑器客户端:
https://python.codemao.cn