def main(): """ Solve riddle. """ house_number = 5 riddle = ProblemData(house_number, build_assertions()) for rounds in range(15): progress_made = False # have any changes (progress) been made this round? riddle, progress_made = deduce(riddle) if not progress_made: print("\t\tNo progress made in round #" + str(rounds + 1) + ". Breaking loop.") print("\t\tAssertions used: " + str(riddle.assertions_used.count(True)) + "/" + str(len(riddle.assertions_used))) break riddle.house_state() riddle.element_state()