def a_star_search(initial: Board, depth, admissable=False): BenchMark.start_the_time() try: _a_star_search(initial, depth, admissable) except Win: BenchMark.log_time() BenchMark.log_states_count() exit(0)
def breath_search(initial: Board, total_time: int): """ Breath First Search algorithm. Also shows steps, new states and total states. """ hash_table.states_checked_hash_table = {} BenchMark.start_the_time() Car.boardWidth = initial.board_width Car.boardHeight = initial.board_height # initial board (stage 0) path = [] path.append([initial]) hash_table.states_checked_hash_table[hash(initial)] = [initial] print("initial state: ") print(initial) while True: nextPath = [] for board in path[-1]: try: nextPath.extend(board.possible_next_boards()) except Win: BenchMark.states_count = countPath(path) BenchMark.log_steps_made() BenchMark.log_time() BenchMark.log_states_count() return # exit(0) path.append(nextPath) BenchMark.states_count = countPath(path) BenchMark.steps_made += 1 print("") BenchMark.log_steps_made() BenchMark.log_time() BenchMark.log_states_count() if len(nextPath) == 0: print("States space is explored, no solution found...") print("Try freezing less cars.") return print(time.time() - BenchMark.start_time) if (time.time() - BenchMark.start_time) > total_time: print("This game is too hard for me! Aborting ....") return