Advertisement
Adytzu04

SBC 11/11/14

Nov 11th, 2014
217
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.60 KB | None | 0 0
  1.  
  2. (deffacts stiva-initiala "AsezareInitiala"
  3. (este-bloc A)
  4. (este-bloc B)
  5. (este-bloc C)
  6. (este-bloc D)
  7. (este-bloc E)
  8. (este-bloc F)
  9. (pe A B)
  10. (pe B C)
  11. (pe C podea)
  12. (pe D E)
  13. (pe E F)
  14. (pe F podea)
  15. (pe nimic A)
  16. (pe nimic D)
  17. (scop muta C pe E)
  18. )
  19.  
  20. (defrule mutare-directa "aceasta regula intra in executie cand sursa si destinatia sunt libere si destinatia este un bloc"
  21.  
  22. ?scop <- (scop muta ?bloc1 pe ?bloc2)
  23.  
  24. (este-bloc ?bloc1)
  25. (este-bloc ?bloc2)
  26. (pe nimic ?bloc1)
  27.  
  28. ?stiva1 <- (pe nimic ?bloc2)
  29. ?stiva2 <- (pe ?bloc1 ?bloc3)
  30.  
  31. =>
  32.  
  33. (retract ?scop ?stiva1 ?stiva2)
  34. (assert (pe ?bloc1 ?bloc2) (pe nimic ?bloc3) )
  35. (printout t "blocul " ?bloc1 " este mutat pe blocul " ?bloc2 crlf )
  36. )
  37.  
  38. (defrule mutare-pe-podea "aceasta regula intra in executie cand un bloc trebuie mutat pe podea si blocul respectiv este liber"
  39.  
  40. ?scop <- (scop muta ?bloc1 pe podea)
  41.  
  42. (este-bloc ?bloc1)
  43. (pe nimic ?bloc1)
  44.  
  45. ?stiva <- (pe ?bloc1 ?bloc2)
  46.  
  47. =>
  48.  
  49. (retract ?scop ?stiva)
  50. (assert (pe ?bloc1 podea) (pe nimic ?bloc2) )
  51. (printout t " blocul " ?bloc1 " este mutat pe podea" crlf)
  52. )
  53.  
  54. (defrule eliberare-sursa "aceasta regula intra in executie cand un bloc trebuie mutat undeva si deasupra sa se afla alt bloc"
  55.  
  56. (scop muta ?bloc1 pe ?)
  57. (este-bloc ?bloc1)
  58. (pe ?bloc2 ?bloc1)
  59. (este-bloc ?bloc2)
  60.  
  61. =>
  62.  
  63. (assert (scop muta ?bloc2 pe podea) )
  64. )
  65.  
  66. (defrule eliberare-destinatie "intra in executie cand destinatia are un bloc deasupra"
  67.  
  68. (scop muta ? pe ?bloc2)
  69. (este-bloc ?bloc2)
  70. (pe ?bloc3 ?bloc2)
  71.  
  72. =>
  73.  
  74. (assert (scop muta ?bloc3 pe podea))
  75.  
  76. )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement