From 95e2fe57f6e4639f6ae9f1fef368829d5090dbf6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ale=C5=A1=20Smodi=C5=A1?= Date: Tue, 18 Aug 2015 16:06:19 +0200 Subject: Exported all problems from the SQLite database into the new directory structure. --- .../problems/family_relations/ancestor_2/common.py | 13 +++++++++++ prolog/problems/family_relations/ancestor_2/en.py | 14 ++++++++++++ prolog/problems/family_relations/aunt_2/common.py | 17 ++++++++++++++ prolog/problems/family_relations/aunt_2/en.py | 13 +++++++++++ .../problems/family_relations/brother_2/common.py | 13 +++++++++++ prolog/problems/family_relations/brother_2/en.py | 13 +++++++++++ .../family_relations/connected_3/common.py | 16 +++++++++++++ prolog/problems/family_relations/connected_3/en.py | 14 ++++++++++++ .../problems/family_relations/cousin_2/common.py | 26 ++++++++++++++++++++++ prolog/problems/family_relations/cousin_2/en.py | 13 +++++++++++ .../family_relations/descendant_2/common.py | 13 +++++++++++ .../problems/family_relations/descendant_2/en.py | 14 ++++++++++++ .../family_relations/grandparent_2/common.py | 11 +++++++++ .../problems/family_relations/grandparent_2/en.py | 15 +++++++++++++ .../problems/family_relations/mother_2/common.py | 11 +++++++++ prolog/problems/family_relations/mother_2/en.py | 15 +++++++++++++ .../problems/family_relations/sister_2/common.py | 13 +++++++++++ prolog/problems/family_relations/sister_2/en.py | 12 ++++++++++ 18 files changed, 256 insertions(+) create mode 100644 prolog/problems/family_relations/ancestor_2/common.py create mode 100644 prolog/problems/family_relations/ancestor_2/en.py create mode 100644 prolog/problems/family_relations/aunt_2/common.py create mode 100644 prolog/problems/family_relations/aunt_2/en.py create mode 100644 prolog/problems/family_relations/brother_2/common.py create mode 100644 prolog/problems/family_relations/brother_2/en.py create mode 100644 prolog/problems/family_relations/connected_3/common.py create mode 100644 prolog/problems/family_relations/connected_3/en.py create mode 100644 prolog/problems/family_relations/cousin_2/common.py create mode 100644 prolog/problems/family_relations/cousin_2/en.py create mode 100644 prolog/problems/family_relations/descendant_2/common.py create mode 100644 prolog/problems/family_relations/descendant_2/en.py create mode 100644 prolog/problems/family_relations/grandparent_2/common.py create mode 100644 prolog/problems/family_relations/grandparent_2/en.py create mode 100644 prolog/problems/family_relations/mother_2/common.py create mode 100644 prolog/problems/family_relations/mother_2/en.py create mode 100644 prolog/problems/family_relations/sister_2/common.py create mode 100644 prolog/problems/family_relations/sister_2/en.py (limited to 'prolog/problems/family_relations') diff --git a/prolog/problems/family_relations/ancestor_2/common.py b/prolog/problems/family_relations/ancestor_2/common.py new file mode 100644 index 0000000..61472b6 --- /dev/null +++ b/prolog/problems/family_relations/ancestor_2/common.py @@ -0,0 +1,13 @@ +id = 100 +group = 'family_relations' +number = 7 +visible = True +facts = 'family_relations' + +solution = '''\ +ancestor(X, Y) :- + parent(X, Y). +ancestor(X, Y) :- + parent(X, Z), + ancestor(Z, Y). +''' diff --git a/prolog/problems/family_relations/ancestor_2/en.py b/prolog/problems/family_relations/ancestor_2/en.py new file mode 100644 index 0000000..4853e15 --- /dev/null +++ b/prolog/problems/family_relations/ancestor_2/en.py @@ -0,0 +1,14 @@ +id = 100 +name = 'ancestor/2' +slug = 'the ancestor relation' + +description = '''\ +

ancestor(X, Y): X is an ancestor (parent, grandparent,...) of Y.

+
+  ?- ancestor(patricia, X).
+    X = john ;
+    X = michael ;
+    X = michelle.
+
''' + +hint = {} diff --git a/prolog/problems/family_relations/aunt_2/common.py b/prolog/problems/family_relations/aunt_2/common.py new file mode 100644 index 0000000..78e98c5 --- /dev/null +++ b/prolog/problems/family_relations/aunt_2/common.py @@ -0,0 +1,17 @@ +id = 98 +group = 'family_relations' +number = 5 +visible = True +facts = 'family_relations' + +solution = '''\ +sister98(X, Y) :- + parent(P, X), + parent(P, Y), + female(X), + X \== Y. + +aunt(X, Y) :- + sister98(X, Z), + parent(Z, Y). +''' diff --git a/prolog/problems/family_relations/aunt_2/en.py b/prolog/problems/family_relations/aunt_2/en.py new file mode 100644 index 0000000..95780a1 --- /dev/null +++ b/prolog/problems/family_relations/aunt_2/en.py @@ -0,0 +1,13 @@ +id = 98 +name = 'aunt/2' +slug = 'the aunt relation' + +description = '''\ +

aunt(X, Y): X is an aunt of Y.

+
+  ?- aunt(sally, X).
+    X = vanessa ;
+    X = patricia.
+
''' + +hint = {} diff --git a/prolog/problems/family_relations/brother_2/common.py b/prolog/problems/family_relations/brother_2/common.py new file mode 100644 index 0000000..c339644 --- /dev/null +++ b/prolog/problems/family_relations/brother_2/common.py @@ -0,0 +1,13 @@ +id = 97 +group = 'family_relations' +number = 4 +visible = True +facts = 'family_relations' + +solution = '''\ +brother(X, Y) :- + parent(P, X), + parent(P, Y), + male(X), + X \== Y. +''' diff --git a/prolog/problems/family_relations/brother_2/en.py b/prolog/problems/family_relations/brother_2/en.py new file mode 100644 index 0000000..8cae8b8 --- /dev/null +++ b/prolog/problems/family_relations/brother_2/en.py @@ -0,0 +1,13 @@ +id = 97 +name = 'brother/2' +slug = 'the brother relation' + +description = '''\ +

brother(X, Y): X is a brother of Y.

+
+  ?- brother(jeffrey, X).
+    X = william ;
+    X = sally.
+
''' + +hint = {} diff --git a/prolog/problems/family_relations/connected_3/common.py b/prolog/problems/family_relations/connected_3/common.py new file mode 100644 index 0000000..9a68d36 --- /dev/null +++ b/prolog/problems/family_relations/connected_3/common.py @@ -0,0 +1,16 @@ +id = 102 +group = 'family_relations' +number = 9 +visible = True +facts = 'family_relations' + +solution = '''\ +connected(X, X, _). +connected(X, Y, N) :- + N > 0, + N1 is N - 1, + ( parent(X, Z) + ; + parent(Z, X) ), + connected(Z, Y, N1). +''' diff --git a/prolog/problems/family_relations/connected_3/en.py b/prolog/problems/family_relations/connected_3/en.py new file mode 100644 index 0000000..8fe1eed --- /dev/null +++ b/prolog/problems/family_relations/connected_3/en.py @@ -0,0 +1,14 @@ +id = 102 +name = 'connected/3' +slug = 'check if two people are connected in the family tree' + +description = '''\ +

connected(X, Y, N): X and Y are connected with a series of (no more than N) parent/child relations.

+
+  ?- connected(ana, morty, 10).
+    false.
+  ?- connected(ana, margaret, 10).
+    true.
+
''' + +hint = {} diff --git a/prolog/problems/family_relations/cousin_2/common.py b/prolog/problems/family_relations/cousin_2/common.py new file mode 100644 index 0000000..9285a80 --- /dev/null +++ b/prolog/problems/family_relations/cousin_2/common.py @@ -0,0 +1,26 @@ +id = 99 +group = 'family_relations' +number = 6 +visible = True +facts = 'family_relations' + +solution = '''\ +sister99(X, Y) :- + parent(P, X), + parent(P, Y), + female(X), + X \== Y. + +brother99(X, Y) :- + parent(P, X), + parent(P, Y), + male(X), + X \== Y. + +cousin(X, Y) :- + parent(PX, X), + parent(PY, Y), + ( brother99(PX, PY) + ; + sister99(PX, PY) ). +''' diff --git a/prolog/problems/family_relations/cousin_2/en.py b/prolog/problems/family_relations/cousin_2/en.py new file mode 100644 index 0000000..72faa60 --- /dev/null +++ b/prolog/problems/family_relations/cousin_2/en.py @@ -0,0 +1,13 @@ +id = 99 +name = 'cousin/2' +slug = 'the cousin relation' + +description = '''\ +

cousin(X, Y): X is a cousin (male or female) of Y.

+
+  ?- cousin(andrew, X).
+    X = vanessa ;
+    X = patricia.
+
''' + +hint = {} diff --git a/prolog/problems/family_relations/descendant_2/common.py b/prolog/problems/family_relations/descendant_2/common.py new file mode 100644 index 0000000..408b3c7 --- /dev/null +++ b/prolog/problems/family_relations/descendant_2/common.py @@ -0,0 +1,13 @@ +id = 101 +group = 'family_relations' +number = 8 +visible = True +facts = 'family_relations' + +solution = '''\ +descendant(X, Y) :- + parent(Y, X). +descendant(X, Y) :- + parent(Y, Z), + descendant(X, Z). +''' diff --git a/prolog/problems/family_relations/descendant_2/en.py b/prolog/problems/family_relations/descendant_2/en.py new file mode 100644 index 0000000..d4ac794 --- /dev/null +++ b/prolog/problems/family_relations/descendant_2/en.py @@ -0,0 +1,14 @@ +id = 101 +name = 'descendant/2' +slug = 'the descendant relation' + +description = '''\ +

descendant(X, Y): X is a descendant (child, grandchild,...) of Y.

+
+  ?- descendant(patricia, X).
+    X = william ;
+    X = tina ;
+    X = thomas.
+
''' + +hint = {} diff --git a/prolog/problems/family_relations/grandparent_2/common.py b/prolog/problems/family_relations/grandparent_2/common.py new file mode 100644 index 0000000..12b7c0d --- /dev/null +++ b/prolog/problems/family_relations/grandparent_2/common.py @@ -0,0 +1,11 @@ +id = 95 +group = 'family_relations' +number = 2 +visible = True +facts = 'family_relations' + +solution = '''\ +grandparent(X, Y) :- + parent(X, Z), + parent(Z, Y). +''' diff --git a/prolog/problems/family_relations/grandparent_2/en.py b/prolog/problems/family_relations/grandparent_2/en.py new file mode 100644 index 0000000..cdc9cec --- /dev/null +++ b/prolog/problems/family_relations/grandparent_2/en.py @@ -0,0 +1,15 @@ +id = 95 +name = 'grandparent/2' +slug = 'the grandparent relation' + +description = '''\ +

grandparent(P, C): P is a grandparent of C.

+
+  ?- grandparent(tina, X).
+    X = vanessa ;
+    X = patricia.
+  ?- grandparent(tina, vanessa).
+    true.
+
''' + +hint = {} diff --git a/prolog/problems/family_relations/mother_2/common.py b/prolog/problems/family_relations/mother_2/common.py new file mode 100644 index 0000000..6c75823 --- /dev/null +++ b/prolog/problems/family_relations/mother_2/common.py @@ -0,0 +1,11 @@ +id = 94 +group = 'family_relations' +number = 1 +visible = True +facts = 'family_relations' + +solution = '''\ +mother(X, Y) :- + parent(X, Y), + female(X). +''' diff --git a/prolog/problems/family_relations/mother_2/en.py b/prolog/problems/family_relations/mother_2/en.py new file mode 100644 index 0000000..9f1c098 --- /dev/null +++ b/prolog/problems/family_relations/mother_2/en.py @@ -0,0 +1,15 @@ +id = 94 +name = 'mother/2' +slug = 'the mother-child relation' + +description = '''\ +

mother(M, C): M is the mother of C.

+
+  ?- mother(tina, william).
+    true.
+  ?- mother(nevia, X).
+    X = luana ;
+    X = daniela.
+
''' + +hint = {} diff --git a/prolog/problems/family_relations/sister_2/common.py b/prolog/problems/family_relations/sister_2/common.py new file mode 100644 index 0000000..75a2b62 --- /dev/null +++ b/prolog/problems/family_relations/sister_2/common.py @@ -0,0 +1,13 @@ +id = 96 +group = 'family_relations' +number = 3 +visible = True +facts = 'family_relations' + +solution = '''\ +sister(X, Y) :- + parent(P, X), + parent(P, Y), + female(X), + X \== Y. +''' diff --git a/prolog/problems/family_relations/sister_2/en.py b/prolog/problems/family_relations/sister_2/en.py new file mode 100644 index 0000000..140b76f --- /dev/null +++ b/prolog/problems/family_relations/sister_2/en.py @@ -0,0 +1,12 @@ +id = 96 +name = 'sister/2' +slug = 'the sister relation' + +description = '''\ +

sister(X, Y): X is a sister of Y.

+
+  ?- sister(vanessa, X).
+    X = patricia.
+
''' + +hint = {} -- cgit v1.2.1