Computer Science Canada Why won't it exit? |
Author: | baz. [ Sun Jan 20, 2008 7:30 pm ] |
Post subject: | Why won't it exit? |
Okay, I have to make a game for an assignment, yet for some reason, when I click the exit button it won't exit. Instead, it goes to the result screen. Can some one tell me how that is possible? It will clear screen alright. But why on earth would it go to the results screen when it clearly says "exit"? here's the code for the selection statements. var x1instruction, x2instruction, y1instruction, y2instruction : real var x1lesson, x2lesson, y1lesson, y2lesson : real var x1quiz, x2quiz, y1quiz, y2quiz : real var x1exit, x2exit, y1exit, y2exit : real var button : int var x, y : int x1instruction := 240 - 40 x2instruction := 240 + 40 x1lesson := 340 - 40 x2lesson := 340 + 40 x1quiz := 440 - 40 x2quiz := 440 + 40 x1exit := 550 - 40 x2exit := 550 + 40 var btnNum, btnUpDown : int loop mousewhere (x, y, button) if x1instruction <= x and x <= x2instruction and button = 1 then y1instruction := -sqrt (40 ** 2 - (x - 240) ** 2) + 40 y2instruction := sqrt (40 ** 2 - (x - 240) ** 2) + 40 if y1instruction <= y and y <= y2instruction then instruction_screen end if end if if x1lesson <= x and x <= x2lesson and button = 1 then y1lesson := -sqrt (40 ** 2 - (x - 340) ** 2) + 40 y2lesson := sqrt (40 ** 2 - (x - 340) ** 2) + 40 if y1lesson <= y and y <= y2lesson then lesson_screen1 end if end if if x1quiz <= x and x <= x2quiz and button = 1 then y1quiz := -sqrt (40 ** 2 - (x - 440) ** 2) + 40 y2quiz := sqrt (40 ** 2 - (x - 440) ** 2) + 40 if y1quiz <= y and y <= y2quiz then var screens : int randomize randint (screens, 1, 2) if screens = 1 then quiz_screen1version1 elsif screens = 2 then quiz_screen1version2 end if end if end if if x1exit <= x and x <= x2exit and button = 1 then y1exit := -sqrt (40 ** 2 - (x - 550) ** 2) + 40 y2exit := sqrt (40 ** 2 - (x - 550) ** 2) + 40 if (y1exit <= y and y <= y2exit) then exit end if end if if x1lesson <= x and x <= x2lesson and button = 1 then y1lesson := -sqrt (40 ** 2 - (x - 340) ** 2) + 40 y2lesson := sqrt (40 ** 2 - (x - 340) ** 2) + 40 if y1lesson <= y and y <= y2lesson then lesson_screen1 end if end if end loop *btw, as you can see, I'm using circle buttons. |
Author: | Tony [ Sun Jan 20, 2008 8:19 pm ] |
Post subject: | RE:Why won\'t it exit? |
just because you call a variable something, doesn't mean that you have the right code behind it. exit exits a loop. Step through your code to see where your program ends up after that. |