#!/usr/bin/env python current = 0 top = 0 three = 1 four = 1 five = 1 six = 1 seven = 1 eight = 1 count=0 num = [8, 7, 6, 5, 4, 3, 2, 1] names=['Kaitlin', 'Justin', 'Jason', 'Lauren', 'Stefen', 'Becky', 'Sara', 'Leo'] people = { 'Kaitlin': { 'love': ('Jason'), 'friend': ('Justin, Lauren') }, 'Justin': { 'friend': ('Jason', 'Kaitlin', 'Leo') }, 'Jason': { 'love': ('Kaitlin'), 'friend': ('Lauren', 'Sara', 'Leo', 'Justin') # 'hate': ('Becky') }, 'Lauren': { 'love': ('Stefen'), 'friend': ('Becky', 'Sara', 'Leo'), 'hate': ('Kaitlin') }, 'Stefen': { 'love': ('Lauren'), 'friend': ('Sara','Leo') }, 'Becky': { 'friend': ('Sara', 'Lauren'), 'crush': ('Justin') }, 'Sara': { 'love': ('Leo'), 'friend': ('Becky', 'Lauren', 'Stefen') }, 'Leo': { 'love': ('Sara'), 'friend': ('Jason', 'Lauren', 'Stefen', 'Justin'), 'crush': ('Kaitlin') } } def score(seat): value=0 #check right side if seat != 8: if names[num[seat-1]-1] in people[names[num[seat]-1]].get('love', 'No'): value += 3 if names[num[seat-1]-1] in people[names[num[seat]-1]].get('friend', 'No'): value += 2 if names[num[seat-1]-1] in people[names[num[seat]-1]].get('crush', 'No'): value += 1 if names[num[seat-1]-1] in people[names[num[seat]-1]].get('hate', 'No'): value += -2 #check left side if seat != 0: if names[num[seat-1]-1] in people[names[num[seat-2]-1]].get('love', 'No'): value += 3 if names[num[seat-1]-1] in people[names[num[seat-2]-1]].get('friend', 'No'): value += 2 if names[num[seat-1]-1] in people[names[num[seat-2]-1]].get('crush', 'No'): value += 1 if names[num[seat-1]-1] in people[names[num[seat-2]-1]].get('hate', 'No'): value += -2 return value while True: current=0 for i in range(1, 9): current += score(i) if current > top: top = current best = num[:] print top print best count += 1 if count >= 40320: break ##wow this took too much effort and yes I know resetting variables like that is sloppy if eight == 5040: tmp = num[-8:] tmp.reverse() num[-8:] = tmp eight = 1 seven = 1 six = 1 five = 1 four = 1 three = 1 else: eight += 1 if seven == 720: tmp = num[-7:] tmp.reverse() num[-7:] = tmp seven = 1 six = 1 five = 1 four = 1 three = 1 else: seven += 1 if six == 120: tmp = num[-6:] tmp.reverse() num[-6:] = tmp six = 1 five = 1 four = 1 three = 1 else: six += 1 if five == 24: tmp = num[-5:] tmp.reverse() num[-5:] = tmp five = 1 four = 1 three = 1 else: five += 1 if four == 6: tmp = num[-4:] tmp.reverse() num[-4:] = tmp four = 1 three = 1 else: four += 1 if three == 2: tmp = num[-3:] tmp.reverse() num[-3:] = tmp three = 1 else: three += 1 tmp = num[-2:] tmp.reverse() num[-2:] = tmp