test
unknown
python
2 years ago
1.9 kB
11
Indexable
class Point:
def __init__(self, x, y):
self.x = x
self.y = y
def __str__(self) -> str:
return f"{self.x},{self.y}"
def confina(self, other_point):
if isinstance(other_point, Point):
if self.x-other_point.x == 1 or self.y-other_point.y == 1:
print(f"point {self} share border with point {other_point}")
return True
else:
print(f"{self}-{other_point} don't share border")
return False
else:
raise TypeError("Wrong Object")
def count_neighboring(self, points_list):
count = 0
for point in points_list:
if self.confina(point):
count += 1
print(f"{self} has {count} neighboring point")
return count
def idoneo(self, points_list):
conta_conf = self.count_neighboring(points_list)
return True if conta_conf==1 else False
def main():
marked_points = []
steps = 4
count = 0
p = Point(0,0)
marked_points.append(p)
x, y = -1, -1
for i in range(steps):
for x in range(-i,i+2):
for y in range(-i, i+2):
if x != y:
p = Point(x,y)
print(p)
if p not in marked_points:
if p.idoneo(marked_points):
count+=1
marked_points.append(p)
# else:
# print(f"punto {p} non idoneo")
else:
print(f"Point {p} already marked")
for p in marked_points:
print(f"Marked point: {p} ")
print(f"Total marked point: {len(marked_points)}")Editor is loading...
Leave a Comment