2019SZI-Projekt/Logic/TrashRecognition/TrashKnowledge.pl

45 lines
1.1 KiB
Perl
Raw Normal View History

2019-06-09 23:23:48 +02:00
:- use_module(library(date)).
% # Nazwy dni tygodnia
day(1, monday).
day(2, tuesday).
day(3, wednesday).
day(4, thursday).
day(5, friday).
day(6, saturday).
day(7, sunday).
% # Dni w które wywozimy dany rodzaj śmieci
collect_glass(X) :- X = monday ; X = saturday.
collect_plastic(X) :- X = tuesday ; X = friday ; X = sunday.
collect_metal(X) :- X = wednesday.
collect_paper(X) :- X = monday ; X = thursday ; X = saturday.
% # Zwraca dzisiejszą datę
current_date(D, M, Y) :-
get_time(TS),
stamp_date_time(TS, Date, -7200),
arg(1, Date, Y),
arg(2, Date, M),
arg(3, Date, D).
% # Zwraca nazwe dzisiejszego dnia tygodnia
current_day(N) :-
current_date(X, Y, Z),
day_of_the_week(date(Z, Y, X), D),
day(D, N).
% # X - rodzaj śmieci, Y - dzień tygodnia
% # Sprawdzenie, czy danego dnia wywozimy dany rodzaj śmieci
collect(X, Y) :-
X = glass, collect_glass(Y) ;
X = plastic, collect_plastic(Y) ;
X = metal, collect_metal(Y) ;
X = paper, collect_paper(Y).
% # X - rodzaj śmieci
% # Sprawdzenie czy dzisiaj je wywozimy
collect_trash(X) :-
current_day(N),
collect(X, N).