猫史档案馆


【Python作品分享】【120强进36】 太空探险

用户:活波的铁奥SORR活波的铁奥SORR查看:0 回复:1 评论:0 创建时间:2021-05-16T18:23:14


【作品展示】

center_image

 

【作品介绍】

作品的主题为太空冒险,设有输入与输出的交互式功能,让玩家有种身临其境的感受。途中的UFO出现、让玩家选择处理方式,这些创意更是增添了程序的趣味性。

此作品能使玩家体会到宏大宇宙的神秘,能勾起玩家心中的探索精神。当然,此作品也标志着中国在航天史上的伟大成就!

 

【作品源代码】

# 发射
def go():
    t.setup(1000, 620, 50, 0)
    t.bgpic("天空.gif")

    t.pencolor("white")
    t.pensize(2.5)
    t.fd(100)

    for i in range(1, 11):
        t.pensize(5*i)
        t.fd(100)
# 地球
def land(n, angle):
    t.pencolor('green')
    t.circle(10, angle)
    t.setheading(n)

def move_line(n):
    t.up()
    t.lt(180)
    t.fd(50)
    t.lt(90)
    t.fd(n)
    t.lt(90)
    t.down()

def line(n):
    for i in range(n):
        if i % 2 == 0:
            land(-270, -180)
        else:
            land(90, 180)

def earth():
    t.fillcolor('blue')
    t.begin_fill()
    t.circle(100)
    t.end_fill()
    t.up()
    t.lt(180)
    t.fd(52)
    t.rt(90)
    t.fd(180)
    t.rt(180)
    t.fd(159)
    t.down()
    t.pensize(8)
    line(5)

    move_line(140)
    line(9)

    move_line(180)
    line(9)

    move_line(145)
    line(6)

# 月球
def dip(n):
    t.fillcolor("gray")
    t.begin_fill()
    t.circle(n)
    t.end_fill()

def moon():
    t.pencolor("gray")
    t.fillcolor("dark gray")
    t.begin_fill()
    t.circle(50)
    t.end_fill()
    t.up()
    t.lt(90)
    t.fd(60)
    t.rt(90)
    t.fd(40)
    t.lt(90)
    t.down()
    dip(10)
    t.up()
    t.lt(90)
    t.fd(50)
    t.lt(90)
    t.fd(40)
    t.down()
    dip(12)
    t.up()
    t.lt(180)
    t.fd(40)
    t.down()
    dip(15)
    t.rt(90)
    dip(10)

def star(length):
    t.begin_fill()
    for i in range(5):
        t.forward(length)
        t.left(72)
        t.forward(length)
        t.right(144)
    t.end_fill()

# 火箭
def roket():
    t.pencolor("white")
    t.fillcolor("white")
    t.begin_fill()
    for i in range(2):
        t.fd(350)
        t.lt(90)
        t.fd(150)
        t.lt(90)
    t.end_fill()
    
    t.lt(90)
    t.pencolor("red")
    t.fillcolor("red")
    t.begin_fill()
    t.fd(150)
    t.lt(110)
    t.fd(200)
    t.lt(136)
    t.fd(205)
    t.end_fill()
    t.up()
    t.fd(110)
    t.lt(90)
    t.fd(105)
    t.down()
    t.pencolor('black')
    t.fillcolor("light blue")
    t.begin_fill()
    t.circle(65)
    t.end_fill()
    t.up()
    t.rt(80)
    t.fd(215)    
    t.lt(105)
    t.down()

    t.pencolor("orange")
    t.fillcolor("orange")
    t.begin_fill()
    for i in range(3):
        t.fd(50)
        t.rt(120)
    t.end_fill()

    t.up()
    t.fd(50)
    t.down()

    t.begin_fill()
    t.fd(50)
    t.rt(120)
    t.fd(80)
    t.rt(120)
    t.fd(80)
    t.end_fill()

    t.up()
    t.rt(120)
    t.fd(80)
    t.down()

    t.begin_fill()
    t.fd(55)
    t.rt(120)
    t.fd(60)
    t.rt(120)
    t.fd(60)
    t.end_fill()

    t.up()
    t.rt(5)
    t.fd(200)
    t.rt(115)
    t.down()

    t.pensize(0)
    t.pencolor('red')
    t.fillcolor("red")
    t.begin_fill()
    for i in range(2):
        t.fd(135)
        t.rt(90)
        t.fd(90)
        t.rt(90)
    t.end_fill()

    t.fillcolor('yellow')
    t.up()
    t.fd(5)
    t.rt(90)
    t.fd(20)
    t.lt(90)
    t.down()
    star(10)

    t.up()
    t.fd(25)
    t.lt(120)
    t.fd(15)
    t.rt(100)
    t.down()
    star(6)

    t.up()
    t.rt(65)
    t.fd(17)
    t.lt(75)
    t.down()
    star(6)

    t.up()
    t.rt(110)
    t.fd(12)
    t.lt(75)
    t.down()
    star(6)

    t.up()
    t.rt(130)
    t.fd(8)
    t.lt(75)
    t.down()
    star(6)

