generated from mwc/lab_iteration
43 lines
1.2 KiB
Python
43 lines
1.2 KiB
Python
# tile_grid.py
|
|
# ------------
|
|
# By MWC Contributors
|
|
#
|
|
# Implements `draw_tile_grid`, which draws a grid of tiles.
|
|
|
|
from turtle import *
|
|
from tile import fly
|
|
|
|
def draw_tile_grid(width, height, tile_size, tile_function):
|
|
"""Draws a (width x height) grid, with tile_function drawn on each tile.
|
|
|
|
(it works by drawing one version of the expected shape and then returning to its orignal starting point but also then moving up one row to draw the orignal shape in one spot above the original)
|
|
"""
|
|
for y in range(height):
|
|
for x in range(width):
|
|
tile_function(tile_size)
|
|
fly(tile_size)
|
|
return_to_x_origin(tile_size, width)
|
|
move_up_one_row(tile_size)
|
|
return_to_y_origin(tile_size, height)
|
|
|
|
def return_to_x_origin(tile_size, width):
|
|
"After drawing a row of tiles, returns the turtle to the starting x position"
|
|
fly(-1 * tile_size * width)
|
|
|
|
def return_to_y_origin(tile_size, height):
|
|
"After drawing all rows of tiles, returns the turtle to the starting y position"
|
|
right(90)
|
|
fly(tile_size * height)
|
|
left(90)
|
|
|
|
def move_up_one_row(tile_size):
|
|
"Moves the turtle up one row"
|
|
left(90)
|
|
fly(tile_size)
|
|
right(90)
|
|
|
|
|
|
|
|
|
|
|