Python怎么用turtle库画建筑和写文字?

Python课的题,要画一栋宿舍楼,还要在图片里附上标题和个人信息……有朋友会的吗?(只想问问思路和方法)


# 1. get turtle library
import turtle


# 2. name your turtle
pen = turtle.Turtle()
# 3. Set up your turtle
pen.speed(100)
pen.color(0,0,0)
wn = turtle.Screen()
wn.bgcolor(66,202,244)

def drawSun(pen,x,y,size):
  pen.setheading(0)
  pen.fillcolor("yellow")
  pen.penup()
  pen.goto(x,y)
  pen.pendown()
  pen.begin_fill()
  pen.circle(size)
  pen.end_fill()
  
def drawCloud(pen,x,y):
  pen.setheading(90)
  pen.fillcolor("white")
  pen.penup()
  pen.goto(x,y)
  pen.pendown()
  pen.begin_fill()

  pen.color("white")
  for x in range(10):
    pen.circle(20)
    pen.right(36)
    pen.forward(10)
  pen.end_fill()
  pen.setheading(90)  
 
 
def drawGrass(pen):
  pen.setheading(90)
  pen.fillcolor(5,114,3)
  pen.penup()
  pen.setheading(90)
  pen.goto(-200,-200)
  pen.begin_fill()

  for x in range(2):
    pen.forward(200)
    pen.right(90)
    pen.forward(600)
    pen.right(90)
  pen.end_fill()  
  
def drawBush(pen,x,y):
  pen.setheading(90)
  pen.fillcolor("darkgreen")
  pen.width(5)
  pen.penup()
  pen.goto(x,y)
  pen.pendown()
  pen.begin_fill()

  pen.color("darkgreen")
  for x in range(10):
    pen.circle(15)
    pen.right(36)
    pen.forward(10)
  pen.end_fill()
  pen.setheading(90)    


def drawPath(pen):
  pen.setheading(90)  
  pen.color(0,0,0)
  pen.fillcolor(150,80,0)
  pen.penup()
  pen.goto(-65,-200)
  pen.begin_fill()
  pen.pendown()
  pen.right(10)
  pen.forward(203)
  pen.right(80)
  pen.forward(40)
  pen.right(80)
  pen.forward(203)
  pen.right(80)
  pen.end_fill()
  pen.setheading(90)  

def drawFence(pen):
  pen.setheading(90)
  pen.color(0,0,0)  
  #fence
  pen.penup()
  pen.goto(-200,-200)
  pen.pendown()
  pen.setheading(90)

  #pen.left(50)
  pen.fillcolor(115,79,3)
  pen.begin_fill()
  for x in range(13):
    pen.forward(100)
    pen.right(45)
    pen.forward(20)
    pen.right(90)
    pen.forward(20)
    pen.right(45)
    pen.forward(100)
    pen.left(90)
    pen.forward(4)
    pen.left(90)
  pen.end_fill()

  #handle
  pen.penup()
  pen.goto(47,-140)
  pen.pendown()
  pen.fillcolor(177,188,177)
  pen.begin_fill()
  pen.circle(7)
  pen.end_fill()
  pen.begin_fill()
  pen.fillcolor(115,79,3)
  pen.penup()
  pen.goto(44,-140)
  pen.pendown()
  pen.circle(4)
  pen.end_fill()

  #hinges
  coord1 = [-50,-190]
  coord2 = [-50,-130]
  l = [coord1,coord2]
  for y in range(2):
    pen.penup()
    pen.goto(l[y])
    pen.fillcolor(177,188,177)
    pen.begin_fill()
    pen.pendown()
    for x in range (2):
      pen.forward(10)
      pen.right(90)
      pen.forward(15)
      pen.right(90)
    pen.end_fill()
  pen.setheading(90)    
  

def drawHouse(pen):
  pen.color(0,0,0)  
  pen.penup()
  pen.goto(-160,-20)
  pen.pendown()
  pen.setheading(90)
  pen.fillcolor("white")
  pen.begin_fill()
  pen.forward(150)
  roof1=pen.position()
  pen.right(90)
  pen.forward(300)
  roof2 = pen.position()
  pen.right(90)
  pen.forward(150)
  pen.right(90)
  pen.forward(300)
  pen.right(90)
  pen.end_fill()
  
  #roof
  pen.penup()
  pen.goto(roof1)
  pen.fillcolor(244, 131, 66)
  pen.begin_fill()
  pen.pendown()
  pen.goto(-10,200)
  pen.goto(roof2)
  pen.goto(roof1)
  pen.end_fill()
  pen.setheading(90)


def drawDoor(pen,x,y):
  #door
  pen.penup()
  pen.goto(x,y)
  pen.fillcolor(180,0,0)
  pen.begin_fill()
  pen.setheading(90)

  for x in range(2):
    pen.forward(50)
    pen.right(90)
    pen.forward(30)
    pen.right(90)

  pen.end_fill()

  #handle
  pen.fillcolor("yellow")
  pen.penup()
  pen.goto(x,y+20)
  pen.begin_fill()
  pen.circle(4)
  pen.end_fill()


def drawWindow(pen,x,y,shape):
  pen.width(4)
  pen.color("black")
  pen.fillcolor("lightblue")
  
  if shape=="square":
    pen.penup()
    pen.goto(x,y)
    pen.pendown()
    pen.begin_fill()

  
    for y in range(4):
      for x in range(4):
        pen.forward(20)
        pen.right(90)
      pen.left(90)
    pen.end_fill()
  else:
    pen.penup()
    pen.goto(x,y)
    pen.pendown()
    pen.backward(20)
    pen.right(90)
    pen.begin_fill()
    pen.circle(20)
    pen.end_fill()
    pen.goto(x,y)
    
    for x in range(2):
      pen.forward(20)
      pen.backward(40)
      pen.forward(20)
      pen.right(90)



#4. start drawing

drawWindow(pen,-95,15,"square")
drawHouse(pen)
drawDoor(pen,-25,-20)
drawBush(pen,120,35)
drawWindow(pen,-10,100,"circle")
drawFence(pen)
drawPath(pen)
drawWindow(pen,-95,100,"square")
drawGrass(pen)
drawCloud(pen,75,160)
drawWindow(pen,75,15,"square")
drawSun(pen,-200,160,70)
drawWindow(pen,180,150,"square")