]> git.llucax.com Git - z.facultad/75.68/celdas.git/blob - trunk/src/breve/Laberinto.tz
El sensor ahora devuelve valor binario (0 si no tiene nada adelante, 1 si sí tiene).
[z.facultad/75.68/celdas.git] / trunk / src / breve / Laberinto.tz
1 @use Control.\r
2 @use Stationary.\r
3 @use Celdas.\r
4 \r
5 @define altoPared  5.\r
6 @define posYPared 25.\r
7 @define seccion   20.\r
8 @define distanciaTotalX    240.\r
9 @define distanciaTotalZ    240.\r
10 \r
11 Controller myControl.\r
12 \r
13 \r
14 CeldasObstacle  : Wall{\r
15 \r
16 \r
17      +to Create to-posX posX = 0 (float) to-posY posY = 2.5 (float) to-posZ posZ = 0 (float) to-widthX widthX = 5(float) to-widthZ widthZ = 5(float):\r
18     \r
19         if(widthX>widthZ):\r
20             {\r
21                 large=widthX.\r
22                 direction=(1,0,0).\r
23             }\r
24         else \r
25         {\r
26                 large=widthZ.\r
27                 direction=(0,0,1).\r
28          }       \r
29         self register with-shape (new Cube init-with size (widthX,altoPared,widthZ)) at-location (posX,posY,posZ).\r
30         self set-color to (0,1,0).\r
31 \r
32 \r
33 }\r
34 \r
35 \r
36 CeldasObstacle  : Labyrinth{\r
37 \r
38  +to init:\r
39     wall(object).\r
40     \r
41     wall=new Wall.\r
42     #Contorno del laberinto\r
43     wall  Create to-widthX 11.25*seccion.\r
44     wall=new Wall.\r
45     wall  Create to-posX -5.5*seccion to-widthX 5 to-widthZ 11.25*seccion to-posZ 5.5*seccion .\r
46     wall=new Wall.\r
47     wall  Create to-posX -5.5*seccion to-widthX 5 to-widthZ 11.25*seccion to-posZ 5.5*seccion  to-posX 5.5*seccion .\r
48     wall=new Wall.\r
49     wall  Create to-widthX 5.25*seccion to-posZ 11*seccion to-posX -3*seccion.\r
50     wall=new Wall.\r
51     wall  Create to-widthX 5.25*seccion to-posZ 11*seccion to-posX  3*seccion.\r
52     #fin contorno\r
53  \r
54     #Paredesd verticales (en el diagrama)\r
55     wall=new Wall.\r
56     wall  Create to-widthZ seccion   to-widthX 5 to-posZ 10.5*seccion to-posX 0.5*seccion.    \r
57     wall=new Wall.\r
58     wall  Create to-widthZ 2*seccion to-widthX 5 to-posZ 10*seccion to-posX -1.5*seccion.\r
59     wall=new Wall.\r
60     wall  Create to-widthZ seccion   to-widthX 5 to-posZ 10.5*seccion to-posX -3.5*seccion.\r
61     \r
62     wall=new Wall.\r
63     wall  Create to-widthZ 2*seccion to-widthX 5 to-posZ 9*seccion to-posX -0.5*seccion.\r
64     wall=new Wall.\r
65     wall  Create to-widthZ seccion to-widthX 5 to-posZ 9.5*seccion to-posX -4.5*seccion.\r
66     wall=new Wall.\r
67     wall  Create to-widthZ 3*seccion to-widthX 5 to-posZ 8.5*seccion to-posX -2.5*seccion.\r
68     wall=new Wall.\r
69     wall  Create to-widthZ 3*seccion to-widthX 5 to-posZ 8.5*seccion to-posX 3.5*seccion.\r
70     \r
71     wall=new Wall.    \r
72     wall  Create to-widthZ 5*seccion to-widthX 5 to-posZ 5.5*seccion to-posX -4.5*seccion.\r
73     wall=new Wall.\r
74     wall  Create to-widthZ 6*seccion to-widthX 5 to-posZ 4*seccion to-posX -3.5*seccion.\r
75     wall=new Wall.\r
76     wall  Create to-widthZ 3*seccion to-widthX 5 to-posZ 4.5*seccion to-posX -2.5*seccion.\r
77     wall=new Wall.\r
78     wall  Create to-widthZ 3*seccion to-widthX 5 to-posZ 5.5*seccion to-posX -1.5*seccion.\r
79     \r
80     wall=new Wall.\r
81     wall  Create to-widthZ seccion to-widthX 5 to-posZ 2.5*seccion to-posX 0.5*seccion.\r
82     wall=new Wall.\r
83     wall  Create to-widthZ seccion to-widthX 5 to-posZ 1.5*seccion to-posX 1.5*seccion.\r
84     wall=new Wall.\r
85     wall  Create to-widthZ seccion to-widthX 5 to-posZ 4.5*seccion to-posX 1.5*seccion.\r
86     wall=new Wall.\r
87     wall  Create to-widthZ seccion to-widthX 5 to-posZ 6.5*seccion to-posX 1.5*seccion.\r
88     wall=new Wall.\r
89     wall  Create to-widthZ seccion to-widthX 5 to-posZ 2.5*seccion to-posX -1.5*seccion. \r
90 \r
91     wall=new Wall.\r
92     wall  Create to-widthZ seccion to-widthX 5 to-posZ 1.5*seccion to-posX -2.5*seccion.\r
93 \r
94     wall=new Wall.\r
95     wall  Create to-widthZ seccion to-widthX 5 to-posZ 3.5*seccion to-posX -0.5*seccion.\r
96     wall=new Wall.\r
97     wall  Create to-widthZ seccion to-widthX 5 to-posZ 3.5*seccion to-posX 2.5*seccion.\r
98 \r
99     wall=new Wall.\r
100     wall  Create to-widthZ 2*seccion to-widthX 5 to-posZ 7*seccion to-posX 2.5*seccion.\r
101 \r
102     wall=new Wall.\r
103     wall  Create to-widthZ seccion to-widthX 5 to-posZ 4.5*seccion to-posX 3.5*seccion.\r
104 \r
105     wall=new Wall.\r
106     wall  Create to-widthZ 6*seccion to-widthX 5 to-posZ 6*seccion to-posX 4.5*seccion.    \r
107 \r
108     wall=new Wall.\r
109     #Paredes horizontales (en el diagrama)\r
110     wall  Create to-widthZ 5 to-widthX 2.25*seccion to-posZ 10*seccion to-posX 1.5*seccion.    #1\r
111 \r
112     wall=new Wall.\r
113     wall  Create to-widthZ 5 to-widthX 2.25*seccion to-posZ 10*seccion to-posX 4.5*seccion.    #2\r
114 \r
115     \r
116     wall=new Wall.\r
117     wall  Create to-widthZ 5 to-widthX 2.25*seccion to-posZ 9*seccion to-posX -3.5*seccion.    #3\r
118 \r
119     wall=new Wall.\r
120     wall  Create to-widthZ 5 to-widthX 1.25*seccion to-posZ 8*seccion to-posX -4*seccion.      #4\r
121 \r
122     wall=new Wall.\r
123     wall  Create to-widthZ 5 to-widthX 5.25*seccion to-posZ 8*seccion to-posX 0.               #5\r
124 \r
125     \r
126     wall=new Wall.\r
127     wall  Create to-widthZ 5 to-widthX 3*seccion to-posZ 9*seccion to-posX 2*seccion.          #6\r
128 \r
129     \r
130     wall=new Wall.\r
131     wall  Create to-widthZ 5 to-widthX 1.25*seccion to-posZ 7*seccion to-posX -3*seccion.      #7\r
132 \r
133     wall=new Wall.\r
134     wall  Create to-widthZ 5 to-widthX 3.25*seccion to-posZ 7*seccion to-posX 0.                  #8\r
135 \r
136     wall=new Wall.\r
137     wall  Create to-widthZ 5 to-widthX 2.25*seccion to-posZ 6*seccion to-posX 3.5*seccion.        #9\r
138 \r
139     wall=new Wall.\r
140     wall  Create to-widthZ 5 to-widthX 1.25*seccion to-posZ 6*seccion to-posX -2*seccion.         #10    \r
141 \r
142     wall=new Wall.\r
143     wall  Create to-widthZ 5 to-widthX 3.25*seccion to-posZ 4*seccion to-posX 0.               #11\r
144 \r
145     wall=new Wall.\r
146     wall  Create to-widthZ 5 to-widthX 2.25*seccion to-posZ 5*seccion to-posX 2.5*seccion.     #12\r
147 \r
148 \r
149     wall=new Wall.        \r
150     wall  Create to-widthZ 5 to-widthX 1.25*seccion to-posZ 3*seccion to-posX -4*seccion.      #13\r
151 \r
152     wall=new Wall.\r
153     wall  Create to-widthZ 5 to-widthX 1.25*seccion to-posZ 3*seccion to-posX -2*seccion.      #14\r
154 \r
155     wall=new Wall.\r
156     wall  Create to-widthZ 5 to-widthX 4.25*seccion to-posZ 3*seccion to-posX 2.5*seccion.     #15\r
157 \r
158     #wall  Create to-widthZ 5 to-widthX 4*seccion to-posZ 3*seccion to-posX 2.5*seccion.     #15\r
159 \r
160     wall=new Wall.    \r
161     wall  Create to-widthZ 5 to-widthX   seccion to-posZ 2*seccion to-posX -5*seccion.      #16\r
162     \r
163     wall=new Wall.\r
164     wall  Create to-widthZ 5 to-widthX 2.25*seccion to-posZ 2*seccion to-posX -0.5*seccion.    #17\r
165     \r
166     wall=new Wall.\r
167     wall  Create to-widthZ 5 to-widthX 4.25*seccion to-posZ 2*seccion to-posX  3.5*seccion.    #18\r
168     \r
169     wall=new Wall.\r
170     wall  Create to-widthZ 5 to-widthX 9*seccion to-posZ 1*seccion to-posX  0.              #19\r
171 \r
172 }\r
173 \r
174 \r
175 Control: myControl{\r
176 + variables:\r
177     agent(object).\r
178     pared(object).\r
179     labe(object). \r
180     \r
181     sensor (object).\r
182     vehicle (object).\r
183  \r
184 + to init:\r
185     self point-camera at (0,0,0) from (200,200,200).\r
186     new Floor.\r
187 \r
188     labe = new Labyrinth.\r
189     vehicle = new CeldasVehicle.\r
190     self watch item vehicle.\r
191 \r
192     vehicle move to (0, 0, 10).\r
193 \r
194 +to iterate:\r
195     super iterate.\r
196 \r
197 }\r
198 \r