def process_locations(source): with open(source, 'r') as f: lines = f.readlines() loc_ls = [] i = 0 while i < len(lines): lines[i] = lines[i].strip('\n') if lines[i] != '': loc_ls.append(lines[i].split(' > ')) i += 1 if not (loc_ls): print('The game cannot run without any rooms :(') quit() loc_name_ls = [] r_ls = [] i = 0 while i < len(loc_ls): loc_A, direct, loc_B = loc_ls[i][0].strip(), loc_ls[i][1].lower( ), loc_ls[i][2].strip() if loc_A in loc_name_ls: loc_a = r_ls[loc_name_ls.index(loc_A)] else: loc_a = Location(loc_A) loc_name_ls.append(loc_A) r_ls.append(loc_a) loc_a.add_other_loc(direct, loc_B) if not (loc_B in loc_name_ls): loc_b = Location(loc_B) loc_name_ls.append(loc_B) r_ls.append(loc_b) i += 1 #change the string into the instance of Location class i = 0 while i < len(r_ls): j = 0 while j < len(r_ls[i].other_loc): k = 0 while k < len(r_ls): if r_ls[k].name == r_ls[i].other_loc[j][1]: r_ls[i].other_loc[j][1] = r_ls[k] break k += 1 j += 1 i += 1 return r_ls