-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathstash.txt
91 lines (87 loc) · 3.94 KB
/
stash.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
; (deffunction generacion-soluciones::monta-menus-comida(?minP ?maxP ?estilo ?alc)
; (bind $?primeros (filtra-ordinal (platos-por-estilo ?estilo) "Primero" ))
; (bind $?segundos (filtra-ordinal (platos-por-estilo ?estilo) "Segundo" ))
; (bind $?postres (filtra-ordinal (platos-por-estilo ?estilo) "Postre" ))
; ;TODO cambiar variable abstracta
; (printout t "bebida alcoholica:" ?alc crlf)
; (bind $?bebidas (find-all-instances ((?a Bebida))
; ;TODO cambiar para la variable abstracta
; (if (eq ?alc "si") then (= 1 1) else (and (neq (str-cat (send ?a get-TipoBebida)) "Cerveza" ) (neq (str-cat (send ?a get-TipoBebida)) "Vino")) )))
;
; ;TODO hacer un buble diferente para si es bebida por plato o unica
; (loop-for-count (?i 1 (length ?primeros))
; (loop-for-count (?j 1 (length ?segundos))
; (loop-for-count (?k 1 (length ?postres))
; (loop-for-count (?b 1 (length ?bebidas))
; (bind ?ins
; (make-instance (gensym) of Menu
; (Primero (nth$ ?i ?primeros))
; (Segundo (nth$ ?j ?segundos))
; (Postre (nth$ ?k ?postres) )
; (BebidaUnica (nth$ ?b ?bebidas))
; )
; )
; (send ?ins calculaPrecio)
; )
; )
; )
; )
;
; (bind $?menus
; (find-all-instances ((?m Menu))
; (and
; (and (>= (send ?m get-Precio) ?minP) (<= (send ?m get-Precio) ?maxP))
; (neq (send (send ?m get-Primero) get-Nombre) (send (send ?m get-Segundo) get-Nombre) )
; )
; )
; )
; ;marc: a mi el foreach no mel troba (soposo que per versió de clips. amb progn fa el mateix)
; (progn$ (?r $?menus)
; (printout t (send (send ?r get-Primero) get-Nombre) crlf)
; (printout t (send (send ?r get-Segundo) get-Nombre) crlf)
; (printout t (send (send ?r get-Postre) get-Nombre) crlf )
; (printout t (send (send ?r get-BebidaUnica) get-Nombre) crlf )
;
; (printout t (send ?r get-Precio) crlf)
; (printout t "_________________" crlf)
; )
; (return ?menus)
; )
; ;TODO no mirar a restricciones sino a abstract-info
; (defrule generacion-soluciones::buscar-instancias "Busca instancias de platos"
; ?restr <- (restricciones (min ?minimo) (max ?maximo) (estilo ?estilo) (alcohol ?alc))
; (not (lista-platos))
; =>
;
; (bind $?m (monta-menus-comida ?minimo ?maximo ?estilo ?alc))
;
; (bind ?style ?estilo)
; (bind ?ordi "Primero")
; (bind $?platosFilt (filtra-ordinal (platos-por-estilo ?style) ?ordi ))
; (printout t "platos " ?style ", " ?ordi crlf)
; (progn$ (?var $?platosFilt)
; (printout t "**** " (send ?var get-Nombre) crlf)) ;TESTING
;(bind ?tercio (/ (- ?maximo ?minimo ) 3))
; (loop-for-count (?i 1 3) do
;
; (bind ?min-precio (+ ?minimo (* ?tercio (- ?i 1))))
; (bind ?max-precio (+ ?minimo (* ?tercio ?i)))
;
; (bind $?primeros (find-all-instances ((?a Plato)) (and (eq (str-cat (nth$ 1 (send ?a get-Ordinal))) "Primero") (eq (str-cat (send ?a get-Estilo)) ?estilo)) ))
; (bind $?segundos (find-all-instances ((?a Plato)) (and (eq (str-cat (nth$ 1 (send ?a get-Ordinal))) "Segundo") (eq (str-cat (send ?a get-Estilo)) ?estilo)) ))
; (bind $?postres (find-all-instances ((?a Plato)) (and (eq (str-cat (nth$ 1 (send ?a get-Ordinal))) "Postre") (eq (str-cat (send ?a get-Estilo)) ?estilo)) ))
; (bind $?bebidas (find-all-instances ((?a Bebida)) TRUE))
;
; (bind ?primero (random-slot ?primeros))
; (bind ?segundo (random-slot ?segundos))
; (bind ?postre (random-slot ?postres))
; (bind ?bebida (random-slot ?bebidas))
;
; (printout t "Primer plato: " (send ?primero imprimir))
; (printout t "Segundo plato: " (send ?segundo imprimir))
; (printout t "Postre: " (send ?postre imprimir))
; (printout t "Para beber: " (send ?bebida get-Nombre) " " (send ?bebida get-Precio) "€" crlf)
; (printout t "Precio total: " (+ (+ (send ?primero get-Precio) (send ?segundo get-Precio)) (+ (send ?postre get-Precio) (send ?bebida get-Precio))) "€" crlf)
; (printout t "--------------------" crlf)
; )
)