Exemple #1
0
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