Building a puzzle solver
Another interesting application of logic programming is 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 a cat lives in Canada. Matthew lives in the USA.
- The person with a 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:
Figure 7: Puzzle solver input data
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
people ...