Computer Science Canada elevator help |
Author: | iop [ Sun Aug 29, 2004 10:12 pm ] |
Post subject: | elevator help |
using the fromTopToMiddle procedure if a person clicks on the middle button while the elevator is at the top, I want the elevator to go down to the middle. how can i do this? Quote: var x, y, b : int
proc fromTopToMiddle drawfillbox (maxx div 2 - 22, 3, maxx div 2 + 22, 197, white) drawfillbox (maxx div 2 - 20, 45, maxx div 2 + 20, 5, red) for decreasing up : 150 .. 80 drawfillbox (maxx div 2 - 20, 45, maxx div 2 + 20, 5, white) drawfillbox (maxx div 2 - 20, 5 + up + 40, maxx div 2 + 20, 5 + up, red) delay (10) drawfillbox (maxx div 2 - 20, 5 + up + 40, maxx div 2 + 20, 5 + up, white) end for drawfillbox (maxx div 2 - 20, 195, maxx div 2 + 20, 155, red) end fromTopToMiddle proc fromMiddleToTop drawfillbox (maxx div 2 - 22, 3, maxx div 2 + 22, 197, white) drawfillbox (maxx div 2 - 20, 45, maxx div 2 + 20, 5, red) for up : 80 .. 150 drawfillbox (maxx div 2 - 20, 45, maxx div 2 + 20, 5, white) drawfillbox (maxx div 2 - 20, 5 + up + 40, maxx div 2 + 20, 5 + up, red) delay (10) drawfillbox (maxx div 2 - 20, 5 + up + 40, maxx div 2 + 20, 5 + up, white) end for drawfillbox (maxx div 2 - 20, 195, maxx div 2 + 20, 155, red) end fromMiddleToTop proc fromGroundToMiddle drawfillbox (maxx div 2 - 22, 3, maxx div 2 + 22, 197, white) drawfillbox (maxx div 2 - 20, 45, maxx div 2 + 20, 5, red) for up : 0 .. 80 drawfillbox (maxx div 2 - 20, 45, maxx div 2 + 20, 5, white) drawfillbox (maxx div 2 - 20, 5 + up + 40, maxx div 2 + 20, 5 + up, red) delay (10) drawfillbox (maxx div 2 - 20, 5 + up + 40, maxx div 2 + 20, 5 + up, white) end for drawfillbox (maxx div 2 - 20, 125, maxx div 2 + 20, 85, red) end fromGroundToMiddle for drawing : 23 .. 25 drawline (maxx div 2 - drawing, 0, maxx div 2 + drawing, 0, black) drawline (maxx div 2 - drawing, 1, maxx div 2 + drawing, 1, black) drawline (maxx div 2 - drawing, 2, maxx div 2 + drawing, 2, black) drawline (maxx div 2 - drawing, 0, maxx div 2 - drawing, 200, black) drawline (maxx div 2 - drawing, 0, maxx div 2 - drawing, 200, black) drawline (maxx div 2 - drawing, 0, maxx div 2 - drawing, 200, black) drawline (maxx div 2 + drawing, 0, maxx div 2 + drawing, 200, black) drawline (maxx div 2 + drawing, 0, maxx div 2 + drawing, 200, black) drawline (maxx div 2 + drawing, 0, maxx div 2 + drawing, 200, black) drawline (maxx div 2 - drawing, 198, maxx div 2 + drawing, 198, black) drawline (maxx div 2 - drawing, 199, maxx div 2 + drawing, 199, black) drawline (maxx div 2 - drawing, 200, maxx div 2 + drawing, 200, black) end for drawfillbox (maxx div 2 - 20, 45, maxx div 2 + 20, 5, red) drawfillbox (390, 160, 400, 170, blue) locate (14, 45) put "Call button." drawfillbox (390, 98, 400, 108, blue) locate (18, 45) put "Call button." drawfillbox (maxx - 10, 10, maxx - 40, 40, black) locate (22, 76) put "Exit" loop mousewhere (x, y, b) if x >= 390 and x <= 400 and y >= 98 and y <= 108 and b = 1 then fromGroundToMiddle elsif x >= 390 and x <= 400 and y >= 160 and y <= 170 and b = 1 then fromMiddleToTop end if exit when x >= maxx - 40 and x <= maxx - 10 and y >= 10 and y <= 40 and b = 1 end loop |
Author: | AsianSensation [ Sun Aug 29, 2004 10:49 pm ] | ||
Post subject: | |||
you need to have a variable to keep track of your current position. Something like this could help:
and when you are using your if statements, you have to check to see the current position of your elevator. Then depends on the position, you call the needed procedure. |