In [16]:
import forge
from puzzle.puzzlepedia import puzzlepedia
puzzle = puzzlepedia.parse("""
name in {Beth, Charles, David, Frank, Jessica, Karen, Taylor}
weapon in {bookend, candlestick, lamp, paperweight, owl, trivet, vase}
# Revenge == 2 per #5. Anger == 2 per #10?
motive in {anger*2, blackmail, fear, greed, revenge*2}
crime in {innocent*6, guilty}
#1: Setup.
#2: Setup.
#3: 1 killer.
#4:
for w in [lamp, paperweight, trivet]:
{w} != {anger, blackmail}
for w in [bookend, vase]:
{w} != {fear, greed}
for w in [candlestick, owl]:
w != revenge
#5:
David == revenge
Jessica == revenge
#6:
{Jessica} == {bookend, candlestick, owl, vase}
#7:
{Beth, Karen, Taylor} != {fear, greed, revenge}
#8:
if Beth.innocent:
lamp != greed
lamp != anger
lamp != revenge
Beth != owl
#9:
if Charles.innocent:
Charles != lamp
#10:
if David.innocent:
candlestick != anger
#11:
if Frank.innocent:
Frank != lamp
#12:
if Jessica.innocent:
Charles != trivet
Frank != trivet
#13:
if Karen.innocent:
revenge == bookend
#14:
if Taylor.innocent:
Karen != blackmail
Karen != owl
owl != blackmail
Frank != fear
""")
In [ ]: