In [16]:
import forge
from puzzle.puzzlepedia import puzzlepedia
puzzle = puzzlepedia.parse("""
name in {Beth, Charles, David, Frank, Jessica, Karen}
costume in {Chatwoman, Wish, Stormy, Sparrow, Hunk, Man}
team in {1*3, 2*3}
# NB: Solutions are symmetric for team. Assign Beth arbitrarily.
Beth == 1
{Beth, Karen, Jessica} == {Chatwoman, Wish, Stormy}
{Charles, David, Frank} == {Sparrow, Hunk, Man}
def diff(a, b):
return all(a[t] != b[t] for t in team)
def same(a, b):
return all(a[t] == b[t] for t in team)
#1:
diff(Beth, Jessica)
#2:
diff(Charles, David)
#3:
diff(Chatwoman, Hunk)
#4:
diff(Sparrow, Wish)
#5:
diff(Beth, Man)
#6:
Jessica != Wish
#7:
if Beth == Stormy:
same(Beth, Karen)
#8:
if David == Hunk:
same(David, Frank)
#9:
if Frank == Sparrow:
Jessica != Chatwoman
#10:
if Frank != Sparrow:
Beth != Wish
""")
In [ ]: