docs: def draw_circle(self, pos, radius, color, fillcolor=None):
          """
          Draw a circle with the given color on the screen and optionally fill it with fillcolor.
  
          :param pos: Center of the circle
          :param radius: Radius
          :param color: Color for border
          :param fillcolor: Color for infill
          :type pos: tuple
          :type radius: int
          :type color: tuple
          :type fillcolor: tuple
          """
          #TODO: This still produces rubbish but it's on a good way to success
          def dist(d, p, r):
              return abs(math.sqrt((p[0] - d[0])**2 + (p[1] - d[1])**2) - r)
  
          points = []
          for x in range(pos[0] - radius, pos[0] + radius):
              for y in range(pos[1] - radius, pos[1] + radius):
                  if 0 < x < self.width and 0 < y < self.height:
                      if dist((x, y), pos, radius) < 1.3:
                          points.append((x, y))
  
          # draw fill color
          if fillcolor:
              for point in points:
                  pass
          # draw outline
          for point in points:
              self.draw_dot(point, color)