用户:
云阙_轻功小木查看:0 回复:0 评论:0 创建时间:2021-05-15T21:48:06
【作品展示】

【作品介绍】
这千百年来,每一个中国人,都有一个“飞天梦”早在明代,万户就已尝试飞天,但因为火箭爆炸,不幸牺牲。
如今,科学技术越来越先进,越来越多的宇航员飞向太空,圆了这个千年不忘的“飞天梦”。
【作品源代码】
# -*- coding:utf-8 -*-
import turtle
import random
mypen = turtle.Pen()
myscreen = turtle.Screen()
mypen.speed(0)
mypen.hideturtle()
# 询问结果并判断
print("欢迎来到中国“航天史书号”时光机,你在这里可以看到中国航天发展史")
print("这里可以查看以下几个年份:")
print("[1960, 1970, 1975, 2003, 2007, 2008, 2011, 2016, 2019](请将要查找的年份在写在下一行)")
nf = ["1960", "1970", "1975", "2003", "2007", "2008", "2011", "2016", "2019"]
# 设置移动函数
def yd(x, y):
mypen.penup()
mypen.goto(x, y)
mypen.pendown()
# 设置画星空函数
def xk():
myscreen.setup(700, 600)
turtle.bgcolor("darkblue")
color = ["lightyellow", "light sky blue", "white"]
for i in range(30):
wz = random.randint(-350, 350)
wz_ = random.randint(-300, 300)
yd(wz, wz_)
jg = random.choice(color)
jg_ = random.randint(1, 10)
mypen.dot(jg_, jg)
yd(-200, 200)
mypen.dot(100, "white")
yd(-170, 220)
mypen.dot(100, "darkblue")
mypen.pencolor("white")
yd(0, 250)
mypen.write(jg__, font=("文泉驿正黑", 35), align="center")
while True:
jg__ = input()
if jg__ not in nf:
print("输入错误,请重新输入")
else:
print("好的,开始穿越")
break
# 判断需要的结果
if jg__ == nf[0]:
# 画出天空
myscreen.setup(700, 600)
turtle.bgcolor("light sky blue")
mypen.pencolor("white")
yd(0, 250)
mypen.write(jg__, font=("文泉驿正黑", 35), align="center")
# 画出火箭箭身
yd(-100, -100)
mypen.pensize(5)
mypen.fillcolor("darkgrey")
mypen.begin_fill()
mypen.pencolor("black")
mypen.left(60)
mypen.forward(250)
mypen.right(30)
mypen.forward(75)
mypen.right(100)
mypen.forward(75)
mypen.right(45)
mypen.forward(265)
mypen.right(94)
mypen.forward(115)
mypen.end_fill()
# 画出两个小翼
mypen.fillcolor("darkgrey")
mypen.begin_fill()
yd(-100, -90)
mypen.forward(55)
mypen.right(160)
mypen.forward(60)
mypen.goto(-100, -90)
mypen.end_fill()
mypen.fillcolor("darkgrey")
mypen.begin_fill()
yd(10, -150)
mypen.right(18)
mypen.forward(55)
mypen.left(160)
mypen.forward(60)
mypen.goto(10, -150)
mypen.end_fill()
# 画出推进器火焰
def hy(a, b):
zj = [60, 75, 90, 105]
ys = ["yellow", "orange", "red", "darkred"]
jl = [60, 40, 20, 1]
i = 0
while i < 4:
yd(a, b)
mypen.pensize(zj[i])
mypen.pencolor(ys[i])
mypen.forward(jl[i])
i += 1
mypen.right(50)
mypen.left(110)
hy(-40, -110)
#画出火箭箭身
yd(-100, -100)
mypen.pensize(5)
mypen.fillcolor("darkgrey")
mypen.begin_fill()
mypen.pencolor("black")
mypen.right(133)
mypen.forward(250)
mypen.right(30)
mypen.forward(75)
mypen.right(100)
mypen.forward(75)
mypen.right(45)
mypen.forward(265)
mypen.right(94)
mypen.forward(115)
mypen.end_fill()
# 写下介绍
mypen.pencolor("white")
yd(150, 0)
mypen.write("1960年,", font=("文泉驿正黑", 12))
yd(150, -20)
mypen.write("中国液态燃料火箭发射", font=("文泉驿正黑", 12))
elif jg__ == nf[1]:
# 画出星空
xk()
# 画出信息干
mypen.pencolor("black")
mypen.pensize(3)
yd(0, 0)
mypen.left(90)
mypen.forward(120)
yd(0, -75)
mypen.dot(5, "black")
yd(0, 0)
mypen.right(75)
mypen.forward(120)
mypen.backward(270)
yd(0, 0)
mypen.left(150)
mypen.forward(120)
mypen.backward(270)
# 画出主体
yd(0, 0)
mypen.dot(150, "black")
mypen.dot(140, "brown")
yd(-75, 0)
mypen.goto(75, 0)
# 写下介绍
mypen.pencolor("white")
yd(150, 0)
mypen.write("1970年,", font=("文泉驿正黑", 12))
yd(150, -20)
mypen.write("“东方红一号”发射", font=("文泉驿正黑", 12))
elif jg__ == nf[2]:
# 画出星空
xk()
# 画出地球
yd(-250, -500)
mypen.dot(1015, "blue2")
# 画出地球板块
mypen.pencolor("black")
yd(-200, 5)
mypen.pensize(5)
mypen.fillcolor("green")
mypen.begin_fill()
mypen.goto(-200, -150)
mypen.goto(-250, -200)
mypen.goto(-150, -300)
mypen.goto(0, -300)
mypen.goto(100, -200)
mypen.goto(150, -200)
mypen.left(120)
for i in range(210):
mypen.forward(2)
mypen.left(0.28)
mypen.end_fill()
# 画出卫星
yd(200, 100)
mypen.pencolor("black")
mypen.dot(100)
mypen.pencolor("brown")
mypen.dot(90)
# 画出移动波流
yd(280, 180)
mypen.pencolor("black")
mypen.left(45)
mypen.forward(50)
yd(275, 75)
for i in range(25):
mypen.forward(5)
mypen.right(2)
yd(200, 170)
mypen.left(30)
for i in range(25):
mypen.forward(5)
mypen.left(2)
# 写下介绍
mypen.pencolor("white")
yd(150, 0)
mypen.write("1975年,", font=("文泉驿正黑", 12))
yd(150, -20)
mypen.write("“返回式”卫星发射", font=("文泉驿正黑", 12))
elif jg__ == nf[3]:
# 画出星空
xk()
# 画出飞船主体
yd(-175, -50)
mypen.fillcolor("grey")
mypen.begin_fill()
mypen.pencolor(("black"))
mypen.pensize(5)
mypen.left(45)
mypen.forward(150)
mypen.right(45)
mypen.forward(30)
mypen.left(45)
mypen.forward(100)
mypen.right(45)
mypen.forward(30)
mypen.right(45)
mypen.forward(100)
mypen.right(45)
mypen.forward(30)
mypen.right(45)
mypen.forward(100)
mypen.left(45)
mypen.forward(30)
mypen.right(45)
mypen.forward(150)
mypen.right(45)
mypen.forward(30)
mypen.right(45)
mypen.forward(144)
mypen.right(45)
mypen.forward(30)
mypen.end_fill()
# 画出窗户
yd(-165, -90)
mypen.fillcolor("black")
mypen.begin_fill()
mypen.left(135)
mypen.forward(30)
mypen.left(90)
mypen.forward(120)
mypen.left(90)
mypen.forward(30)
mypen.goto(-165, -90)
mypen.end_fill()
# 画出太阳能电池板
cd = [30, 160, 60, 160, 30]
def dcb(a, b, c):
yd(a, b)
mypen.right(c)
mypen.pensize(5)
mypen.forward(200)
mypen.begin_fill()
mypen.fillcolor("blue3")
for i in cd:
mypen.left(90)
mypen.forward(i)
mypen.end_fill()
dcb(100, -5, 90)
dcb(-10, 90, 270)
# 写下介绍
mypen.pencolor("white")
yd(150, 0)
mypen.write("2003年,", font=("文泉驿正黑", 12))
yd(150, -20)
mypen.write("“神舟五号”载人飞船发射", font=("文泉驿正黑", 12))
elif jg__ == nf[4]:
# 画出星空
myscreen.setup(700, 600)
turtle.bgcolor("darkblue")
color = ["lightyellow", "light sky blue", "white"]
for i in range(30):
wz = random.randint(-350, 350)
wz_ = random.randint(-300, 300)
yd(wz, wz_)
jg = random.choice(color)
jg_ = random.randint(1, 10)
mypen.dot(jg_, jg)
mypen.pencolor("white")
yd(0, 250)
mypen.write(jg__, font=("文泉驿正黑", 35), align="center")
# 画出月球
yd(-2500, -5000)
mypen.dot(5050, "grey")
# 画出探测器主体
yd(30, 150)
mypen.left(75)
mypen.pensize(5)
mypen.pencolor("black")
mypen.fillcolor("yellow3")
mypen.begin_fill()
for i in range(4):
mypen.forward(100)
mypen.right(90)
mypen.end_fill()
# 画出太阳能电池板
cd = [30, 160, 60, 160, 30]
def dcb(a, b, c):
yd(a, b)
mypen.right(c)
mypen.pensize(5)
mypen.forward(200)
mypen.begin_fill()
mypen.fillcolor("blue3")
for i in cd:
mypen.left(90)
mypen.forward(i)
mypen.end_fill()
dcb(140, 180, 90)
dcb(45, 190, 270)
# 画出相机
def tjk(a, b):
yd(a, b)
fx_ = [30, 240, 240, 330]
jl_ = [40, 70, 40, 60]
mypen.pencolor("black")
mypen.pensize(5)
mypen.begin_fill()
mypen.fillcolor("grey")
l = 0
while l < 3:
mypen.right(fx_[l])
mypen.forward(jl_[l])
l += 1
mypen.end_fill()
tjk(60, 145)
# 画出光线
mypen.pensize(1)
mypen.pencolor("lightskyblue1")
mypen.fillcolor("lightskyblue1")
mypen.begin_fill()
yd(50, 100)
mypen.left(135)
mypen.forward(250)
mypen.left(105)
mypen.forward(160)
mypen.left(105)
mypen.forward(250)
mypen.goto(50, 100)
mypen.end_fill()
# 写下介绍
mypen.pencolor("white")
yd(150, 0)
mypen.write("2007年,", font=("文泉驿正黑", 12))
yd(150, -20)
mypen.write("“嫦娥一号”拍摄首张月面图片", font=("文泉驿正黑", 10))
elif jg__ == nf[5]:
# 画出星空
xk()
# 画出飞船主体
yd(-175, -50)
mypen.fillcolor("grey")
mypen.begin_fill()
mypen.pencolor(("black"))
mypen.pensize(5)
mypen.left(45)
mypen.forward(150)
mypen.right(45)
mypen.forward(30)
mypen.left(45)
mypen.forward(100)
mypen.right(45)
mypen.forward(30)
mypen.right(45)
mypen.forward(100)
mypen.right(45)
mypen.forward(30)
mypen.right(45)
mypen.forward(100)
mypen.left(45)
mypen.forward(30)
mypen.right(45)
mypen.forward(150)
mypen.right(45)
mypen.forward(30)
mypen.right(45)
mypen.forward(144)
mypen.right(45)
mypen.forward(30)
mypen.end_fill()
# 画出窗户
yd(-165, -90)
mypen.fillcolor("black")
mypen.begin_fill()
mypen.left(135)
mypen.forward(30)
mypen.left(90)
mypen.forward(120)
mypen.left(90)
mypen.forward(30)
mypen.goto(-165, -90)
mypen.end_fill()
# 画出太阳能电池板
cd = [30, 160, 60, 160, 30]
def dcb(a, b, c):
yd(a, b)
mypen.right(c)
mypen.pensize(5)
mypen.forward(200)
mypen.begin_fill()
mypen.fillcolor("blue3")
for i in cd:
mypen.left(90)
mypen.forward(i)
mypen.end_fill()
dcb(100, -5, 90)
dcb(-10, 90, 270)
#画出舱门
yd(-165, -105)
mypen.pencolor("black")
mypen.pensize(10)
mypen.forward(100)
#画出缆绳
yd(-105, -165)
mypen.pensize(5)
for i in range(20):
mypen.forward(5)
mypen.left(2)
for i in range(10):
mypen.forward(7)
mypen.right(10)
# 写下介绍
mypen.pencolor("white")
yd(150, 0)
mypen.write("2008年,", font=("文泉驿正黑", 12))
yd(150, -20)
mypen.write("“神舟七号”人类太空漫步", font=("文泉驿正黑", 12))
elif jg__ == nf[6]:
# 画出星空
xk()
#画出天宫一号主体
yd(-250, -100)
mypen.left(20)
mypen.pencolor("black")
mypen.pensize(5)
mypen.fillcolor("grey")
mypen.begin_fill()
mypen.forward(200)
mypen.right(50)
mypen.forward(40)
mypen.right(50)
mypen.forward(40)
mypen.right(40)
mypen.forward(40)
mypen.right(45)
mypen.forward(200)
mypen.goto(-250, -100)
mypen.end_fill()
#画出神舟八号主体
mypen.penup()
mypen.right(175)
mypen.forward(200)
mypen.right(50)
mypen.forward(40)
mypen.pendown()
mypen.fillcolor("lightgrey")
mypen.begin_fill()
mypen.left(90)
mypen.forward(40)
mypen.right(45)
mypen.forward(40)
mypen.right(45)
mypen.forward(40)
mypen.left(55)
mypen.forward(200)
mypen.right(95)
mypen.forward(90)
mypen.right(98)
mypen.forward(203)
mypen.left(45)
mypen.forward(40)
mypen.right(45)
mypen.forward(40)
mypen.right(45)
mypen.forward(40)
mypen.right(45)
mypen.forward(40)
mypen.end_fill()
#画出太阳能电池板
cd = [30, 160, 60, 160, 30]
def dcb(a, b, c):
yd(a, b)
mypen.right(c)
mypen.pensize(5)
mypen.forward(200)
mypen.begin_fill()
mypen.fillcolor("blue3")
for i in cd:
mypen.left(90)
mypen.forward(i)
mypen.end_fill()
dcb(180, 25, 350)
dcb(200, -40, 270)
dcb(-185, -165, 100)
dcb(-195, -80, 270)
# 写下介绍
mypen.pencolor("black")
yd(150, 0)
mypen.write("2011年,", font=("文泉驿正黑", 12))
yd(150, -20)
mypen.write("“天宫一号”与“神舟八号”对接", font=("文泉驿正黑", 10))
elif jg__ == nf[7]:
# 画出天空
myscreen.setup(700, 600)
turtle.bgcolor("light sky blue")
mypen.pencolor("white")
yd(0, 250)
mypen.write(jg__, font=("文泉驿正黑", 35), align="center")
#画出火箭主体
yd(-200, -200)
mypen.left(45)
mypen.pencolor("black")
mypen.pensize(5)
mypen.fillcolor("lightgrey")
mypen.begin_fill()
mypen.forward(500)
mypen.right(30)
mypen.forward(50)
mypen.right(110)
mypen.forward(50)
mypen.right(40)
mypen.forward(505)
mypen.goto(-200, -200)
mypen.end_fill()
#画出两个推进小翼
def tjxy(a, b, c):
yd(a, b)
mypen.fillcolor("lightgrey")
mypen.begin_fill()
mypen.right(c)
for i in range(2):
mypen.forward(250)
mypen.right(90)
mypen.forward(40)
mypen.right(90)
mypen.end_fill()
tjxy(-200, -160, 180)
tjxy(-150, -210, 0)
# 画出推进孔
def tjk(a, b, c):
yd(a, b)
mypen.right(c)
fx_ = [30, 240, 240, 330]
jl_ = [40, 80, 40, 70]
mypen.pencolor("black")
mypen.pensize(5)
mypen.begin_fill()
mypen.fillcolor("grey")
l = 0
while l < 3:
mypen.right(fx_[l])
mypen.forward(jl_[l])
l += 1
mypen.end_fill()
tjk(-200, -160, 180)
tjk(-150, -210, 210)
#画出推进器火焰
zj = [45, 60, 75, 90]
ys = ["lightyellow", "yellow", "yellow3", "orange"]
jl = [80, 60, 40, 20]
i = 0
mypen.right(210)
while i < 4:
yd(-180, -220)
mypen.pensize(zj[i])
mypen.pencolor(ys[i])
mypen.forward(jl[i])
i += 1
def hy(a, b):
zj = [15, 30, 45, 60]
ys = ["lightyellow", "yellow", "yellow3", "orange"]
jl = [60, 40, 20, 1]
i = 0
while i < 4:
yd(a, b)
mypen.pensize(zj[i])
mypen.pencolor(ys[i])
mypen.forward(jl[i])
i += 1
hy(-210, -190)
hy(-150, -245)
#画出火箭
yd(-200, -200)
mypen.right(180)
mypen.pencolor("black")
mypen.pensize(5)
mypen.fillcolor("lightgrey")
mypen.begin_fill()
mypen.forward(500)
mypen.right(30)
mypen.forward(50)
mypen.right(110)
mypen.forward(50)
mypen.right(40)
mypen.forward(505)
mypen.goto(-200, -200)
mypen.end_fill()
def tjxy(a, b, c):
yd(a, b)
mypen.fillcolor("lightgrey")
mypen.begin_fill()
mypen.right(c)
for i in range(2):
mypen.forward(250)
mypen.right(90)
mypen.forward(40)
mypen.right(90)
mypen.end_fill()
tjxy(-200, -160, 180)
tjxy(-150, -210, 0)
def tjk(a, b, c):
yd(a, b)
mypen.right(c)
fx_ = [30, 240, 240, 330]
jl_ = [40, 80, 40, 70]
mypen.pencolor("black")
mypen.pensize(5)
mypen.begin_fill()
mypen.fillcolor("grey")
l = 0
while l < 3:
mypen.right(fx_[l])
mypen.forward(jl_[l])
l += 1
mypen.end_fill()
tjk(-200, -160, 180)
tjk(-150, -210, 210)
#画出装饰小翼
mypen.fillcolor("lightgrey")
mypen.begin_fill()
mypen.right(30)
mypen.forward(20)
mypen.right(90)
mypen.forward(40)
mypen.left(135)
mypen.forward(55)
mypen.left(135)
mypen.forward(40)
mypen.end_fill()
yd(-200, -160)
mypen.fillcolor("lightgrey")
mypen.begin_fill()
mypen.backward(20)
mypen.right(90)
mypen.forward(40)
mypen.right(135)
mypen.forward(55)
mypen.right(135)
mypen.forward(40)
mypen.end_fill()
# 写下介绍
mypen.pencolor("black")
yd(150, 0)
mypen.write("2016年,", font=("文泉驿正黑", 12))
yd(150, -20)
mypen.write("“长征五号”大型运载火箭发射", font=("文泉驿正黑", 10))
elif jg__ == nf[8]:
# 画出星空
myscreen.setup(700, 600)
turtle.bgcolor("darkblue")
color = ["lightyellow", "light sky blue", "white"]
for i in range(30):
wz = random.randint(-350, 350)
wz_ = random.randint(-300, 300)
yd(wz, wz_)
jg = random.choice(color)
jg_ = random.randint(1, 10)
mypen.dot(jg_, jg)
mypen.pencolor("white")
yd(0, 250)
mypen.write(jg__, font=("文泉驿正黑", 35), align="center")
#画出月球
mypen.pencolor("grey")
mypen.fillcolor("grey")
mypen.begin_fill()
yd(0, 0)
mypen.forward(350)
mypen.right(90)
mypen.forward(300)
mypen.right(90)
mypen.forward(700)
mypen.right(90)
mypen.forward(300)
mypen.goto(0, 0)
mypen.end_fill()
#画出着陆器着陆架
mypen.pensize(2)
mypen.right(90)
mypen.pencolor("black")
yd(50, 0)
mypen.right(50)
mypen.forward(120)
mypen.dot(10)
yd(50, 0)
mypen.right(5)
mypen.forward(100)
mypen.dot(8)
yd(50, 0)
mypen.right(70)
mypen.forward(100)
mypen.dot(8)
yd(50, 0)
mypen.right(5)
mypen.forward(120)
mypen.dot(10)
#画出着陆器主体
yd(0, -50)
mypen.left(130)
mypen.pencolor("black")
mypen.pensize(5)
mypen.left(90)
mypen.fillcolor("brown4")
mypen.begin_fill()
for i in range(4):
mypen.forward(100)
mypen.right(90)
mypen.end_fill()
#画出相机
yd(50, 30)
mypen.dot(20, "black")
mypen.dot(18, "lightskyblue")
#画出太阳能电池板
yd(10, 50)
mypen.fillcolor("blue")
mypen.begin_fill()
mypen.goto(10, 70)
mypen.goto(90, 70)
mypen.goto(90, 50)
mypen.goto(10, 50)
mypen.end_fill()
# 写下介绍
mypen.pencolor("black")
yd(150, 0)
mypen.write("2019年,", font=("文泉驿正黑", 12))
yd(150, -20)
mypen.write("“嫦娥喵”月背软着陆", font=("文泉驿正黑", 10))
turtle.done()
【提示】
部分含有Python第三方库相关内容的作品,在海龟编辑器网页端无法运行哦!如遇到这种情况,可以打开下面的链接,下载海龟编辑器客户端:
https://python.codemao.cn