diff --git a/drawing.py b/drawing.py index 29fc89e..a153b2d 100644 --- a/drawing.py +++ b/drawing.py @@ -5,3 +5,54 @@ # (Briefly describe what this program does.) from turtle import * + +def square(unit): + "Draws a square of size unit" + begin_fill() + for side in range(4): + forward(unit) + right(90) + end_fill() + +def row_of_squares(unit, quantities_and_colors): + "Draws a row of squares, one in each color in colors" + squares_traveled = 0 + for quantity, color in quantities_and_colors: + fillcolor(color) + for each_square in range(quantity): + square(unit) + forward(unit) + squares_traveled = squares_traveled + 1 + return_to_baseline(unit, squares_traveled) + +def return_to_baseline(unit, count): + right(180) + penup() + forward(unit * count) + left(90) + forward(unit) + left(90) + pendown() + +drawing_size = 10 +penup() +goto(-200, 0) +pendown() + +data = [ + [[10, "white"]], + [[4, "white"], [2, "green"], [4, "white"]], + [[3, "white"], [1, "pink"], [1, "red"], [2, "green"], [3, "white"]], + [[1, "white"], [1, "green"], [1, "white"], [2, "red"], [2, "green"], [1, "white"], [1, "pink"], [1, "white"]], + [[1, "white"], [8, "green"], [1, "white"]], + [[3, "white"], [5, "green"], [2, "white"]], + [[3, "white"], [4, "green"], [3, "white"]], + [[2, "white"], [6, "brown"], [2, "white"]], + [[3, "white"], [4, "brown"], [3, "white"]], + [[3, "white"], [4, "brown"], [3, "white"]], + + +] + +for row in data: + row_of_squares(drawing_size, row) \ No newline at end of file diff --git a/poetry.lock b/poetry.lock index daa6053..99d9315 100644 --- a/poetry.lock +++ b/poetry.lock @@ -42,13 +42,13 @@ lxml = ["lxml"] [[package]] name = "certifi" -version = "2023.5.7" +version = "2023.7.22" description = "Python package for providing Mozilla's CA Bundle." optional = false python-versions = ">=3.6" files = [ - {file = "certifi-2023.5.7-py3-none-any.whl", hash = "sha256:c6c2e98f5c7869efca1f8916fed228dd91539f9f1b444c314c06eef02980c716"}, - {file = "certifi-2023.5.7.tar.gz", hash = "sha256:0f0d56dc5a6ad56fd4ba36484d6cc34451e1c6548c61daad8c320169f91eddc7"}, + {file = "certifi-2023.7.22-py3-none-any.whl", hash = "sha256:92d6037539857d8206b8f6ae472e8b77db8058fec5937a1ef3f54304089edbb9"}, + {file = "certifi-2023.7.22.tar.gz", hash = "sha256:539cc1d13202e33ca466e88b2807e29f4c13049d6d87031a3c110744495cb082"}, ] [[package]] @@ -159,13 +159,13 @@ files = [ [[package]] name = "furo" -version = "2023.5.20" +version = "2023.7.26" description = "A clean customisable Sphinx documentation theme." optional = false python-versions = ">=3.7" files = [ - {file = "furo-2023.5.20-py3-none-any.whl", hash = "sha256:594a8436ddfe0c071f3a9e9a209c314a219d8341f3f1af33fdf7c69544fab9e6"}, - {file = "furo-2023.5.20.tar.gz", hash = "sha256:40e09fa17c6f4b22419d122e933089226dcdb59747b5b6c79363089827dea16f"}, + {file = "furo-2023.7.26-py3-none-any.whl", hash = "sha256:1c7936929ec57c5ddecc7c85f07fa8b2ce536b5c89137764cca508be90e11efd"}, + {file = "furo-2023.7.26.tar.gz", hash = "sha256:257f63bab97aa85213a1fa24303837a3c3f30be92901ec732fea74290800f59e"}, ] [package.dependencies] @@ -342,13 +342,13 @@ files = [ [[package]] name = "sphinx" -version = "7.0.1" +version = "7.1.0" description = "Python documentation generator" optional = false python-versions = ">=3.8" files = [ - {file = "Sphinx-7.0.1.tar.gz", hash = "sha256:61e025f788c5977d9412587e733733a289e2b9fdc2fef8868ddfbfc4ccfe881d"}, - {file = "sphinx-7.0.1-py3-none-any.whl", hash = "sha256:60c5e04756c1709a98845ed27a2eed7a556af3993afb66e77fec48189f742616"}, + {file = "sphinx-7.1.0-py3-none-any.whl", hash = "sha256:9bdfb5a2b28351d4fdf40a63cd006dbad727f793b243e669fc950d7116c634af"}, + {file = "sphinx-7.1.0.tar.gz", hash = "sha256:8f336d0221c3beb23006b3164ed1d46db9cebcce9cb41cdb9c5ecd4bcc509be0"}, ] [package.dependencies] @@ -497,13 +497,13 @@ sphinx = ">=7.0.1,<8.0.0" [[package]] name = "urllib3" -version = "2.0.3" +version = "2.0.4" description = "HTTP library with thread-safe connection pooling, file post, and more." optional = false python-versions = ">=3.7" files = [ - {file = "urllib3-2.0.3-py3-none-any.whl", hash = "sha256:48e7fafa40319d358848e1bc6809b208340fafe2096f1725d05d67443d0483d1"}, - {file = "urllib3-2.0.3.tar.gz", hash = "sha256:bee28b5e56addb8226c96f7f13ac28cb4c301dd5ea8a6ca179c0b9835e032825"}, + {file = "urllib3-2.0.4-py3-none-any.whl", hash = "sha256:de7df1803967d2c2a98e4b11bb7d6bd9210474c46e8a0401514e3a42a75ebde4"}, + {file = "urllib3-2.0.4.tar.gz", hash = "sha256:8d22f86aae8ef5e410d4f539fde9ce6b2113a001bb4d189e0aed70642d602b11"}, ] [package.extras]