#!/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