def __describeComparativePosition__(description): descrip = Description() if len(description[0]) > 0: descrip.insideOf(description[0]) if len(description[1]) > 0: descrip.nearTo(description[1]) if len(description[2]) > 0: descrip.northOf(description[2]) if len(description[3]) > 0: descrip.southOf(description[3]) if len(description[4]) > 0: descrip.eastOf(description[4]) if len(description[5]) > 0: descrip.westOf(description[5]) return repr(descrip)
def printBuildingsByDirectionalPositions(village): northMatrix = village.describeBuildingsByRelativePositioning( Building.isNorthOf) southMatrix = village.describeBuildingsByRelativePositioning( Building.isSouthOf) eastMatrix = village.describeBuildingsByRelativePositioning( Building.isEastOf) westMatrix = village.describeBuildingsByRelativePositioning( Building.isWestOf) for building in village.getBuildings(): description = Description() if len(northMatrix[building]) > 0: description.northOf(northMatrix[building]) if len(southMatrix[building]) > 0: description.southOf(southMatrix[building]) if len(eastMatrix[building]) > 0: description.eastOf(eastMatrix[building]) if len(westMatrix[building]) > 0: description.westOf(westMatrix[building]) print(f'{building.name} {description}')