]> git.llucax.com Git - z.facultad/75.68/celdas.git/blob - trunk/src/breve/Laberinto.tz
ahora gira :)
[z.facultad/75.68/celdas.git] / trunk / src / breve / Laberinto.tz
1 @use Control.
2 @use Stationary.
3 @use Celdas.
4
5 @define altoPared  5.
6 @define posYPared 25.
7 @define seccion   20.
8 @define distanciaTotalX    240.
9 @define distanciaTotalZ    240.
10
11 Controller myControl.
12
13
14 CeldasObstacle  : Wall{
15
16     +to Create to-posX posX = 0 (float) to-posY posY = 2.5 (float) to-posZ posZ = 0 (float) to-widthX widthX = 120(float) to-widthZ widthZ = 5(float):
17     
18         self register with-shape (new Cube init-with size (widthX,altoPared,widthZ)) at-location (posX,posY,posZ).
19         self set-color to (0,1,0).
20
21 }
22
23
24 CeldasObstacle  : Labyrinth{
25
26  +to init:
27     wall (object).
28
29     wall=new Wall.
30     
31     #Contorno del laberinto
32     wall  Create to-widthX 11.25*seccion.
33     wall  Create to-posX -5.5*seccion to-widthX 5 to-widthZ 11.25*seccion to-posZ 5.5*seccion .
34     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 .
35     
36     wall  Create to-widthX 5.25*seccion to-posZ 11*seccion to-posX -3*seccion.
37     wall  Create to-widthX 5.25*seccion to-posZ 11*seccion to-posX  3*seccion.
38     #fin contorno
39  
40     #Paredesd verticales (en el diagrama)
41     wall  Create to-widthZ seccion   to-widthX 5 to-posZ 10.5*seccion to-posX 0.5*seccion.
42     wall  Create to-widthZ 2*seccion to-widthX 5 to-posZ 10*seccion to-posX -1.5*seccion.
43     wall  Create to-widthZ seccion   to-widthX 5 to-posZ 10.5*seccion to-posX -3.5*seccion.
44     
45     wall  Create to-widthZ 2*seccion to-widthX 5 to-posZ 9*seccion to-posX -0.5*seccion.
46     wall  Create to-widthZ seccion to-widthX 5 to-posZ 9.5*seccion to-posX -4.5*seccion.
47     wall  Create to-widthZ 3*seccion to-widthX 5 to-posZ 8.5*seccion to-posX -2.5*seccion.
48     wall  Create to-widthZ 3*seccion to-widthX 5 to-posZ 8.5*seccion to-posX 3.5*seccion.
49  
50     wall  Create to-widthZ 5*seccion to-widthX 5 to-posZ 5.5*seccion to-posX -4.5*seccion.
51     wall  Create to-widthZ 6*seccion to-widthX 5 to-posZ 4*seccion to-posX -3.5*seccion.
52     wall  Create to-widthZ 3*seccion to-widthX 5 to-posZ 4.5*seccion to-posX -2.5*seccion.
53     wall  Create to-widthZ 3*seccion to-widthX 5 to-posZ 5.5*seccion to-posX -1.5*seccion.
54
55     wall  Create to-widthZ seccion to-widthX 5 to-posZ 2.5*seccion to-posX 0.5*seccion.
56     wall  Create to-widthZ seccion to-widthX 5 to-posZ 1.5*seccion to-posX 1.5*seccion.
57     wall  Create to-widthZ seccion to-widthX 5 to-posZ 4.5*seccion to-posX 1.5*seccion.
58     wall  Create to-widthZ seccion to-widthX 5 to-posZ 6.5*seccion to-posX 1.5*seccion.
59
60     wall  Create to-widthZ seccion to-widthX 5 to-posZ 2.5*seccion to-posX -1.5*seccion. 
61     wall  Create to-widthZ seccion to-widthX 5 to-posZ 1.5*seccion to-posX -2.5*seccion.
62     wall  Create to-widthZ seccion to-widthX 5 to-posZ 3.5*seccion to-posX -0.5*seccion.
63
64     wall  Create to-widthZ seccion to-widthX 5 to-posZ 3.5*seccion to-posX 2.5*seccion.
65     wall  Create to-widthZ 2*seccion to-widthX 5 to-posZ 7*seccion to-posX 2.5*seccion.
66     wall  Create to-widthZ seccion to-widthX 5 to-posZ 4.5*seccion to-posX 3.5*seccion.
67     
68     wall  Create to-widthZ 6*seccion to-widthX 5 to-posZ 6*seccion to-posX 4.5*seccion.    
69     
70     #Paredes horizontales (en el diagrama)
71     wall  Create to-widthZ 5 to-widthX 2.25*seccion to-posZ 10*seccion to-posX 1.5*seccion.    #1
72     wall  Create to-widthZ 5 to-widthX 2.25*seccion to-posZ 10*seccion to-posX 4.5*seccion.    #2
73     
74     wall  Create to-widthZ 5 to-widthX 2.25*seccion to-posZ 9*seccion to-posX -3.5*seccion.    #3
75     wall  Create to-widthZ 5 to-widthX 1.25*seccion to-posZ 8*seccion to-posX -4*seccion.      #4
76     wall  Create to-widthZ 5 to-widthX 5.25*seccion to-posZ 8*seccion to-posX 0.               #5
77     
78     wall  Create to-widthZ 5 to-widthX 3*seccion to-posZ 9*seccion to-posX 2*seccion.          #6
79     
80     wall  Create to-widthZ 5 to-widthX 1.25*seccion to-posZ 7*seccion to-posX -3*seccion.      #7
81     wall  Create to-widthZ 5 to-widthX 3.25*seccion to-posZ 7*seccion to-posX 0.                  #8
82     wall  Create to-widthZ 5 to-widthX 2.25*seccion to-posZ 6*seccion to-posX 3.5*seccion.        #9
83     wall  Create to-widthZ 5 to-widthX 1.25*seccion to-posZ 6*seccion to-posX -2*seccion.         #10    
84     
85     wall  Create to-widthZ 5 to-widthX 3.25*seccion to-posZ 4*seccion to-posX 0.               #11
86     wall  Create to-widthZ 5 to-widthX 2.25*seccion to-posZ 5*seccion to-posX 2.5*seccion.     #12
87     
88     wall  Create to-widthZ 5 to-widthX 1.25*seccion to-posZ 3*seccion to-posX -4*seccion.      #13
89     wall  Create to-widthZ 5 to-widthX 1.25*seccion to-posZ 3*seccion to-posX -2*seccion.      #14
90     wall  Create to-widthZ 5 to-widthX 4.25*seccion to-posZ 3*seccion to-posX 2.5*seccion.     #15
91     #wall  Create to-widthZ 5 to-widthX 4*seccion to-posZ 3*seccion to-posX 2.5*seccion.     #15
92     
93     wall  Create to-widthZ 5 to-widthX   seccion to-posZ 2*seccion to-posX -5*seccion.      #16
94     wall  Create to-widthZ 5 to-widthX 2.25*seccion to-posZ 2*seccion to-posX -0.5*seccion.    #17
95     wall  Create to-widthZ 5 to-widthX 4.25*seccion to-posZ 2*seccion to-posX  3.5*seccion.    #18
96     
97     wall  Create to-widthZ 5 to-widthX 9*seccion to-posZ 1*seccion to-posX  0.              #19
98     
99     #push wall onto walls. 
100 }
101
102
103 Control: myControl{
104 + variables:
105     labe(object). 
106     sensor (object).
107     leftWheel, rightWheel (object).
108     vehicle (object).
109  
110 + to init:
111     self point-camera at (0,0,0) from (200,200,200).
112     new Floor.
113
114     labe = new Labyrinth.
115     vehicle = new CeldasVehicle.
116     self watch item vehicle.
117
118     vehicle move to (0, 0, 10).
119
120     leftWheel = (vehicle add-wheel at (-2, 0, -1.5)).
121     rightWheel = (vehicle add-wheel at (-2, 0, 1.5)).
122     vehicle add-wheel at (1, 0, 0).
123
124     leftWheel set-velocity to 50.0.
125     rightWheel set-velocity to 50.0.
126
127     sensor = (vehicle add-sensor at (2.0, .4, 0)).
128
129
130 +to iterate:
131     super iterate.
132     
133 + to post-iterate:
134                 value (float).
135                         
136                 value = sensor get-sensor-value.
137
138                 if value < 2: {
139                         leftWheel set-velocity to ((leftWheel get-velocity) + 1).
140                         rightWheel set-velocity to ((rightWheel get-velocity) + 1).
141                 }
142
143                 if value > 2: {
144                         leftWheel set-velocity to ((leftWheel get-velocity) - 1).
145                         rightWheel set-velocity to ((rightWheel get-velocity) - 1).
146                 }
147
148                 #print value.
149
150 }
151