Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
22
Task/ABC-problem/Prolog/abc-problem-1.pro
Normal file
22
Task/ABC-problem/Prolog/abc-problem-1.pro
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
abc_problem :-
|
||||
maplist(abc_problem, ['', 'A', bark, bOOk, treAT, 'COmmon', sQuaD, 'CONFUSE']).
|
||||
|
||||
|
||||
abc_problem(Word) :-
|
||||
L = [[b,o],[x,k],[d,q],[c,p],[n,a],[g,t],[r,e],[t,g],[q,d],[f,s],
|
||||
[j,w],[h,u],[v,i],[a,n],[o,b],[e,r],[f,s],[l,y],[p,c],[z,m]],
|
||||
|
||||
( abc_problem(L, Word)
|
||||
-> format('~w OK~n', [Word])
|
||||
; format('~w KO~n', [Word])).
|
||||
|
||||
abc_problem(L, Word) :-
|
||||
atom_chars(Word, C_Words),
|
||||
maplist(downcase_atom, C_Words, D_Words),
|
||||
can_makeword(L, D_Words).
|
||||
|
||||
can_makeword(_L, []).
|
||||
|
||||
can_makeword(L, [H | T]) :-
|
||||
( select([H, _], L, L1); select([_, H], L, L1)),
|
||||
can_makeword(L1, T).
|
||||
18
Task/ABC-problem/Prolog/abc-problem-2.pro
Normal file
18
Task/ABC-problem/Prolog/abc-problem-2.pro
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
:- use_module([ library(chr),
|
||||
abathslib(protelog/composer) ]).
|
||||
|
||||
:- chr_constraint blocks, block/1, letter/1, word_built.
|
||||
|
||||
can_build_word(Word) :-
|
||||
maplist(block, [(b,o),(x,k),(d,q),(c,p),(n,a),(g,t),(r,e),(t,g),(q,d),(f,s),
|
||||
(j,w),(h,u),(v,i),(a,n),(o,b),(e,r),(f,s),(l,y),(p,c),(z,m)]),
|
||||
maplist(letter) <- string_chars <- string_lower(Word), %% using the `composer` module
|
||||
word_built,
|
||||
!.
|
||||
|
||||
'take letter and block' @ letter(L), block((A,B)) <=> L == A ; L == B | true.
|
||||
'fail if letters remain' @ word_built, letter(_) <=> false.
|
||||
|
||||
%% These rules, removing remaining constraints from the store, are just cosmetic:
|
||||
'clean up blocks' @ word_built \ block(_) <=> true.
|
||||
'word was built' @ word_built <=> true.
|
||||
14
Task/ABC-problem/Prolog/abc-problem-3.pro
Normal file
14
Task/ABC-problem/Prolog/abc-problem-3.pro
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
?- can_build_word("A").
|
||||
true.
|
||||
?- can_build_word("BARK").
|
||||
true.
|
||||
?- can_build_word("BOOK").
|
||||
false.
|
||||
?- can_build_word("TREAT").
|
||||
true.
|
||||
?- can_build_word("COMMON").
|
||||
false.
|
||||
?- can_build_word("SQUAD").
|
||||
true.
|
||||
?- can_build_word("CONFUSE").
|
||||
true.
|
||||
Loading…
Add table
Add a link
Reference in a new issue