documentl4
DESCRIPTION
l4TRANSCRIPT
-
1L4_p1(deffacts BLOCURI-SI-STRUCTURA
(pe nimic A)(pe nimic D)(pe A B)(pe B C)(pe D E)(pe E F)(pe F podea)(pe C podea)(este-bloc A)(este-bloc B)(este-bloc C)(este-bloc D)(este-bloc E)(este-bloc F)
)
(deffacts SCOPURI "aici rulam programul, in functie de ce scopvrem"
;(scop muta B pe D) ; merge!;(scop muta B pe A) ; merge!;(scop muta nimic pe F) ; merge!;(scop muta C pe podea) ; merge!(scop muta C pe D) ; vezi L4_P2.clp
pentru ca mutarea sa fie 100% corecta ;-))
(defrule MUTARE-DIRECTA?scop (assert (scop muta ?bloc_deasupra_sursei pe podea))
)
(defrule ELIBERARE-DESTINATIE(scop muta ? pe ?destinatie)(este-bloc ?destinatie)(pe ?bloc ?destinatie)(este-bloc ?bloc)=>(assert (scop muta ?bloc pe podea))
)
L4_p2
(deffacts SCOPURI "aici rulam programul, in functie de ce scopvrem"
;(scop muta B pe D) ; merge!;(scop muta B pe A) ; merge!;(scop muta nimic pe F) ; merge!;(scop muta C pe podea) ; merge!;(scop muta C pe D) ; merge!;(scop muta B pe E) ; merge!;(scop muta nimic pe C) ; merge!;(scop muta nimic pe podea) ; nu merge, dar asa e si
normal :);(scop muta F pe E) ; merge!;(scop muta F pe C) ; merge!(scop muta A pe D)
)
(defrule MUTARE-DIRECTA?scop
-
2(printout t "-----------------------------------------------------------" crlf crlf))
(defrule MUTARE-PE-PODEA?scop (assert (scop muta ?bloc_deasupra_sursei pe podea))
)
(defrule ELIBERARE-DESTINATIE(scop muta ? pe ?destinatie)(este-bloc ?destinatie)(pe ?bloc ?destinatie)(este-bloc ?bloc)=>(assert (scop muta ?bloc pe podea))
)
L4_p3
(deffacts STIVA(stiva 5 -4 0.02 wow);(stiva 1 5 9)
)
(deffacts SCOPURI(push -8);(pop)
)
(defrule INTRODUCERE-VALOARE?adresa
-
3(defrule SCOATE-DIN-COADA-CU-MAI-MULTE-ELEMENTE?a (assert (scop muta ?bds pe podea))
)
(defrule ELIBERARE-DESTINATIE(scop muta ? pe ?bd)(stiva $?r1 ?bdd ?bd $?r2)=>(assert (scop muta ?bdd pe podea))
)
L4_p7MERGE PERFECT
(deffacts STARE-INITIALA(stiva A B C D)(stiva E F G)
)
(deffacts SCOPURI;(scop muta C pe G) ; merge;(scop muta G pe A) ; merge;(scop muta G pe D) ; merge;(scop muta G pe B) ; merge;(scop muta G pe C) ; merge;(scop muta F pe A) ; merge;(scop muta F pe D) ; merge;(scop muta F pe B) ; merge;(scop muta F pe C) ; merge;(scop muta E pe A) ; merge;(scop muta E pe B) ; merge;(scop muta E pe C) ; merge;(scop muta E pe D) ; merge;(scop muta D pe podea) ; merge;(scop muta A pe podea) ; merge;(scop muta B pe podea) ; merge;(scop muta C pe podea) ; merge(scop muta F pe podea)
)
- 4(defrule MUTARE-DIRECTA?scop