猫史档案馆


【Python作品分享】【120强进36】美妙太空 —— 张斐梵

用户:成熟的炸弹人Honq成熟的炸弹人Honq查看:0 回复:1 评论:0 创建时间:2021-05-16T19:41:37


【作品展示】

center_image

 

【作品介绍】

这是我的复赛作品:美妙太空。代码结合easygui、turtle和random库,用问题弹窗和画布展现了宇宙的美。希望大家喜欢!

 

【作品源代码】

import turtle,easygui,random,time
p = turtle.Pen()
s = turtle.Screen()
choice_color = ['red','deepskyblue','yellow','white']
p.speed(0)
p.hideturtle()
turtle.bgcolor('black')
def draw_solar_board(penname):
    penname.begin_fill()
    for i in range(2):
        penname.forward(60)
        penname.left(90)
        penname.forward(50)
        penname.left(90)
    penname.end_fill()
def draw_satellite(penname, x, y):
    penname.pencolor('gray')
    penname.penup()
    penname.goto(x, y)
    penname.pendown()
    penname.pensize(10)
    penname.forward(60)
    penname.backward(55)
    penname.pensize(3)
    penname.pencolor('cornflowerblue')
    penname.penup()
    penname.right(90)
    penname.forward(10)
    penname.pendown()
    draw_solar_board(penname)
    penname.penup()
    penname.backward(80)
    penname.pendown()
    draw_solar_board(penname)
    penname.left(90)

easygui.msgbox('回答以下单选题,如果答案正确,就可以看见宇宙的美妙哦!', '任务')
answer = easygui.indexbox('太阳是一个?','题目1',('行星','恒星','卫星'))
while answer != 1:
    answer = easygui.indexbox('请再试一次~太阳是一个?', '题目1', ('行星', '恒星', '卫星'))
else:
    easygui.msgbox('天上的明星现了,好像点着无数的街灯!','回答正确!')
    for x in range(random.randint(30,55)):
        p.pencolor(random.choice(choice_color))
        p.penup()
        p.goto(random.randint(-400,400),random.randint(-400,400))
        p.pendown()
        p.dot(random.randint(1,2)*5)
easygui.msgbox('看完了星星,我们来到下一题~','完成')
p.pencolor('gray')
answer = easygui.ynbox('哈雷彗星是在地球上唯一能用肉眼看到的短周期彗星吗?', '题目2', ('是','否'))
while answer != True:
    answer = easygui.ynbox('请再试一次~哈雷彗星是在地球上唯一能用肉眼看到的短周期彗星吗?', '题目2', ('是','否'))
else:
    easygui.msgbox('你看,那浅浅的天河!', '回答正确!')
    p.penup()
    p.goto(10, -170)
    p.pendown()
    p.fillcolor('cadetblue3')
    s.tracer(0)
    for x in range(4):
        p.begin_fill()
        p.circle(180,90)
        p.circle(90,90)
        p.end_fill()
    p.left(90)
    p.penup()
    p.forward(135)
    p.right(90)
    p.forward(60)
    p.pendown()
    p.dot(120,'gold')
    p.left(180)
easygui.msgbox('欣赏完银河系,开始下一题吧~','完成')
answer = easygui.indexbox('中国首次登陆的火星车叫什么?', '题目3', ('共工', '好奇心', '祝融'))
while answer != 2:
    answer = easygui.indexbox('请再试一次~中国首次登陆的火星车叫什么?','题目3', ('共工', '好奇心', '祝融'))
else:
    q = turtle.Pen()
    q.hideturtle()
    q.fillcolor('cornflowerblue')
    easygui.msgbox('卫星飞过来啦!', '回答正确!')
    q.left(90)
    for x in range(300):
        q.clear()
        draw_satellite(q, 10, -230+x)
        s.update()
        time.sleep(0.001)

easygui.msgbox('让我们乘坐飞船,探索辽阔的宇宙吧!','成功~')
turtle.done()

 

【提示】

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

https://python.codemao.cn


回复

上一页1 页 / 共 1下一页
蒟蒻OIer1048576蒟蒻OIer1048576

while……else好评

点赞0


评论