Skip to content

Instantly share code, notes, and snippets.

@mbround18
Created July 24, 2018 03:25
Show Gist options
  • Save mbround18/12639d3ff15fe51bc233d98057b6207e to your computer and use it in GitHub Desktop.
Save mbround18/12639d3ff15fe51bc233d98057b6207e to your computer and use it in GitHub Desktop.
cyb130 week2
import time
import turtle
import math
import random
# Set the background color
screen = turtle.Screen()
screen.bgcolor("skyblue")
# Define a funtion to draw and fill a rectangle with the given
# dimensions and color
def drawRectangle(t, width, height, color):
t.fillcolor(color)
t.begin_fill()
t.forward(width)
t.left(90)
t.forward(height)
t.left(90)
t.forward(width)
t.left(90)
t.forward(height)
t.left(90)
t.end_fill()
# Define a function to draw and fill an equalateral right
# triangle with the given hypotenuse length and color. This
# is used to create a roof shape.
def drawTriangle(t, length, color):
t.fillcolor(color)
t.begin_fill()
t.forward(length)
t.left(135)
t.forward(length / math.sqrt(2))
t.left(90)
t.forward(length / math.sqrt(2))
t.left(135)
t.end_fill()
# Define a function to draw and fill a parallelogram, used to
# draw the side of the house
def drawParallelogram(t, width, height, color):
t.fillcolor(color)
t.begin_fill()
t.left(30)
t.forward(width)
t.left(60)
t.forward(height)
t.left(120)
t.forward(width)
t.left(60)
t.forward(height)
t.left(90)
t.end_fill()
# Define a function to draw four sun rays of the given length,
# for the sun of the given radius. The turtle starts in the
# center of the circle.
def drawFourRays(t, length, radius):
for i in range(4):
t.penup()
t.forward(radius)
t.pendown()
t.forward(length)
t.penup()
t.backward(length + radius)
t.left(90)
def create_turtle():
# Create our turtle
turt = turtle.Turtle()
turt.color("black")
turt.shape("turtle")
turt.speed(10)
return turt
def draw_house(t: any, baseX: int, baseY: int):
thicc = random.randrange(110, 130)
# Create our turtle
george = t
# Draw and fill the front of the house
george.penup()
george.goto(-150 + baseX, -120 + baseY)
george.pendown()
drawRectangle(george, 100, 110, "blue")
# Draw and fill the front door
george.penup()
george.goto(-120 + baseX, -120 + baseY)
george.pendown()
drawRectangle(george, 40, 60, "lightgreen")
# Draw front window
george.penup()
george.goto(-100 + baseX, -40 + baseY)
george.pendown()
drawRectangle(george, 40, 20, "brown")
# Front roof
george.penup()
george.goto(-150 + baseX, -10 + baseY)
george.pendown()
drawTriangle(george, 100, "magenta")
# Side of the house
george.penup()
george.goto(-50 + baseX, -120 + baseY)
george.pendown()
drawParallelogram(george, 60, 110, "yellow")
# Window
george.penup()
george.goto(-30 + baseX, -60 + baseY)
george.pendown()
drawParallelogram(george, 20, 30, "brown")
# Side roof
george.penup()
george.goto(-50 + baseX, -10 + baseY)
george.pendown()
george.fillcolor("orange")
george.begin_fill()
george.left(30)
george.forward(60)
george.left(105)
george.forward(100 / math.sqrt(2))
george.left(75)
george.forward(60)
george.left(105)
george.forward(100 / math.sqrt(2))
george.left(45)
george.end_fill()
# Bring the turtle down to the front door, and we're done!
george.penup()
george.goto(-100 + baseX, -150 + baseY)
george.left(90)
house_plot = [-2, -1, 0, 1]
for i in house_plot:
builder = create_turtle()
draw_house(builder, i * -100, i * -100)
builder = create_turtle()
draw_house(builder, i * -100 + 400, i * -100)
builder = create_turtle()
draw_house(builder, i * -100 + 200, i * -100)
builder = create_turtle()
draw_house(builder, i * -100 - 200, i * -100)
builder = create_turtle()
draw_house(builder, i * -100 - 400, i * -100)
builder.penup()
builder.goto(-100, -300)
builder.pendown()
builder.write("Michael_Bruno_20180723_CYB130", False, 'left')
builder.penup()
builder.goto(500, 500)
builder.screen.mainloop()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment