Building a puzzle solver
Another interesting application of logic programming is in solving puzzles. We can specify the conditions of a puzzle and the program will come up with a solution. In this section, we will specify various bits and pieces of information about four people and ask for the missing piece of information.
In the logic program, we specify the puzzle as follows:
Steve has a blue car
The person who owns the cat lives in Canada
Matthew lives in USA
The person with the black car lives in Australia
Jack has a cat
Alfred lives in Australia
The person who has a dog lives in France
Who has a rabbit?
The goal is the find the person who has a rabbit. Here are the full details about the four people:
Create a new Python file and import the following packages:
from logpy import * from logpy.core import lall
Declare the variable people
:
# Declare the variable people = var()
Define all the rules using lall
. The first rule is that there are four people:
# Define the rules rules = lall( #...