From 7a61c8a9830ee9407afbb413d2f215fabb77ee8e Mon Sep 17 00:00:00 2001 From: Hong-Phuc Bui <hong-phuc.bui@htwsaar.de> Date: Mon, 15 Jul 2024 15:25:01 +0200 Subject: [PATCH] kompositum --- turtle-geo-inheritance/src/turtlegeo/main.py | 14 +++++-- turtle-geo-inheritance/src/turtlegeo/TtGeo.py | 2 - turtle-geo-inheritance/src/turtlegeo/PolygonDrawer.py | 19 +++++++++ turtle-geo-inheritance/tests/PolygonDrawerTest.py | 42 +++++++++++++++++++++ 4 files changed, 71 insertions(+), 6 deletions(-) diff --git a/turtle-geo-inheritance/src/turtlegeo/PolygonDrawer.py b/turtle-geo-inheritance/src/turtlegeo/PolygonDrawer.py new file mode 100644 index 0000000..2481247 --- /dev/null +++ b/turtle-geo-inheritance/src/turtlegeo/PolygonDrawer.py @@ -0,0 +1,19 @@ +from turtle import Turtle + + +class PolygonDrawer: + def __init__(self, t: Turtle): + self.t = t + + def __regular_polygon(self, corner_number, length, x, y): + alpha = 360 / corner_number + head = self.t.heading() + self.t.teleport(x,y) + for i in range(0, corner_number): + self.t.forward(length) + self.t.left(alpha) + self.t.setheading(head) + pass + + def triangle(self, length, x, y): + self.__regular_polygon(3, length, x, y) \ No newline at end of file diff --git a/turtle-geo-inheritance/src/turtlegeo/TtGeo.py b/turtle-geo-inheritance/src/turtlegeo/TtGeo.py index 51a16a8..f60b649 100644 --- a/turtle-geo-inheritance/src/turtlegeo/TtGeo.py +++ b/turtle-geo-inheritance/src/turtlegeo/TtGeo.py @@ -15,7 +15,6 @@ self.setheading(head) pass - def __regular_polygon(self, corner_number, length, x, y): alpha = 360 / corner_number head = self.heading() @@ -25,7 +24,6 @@ self.setheading(head) pass - def pentagon(self, length, x, y): self.__regular_polygon(6, length, x, y) pass diff --git a/turtle-geo-inheritance/src/turtlegeo/main.py b/turtle-geo-inheritance/src/turtlegeo/main.py index 5c4fc29..4289075 100644 --- a/turtle-geo-inheritance/src/turtlegeo/main.py +++ b/turtle-geo-inheritance/src/turtlegeo/main.py @@ -1,9 +1,15 @@ +from turtlegeo.PolygonDrawer import PolygonDrawer from turtlegeo.TtGeo import TtGeo +from turtle import Turtle + +t = Turtle() def main(): - t = TtGeo() - t.triangle(50, 20, 25) - t.pentagon(60, 20, 25) - + #t = TtGeo() + #t.triangle(50, 20, 25) + #t.pentagon(60, 20, 25) + d = PolygonDrawer(t) + d.triangle(20, 0, 0) + input("Dummy") t.screen.mainloop() diff --git a/turtle-geo-inheritance/tests/PolygonDrawerTest.py b/turtle-geo-inheritance/tests/PolygonDrawerTest.py new file mode 100644 index 0000000..c9c8e2b --- /dev/null +++ b/turtle-geo-inheritance/tests/PolygonDrawerTest.py @@ -0,0 +1,42 @@ +import unittest + +from turtlegeo.PolygonDrawer import PolygonDrawer + +class MotionRedording: + def __init__(self): + self._motion = [] + self._heading = 60 + + def heading(self): + self._motion.append("heading") + return self._heading + + def teleport(self, x, y): + self._motion.append(f"teleport:{x},{y}") + + def forward(self, length): + pass + + def left(self, degree): + pass + + def setheading(self, head): + pass + + def motion(self): + return self._motion + + +class PolygonDrawerTestCase(unittest.TestCase): + def test_triangle(self): + dummyTurtle = MotionRedording() + t = PolygonDrawer(dummyTurtle) + t.triangle(30, 3, 4) + # print(dummyTurtle.motion()) + result = dummyTurtle.motion() + # Test kriterien gegenüber result fomulieren + pass + + +if __name__ == '__main__': + unittest.main() -- Gitblit v1.10.0-SNAPSHOT