Hong-Phuc Bui
2024-07-15 7a61c8a9830ee9407afbb413d2f215fabb77ee8e
kompositum
2 files modified
2 files added
77 ■■■■■ changed files
turtle-geo-inheritance/src/turtlegeo/PolygonDrawer.py 19 ●●●●● patch | view | raw | blame | history
turtle-geo-inheritance/src/turtlegeo/TtGeo.py 2 ●●●●● patch | view | raw | blame | history
turtle-geo-inheritance/src/turtlegeo/main.py 14 ●●●● patch | view | raw | blame | history
turtle-geo-inheritance/tests/PolygonDrawerTest.py 42 ●●●●● patch | view | raw | blame | history
turtle-geo-inheritance/src/turtlegeo/PolygonDrawer.py
New file
@@ -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)
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
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()
turtle-geo-inheritance/tests/PolygonDrawerTest.py
New file
@@ -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()