# 太阳
def sun():
    t.fillcolor('dark orange')
    t.begin_fill()
    t.circle(200)
    t.end_fill()

def delay(n):
    n = n
    while n >= 0:
        n -= 0.1


# 主程序
an = True
print("我们正坐在火箭上,即将去宏伟的太空遨游一番,你准备好了吗?")
print(

)

while an:
    an_1 = input("回答ok或no,开启我们的外空之旅:")
    if an_1 == "no":
        print("那再等等<(^-^)>")
        delay(2000000)
        an = True

    elif an_1 == "ok":
        an = False
        print("做好准备哟(^U^)ノ")

    else:
        an = True
        print("没听懂呢(╬▔皿▔)╯")

delay(2000000)
print("3")
delay(2000000)
print("2")
delay(2000000)
print("1")
delay(2000000)
print("let's go!")
delay(2000000)

import turtle as t
t.tracer(False)
t.up()
t.rt(150)
t.fd(550)
t.lt(185)
t.down()
t.tracer(True)
go()
delay(1500000)

t.clearscreen()
t.bgcolor("black")
t.pencolor("white")
t.write("即将到达太空!", False, "center",font=('simsun.ttc', 50))

delay(6000000)
t.clearscreen()
t.setup(1220, 620, 0, 0)
t.bgpic("太空背景图.gif")


t.speed(0)
t.up()
t.home()
t.rt(90)
t.fd(100)
t.rt(90)
t.fd(400)
t.down()
earth()

t.up()
t.fd(300)
t.rt(90)
t.fd(200)
t.lt(90)
t.fd(100)
t.down()
moon()

t.up()
t.rt(100)
t.fd(230)
t.lt(90)
t.fd(100)
t.lt(75)
t.lt(90)
t.down()
roket()

t.up()
t.lt(65)
t.fd(450)
t.down()
sun()

t.up()
t.rt(120)
t.fd(150)
t.down()
t.pencolor("red")
t.write("中国航天", font=('simsun.ttc', 50))
t.pencolor("black")
t.fillcolor("black")

# UFO
delay(6000000)
t.up()
t.speed(3)
t.register_shape("飞碟.gif")
t.shape("飞碟.gif")

t.rt(65)
t.fd(500)
t.rt(90)
t.circle(80)

# 弹窗
import tkinter
import tkinter.messagebox

tkinter.messagebox.showwarning('警告', '有飞碟出现!!')
hello = tkinter.messagebox.askyesno('提示', '是否要和外星人打个招呼?')


if hello:
    tkinter.messagebox.showinfo('提示', '外星人很高兴,给我们留下了宝贵的资料')
    t.fd(500)
    delay(3000000)
    tkinter.messagebox.showinfo('提示', '此次太空之旅已经接近尾声,即将返回地球')
    delay(3000000)
    t.clearscreen()
    t.speed(0)
    t.tracer(False)
    t.up()
    t.lt(45)
    t.fd(400)
    t.rt(180)
    t.down()
    t.tracer(True)
    go()
    delay(2000000)
    t.clearscreen()
    t.bgcolor("light blue")
    t.write("此次太空之旅很成功!", False, "center", font=('simsun.ttc', 50))


else:
    tkinter.messagebox.showwarning('提示', '外星人认为我们很不礼貌,开始了攻击!!!')
    t.tracer(False)
    t.clearscreen()
    t.tracer(True)
    t.bgcolor("blue")
    tkinter.messagebox.showerror('错误', '火箭出故障了')
    t.bgcolor("black")
    delay(2000000)
    t.bgcolor("light blue")
    tkinter.messagebox.showinfo('提示', '在营救队的帮助下,我们现在已经返回了地球')
    t.write("虽然此次太空之旅遭到了外星人的袭击", False, "center", font=('simsun.ttc', 50))
    delay(6000000)
    t.undo()
    t.write("但依旧很成功!", False, "center", font=('simsun.ttc', 50))

t.undo()
delay(6000000)
t.write("希望下次还能一起去太空探险!", False, "center", font=('simsun.ttc', 50))

t.done()

 

【提示】

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

https://python.codemao.cn


回复

上一页1 页 / 共 1下一页
活波的铁奥SORR活波的铁奥SORR

此作品使用turtle、tkinter库完成

此为作品素材

center_imagecenter_imagecenter_image

点赞0


评论