39 lines
989 B
Python
39 lines
989 B
Python
|
from typing import List, Tuple
|
||
|
from garbageCan import GarbageCan
|
||
|
|
||
|
class Node:
|
||
|
garbageCan: GarbageCan
|
||
|
id: int
|
||
|
|
||
|
def __init__(self, id: int, can: GarbageCan) -> None:
|
||
|
self.id = id
|
||
|
self.can = can
|
||
|
|
||
|
class City:
|
||
|
nodes: List[Node]
|
||
|
streets: List[Tuple[int, int]]
|
||
|
|
||
|
def __init__(self) -> None:
|
||
|
self.nodes = []
|
||
|
self.streets = []
|
||
|
|
||
|
def add_node(self, node: Node) -> None:
|
||
|
self.nodes.append(node)
|
||
|
|
||
|
def add_street(self, street: Tuple[int, int]) -> None:
|
||
|
firstFound: bool = False
|
||
|
secondFound: bool = False
|
||
|
|
||
|
for node in self.nodes:
|
||
|
if firstFound and secondFound:
|
||
|
break
|
||
|
if node.id == street.__getitem__(0):
|
||
|
firstFound = True
|
||
|
continue
|
||
|
if node.id == street.__getitem__(1):
|
||
|
secondFound = True
|
||
|
|
||
|
if not firstFound or not secondFound:
|
||
|
return
|
||
|
|
||
|
self.streets.append(street)
|