My turtle

Snowman

 

Task: Build Snowman


Code:

from turtle import *
from random import randint
import random
bgcolor("dark blue")

k=1

def move(x,y):
    penup()
    goto(x,y)
    pendown()

def field():    
    speed(0)    
    color('light blue')#snow
    begin_fill()
    move(-800,-200)
    goto(800,-200)
    goto(800,-500)
    goto(-800,-500)
    goto(-800,-200)
    end_fill()

def randommove (min_x, max_x, min_y, max_y):
    x = random.uniform(min_x, max_x)
    y = random.uniform(min_y, max_y)
    penup()
    goto(x,y)
    pendown()

def ray (ang):
    color("yellow")
    for i in range(50):
        dis = randint(k*5, k*40)
        ang = ang + 15
        pensize(2)
        setheading(ang)
        forward(dis)
        backward(dis)

def star(size,colir):
    color(colir)
    begin_fill()
    for i in range(5):
        forward(size)
        left(144)
    end_fill()

    
def snowman(xbeg, ybeg):
    move(xbeg, ybeg)
    pencolor("dark blue") #lower part
    pensize(k*4)
    fillcolor("white")
    begin_fill()
    circle(k*100)
    end_fill()
    penup()
    setheading(90) #left hand
    forward(k*220)
    pencolor("peru")
    pensize(k*8)
    setheading(180)
    pendown()
    forward(k*150)
    backward(k*150)
    setheading(30) #right hand
    forward(k*170)
    ray(0)  #ray
    backward(k*10)
    star(k*20, 'red') #star
    penup()
    backward(k*160)
    color("white") #middle part
    dot(k*130)
    setheading(90) #head
    forward(k*90)
    color("white")
    dot(k*90)
    setheading(150) #left eye
    forward(k*20)
    color("black")
    dot(k*15)
    penup()
    setheading(0) #right eye
    forward(k*40)
    pendown()
    dot(k*15)
    penup()
    setheading(220) #nose
    forward(k*25)
    pendown()
    color("red")
    dot(k*20)
    penup()
    forward(k*25) #mouth
    pencolor("black")
    pensize(k*5)
    pendown()
    setheading(340)
    circle(50, 50)
    penup()
    setheading(140) #bucket
    forward(k*78)
    pencolor("black")
    fillcolor("grey")
    setheading(0)
    pendown()
    begin_fill()
    forward(k*60)
    setheading(100)
    forward(k*50)
    setheading(180)
    forward(k*40)
    setheading(260)
    forward(k*50)
    end_fill()


field()

for i in range(50):
    h = random.uniform(10, 30)
    randommove (-800, 800, 0, 800)
    star(h,'white')

snowman(0, -300)

hideturtle()
mainloop()

2026-07-09 09:53:37

Comments

No comments yet. Be the first to leave one!

Leave a Comment