Skip to content
Snippets Groups Projects
Commit e069bc7f authored by tbuckworth's avatar tbuckworth
Browse files

Working solution!

parent 97aaed57
No related branches found
No related tags found
No related merge requests found
...@@ -33,13 +33,7 @@ class TaskTester(unittest.TestCase): ...@@ -33,13 +33,7 @@ class TaskTester(unittest.TestCase):
in_prolog = FOL2prolog(self.in_preds) in_prolog = FOL2prolog(self.in_preds)
with open('prolog/input_example_1.pl', 'w') as file: with open('prolog/input_example_1.pl', 'w') as file:
file.write(in_prolog) file.write(in_prolog)
# with open('prolog/solution_1.pl', 'rt') as file:
# prolog_program = file.read()
# full_program = in_prolog + prolog_program
#
# program = "[input_example_1].\n[solution_1].\n[background_knowledge].\n"
program = "[input_example_1], [solution_1], [background_knowledge], print_results, halt." program = "[input_example_1], [solution_1], [background_knowledge], print_results, halt."
out_prolog = run_prolog_program(program=program, curr_dir='./prolog') out_prolog = run_prolog_program(program=program, curr_dir='./prolog')
...@@ -51,9 +45,6 @@ class TaskTester(unittest.TestCase): ...@@ -51,9 +45,6 @@ class TaskTester(unittest.TestCase):
self.assertTrue((out_grid == self.output_grid).all()) self.assertTrue((out_grid == self.output_grid).all())
print("done")
if __name__ == '__main__': if __name__ == '__main__':
unittest.main() unittest.main()
% Students must define row/1, column/1 and output_colour/3.
output_with_default(Row, Column, Colour) :- output_with_default(Row, Column, Colour) :-
row(Row), row(Row),
column(Column), column(Column),
(output(Row, Column, Colour), Colour \= _) -> true; output_colour(Row, Column, Colour).
Colour = black.
output_with_default(Row, Column, black) :-
row(Row),
column(Column),
\+ output_colour(Row, Column, _).
print_results([]). print_results([]).
print_results([(R, C, Colour) | Rest]) :- print_results([(R, C, Colour) | Rest]) :-
...@@ -14,5 +19,5 @@ print_results([(R, C, Colour) | Rest]) :- ...@@ -14,5 +19,5 @@ print_results([(R, C, Colour) | Rest]) :-
print_results(Rest). print_results(Rest).
print_results :- print_results :-
setof((R, C, Colour), R^C^Colour^output_colour(R, C, Colour), Results), setof((R, C, Colour), R^C^Colour^output_with_default(R, C, Colour), Results),
print_results(Results). print_results(Results).
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment