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