/*----- Goal -----*/ print_solution :- telling(OldOutput), tell('output.txt'), /* Find the solution */ house_solution( Blue_Nationality, Blue_Pet, Blue_Drink, Blue_Dessert, Green_Nationality, Green_Pet, Green_Drink, Green_Dessert, Ivory_Nationality, Ivory_Pet, Ivory_Drink, Ivory_Dessert, Red_Nationality, Red_Pet, Red_Drink, Red_Dessert, Yellow_Nationality, Yellow_Pet, Yellow_Drink, Yellow_Dessert ), /* Write solution */ write('The '), write(Blue_Nationality), write(' lived in the blue house with his '), write(Blue_Pet), write_ln(','), write(' drinking '), write(Blue_Drink), write(' and eating '), write(Blue_Dessert), write_ln('.'), write('The '), write(Green_Nationality), write(' lived in the green house with his '), write(Green_Pet), write_ln(','), write(' drinking '), write(Green_Drink), write(' and eating '), write(Green_Dessert), write_ln('.'), write('The '), write(Ivory_Nationality), write(' lived in the ivory house with his '), write(Ivory_Pet), write_ln(','), write(' drinking '), write(Ivory_Drink), write(' and eating '), write(Ivory_Dessert), write_ln('.'), write('The '), write(Red_Nationality), write(' lived in the red house with his '), write(Red_Pet), write_ln(','), write(' drinking '), write(Red_Drink), write(' and eating '), write(Red_Dessert), write_ln('.'), write('The '), write(Yellow_Nationality), write(' lived in the yellow house with his '), write(Yellow_Pet), write_ln(','), write(' drinking '), write(Yellow_Drink), write(' and eating '), write(Yellow_Dessert), write_ln('.'), told, tell(OldOutput). ?- print_solution, halt; halt. /* Run it */