2012년 4월 7일 토요일

Exercise 4.2-Answer

from: http://openbookproject.net/thinkcs/python/english3e/functions.html#exercises

Write a program to draw this. Assume the innermost square is 20 units per side, and each successive square is 20 units bigger, per side, than the one inside it.

_images/nested_squares.png

 

  1: # -*- coding: UTF-8 -*-
  2: #!/usr/bin/env python
  3: 
  4: import turtle
  5: 
  6: def createWindow(bgcolor, title):
  7:     w = turtle.Screen()
  8:     w.bgcolor(bgcolor)
  9:     w.title(title)
 10:     return w
 11: 
 12: def createTurtle(color, size):
 13:     t = turtle.Turtle()
 14:     t.pensize(size)
 15:     t.color(color)
 16:     return t
 17: 
 18: def jump(t, l):
 19:     t.penup()
 20:     t.backward(l)
 21:     t.right(90)
 22:     t.forward(l)
 23:     t.left(90)
 24:     t.pendown()
 25: 
 26: def draw_square(t, l):
 27:     for i in range(4):
 28:         t.forward(l)
 29:         t.left(90)
 30:     jump(t, 10)
 31: 
 32: wn = createWindow("lightgreen", "Exercises 4.2")
 33: tess = createTurtle("hotpink", 3)
 34: 
 35: for i in range(5):
 36:     draw_square(tess, 20 * (i + 1))
 37: 
 38: wn.mainloop()
 39: 

댓글 1개:

  1. hi there, what about this one?

    import turtle

    def draw_square(k, sz):
    for i in range(4):
    k.forward(sz)
    k.left(90)

    wn = turtle.Screen()
    wn.bgcolor("lightgreen")

    omar = turtle.Turtle()
    omar.color("red")
    omar.pensize(3)

    size = 20
    jump = 0
    for i in range(5):
    draw_square(omar, size)
    size = size+20
    jump = jump-10
    omar.penup()
    omar.goto(jump, jump)
    omar.pendown()

    wn.mainloop()

    답글삭제