In [32]:
import forge
from puzzle.puzzlepedia import puzzlepedia
puzzle = puzzlepedia.parse("""
name in {Beth, Charles, David, Frank, Jessica, Karen, Taylor}
design in {diamonds_dots*1, diamonds_stars*1, diamonds_triangles*1, dots_stars*1, dots_triangles*1, stars_triangles*2}
shots in {0, 1*2, 2*2, 3*2}
#1: In setup.
#2:
all(Charles[d] == Taylor[d] for d in design)
#3:
triangles = {diamonds_triangles, dots_triangles, stars_triangles}
# NB: This group contains a duplicate.
sum(t[1] for t in triangles) == 1
sum(t[2] for t in triangles) == 2
sum(t[3] for t in triangles) == 1
#4:
dots = {diamonds_dots, dots_stars, dots_triangles}
# NB: This group does not have the duplicate.
sum(t[0] for t in dots) == 1
sum(t[2] for t in dots) == 1
sum(t[3] for t in dots) == 1
#5:
{Beth, Karen} == {diamonds_stars, dots_stars, stars_triangles}
#6:
# NB: Satisfying this means stars have a duplicate.
for m in [diamonds_dots, diamonds_triangles, dots_triangles]:
m[1] == 0
m[3] == 0
#7:
Beth.shots > Charles.shots > 0
Jessica.shots > Karen.shots > 0
#8:
{David} != {diamonds_dots, diamonds_stars, diamonds_triangles}
""")
In [ ]: