Computer Science Canada How do I make a Radio button quiz? |
Author: | Yoda [ Fri Nov 12, 2004 12:23 pm ] |
Post subject: | How do I make a Radio button quiz? |
View.Set ("graphics:350;80") var radio : array 1 .. 6 of int % The radio button IDs. procedure RadioPressed Text.Locate (1, 1) put "Radio Button " .. for i : 1 .. 6 if radio (i) = GUI.GetEventWidgetID then put i .. end if end for put " Selected" end RadioPressed radio (1) := GUI.CreateRadioButton (15, maxy <<<35>>>, <<<"Radio Button 1">>>, 0, RadioPressed) radio (2) := GUI.CreateRadioButton (1, 1, "Radio Button 2", radio (1), RadioPressed) radio (3) := GUI.CreateRadioButton (1, 1, "Radio Button 3", radio (2), RadioPressed) radio (4) := GUI.CreateRadioButtonFull (maxx <<<15>>>, maxy 35, <<<"Radio Button A (Shortcut: 'a')">>>, 0, RadioPressed, GUI.RIGHT, 'a') radio (5) := GUI.CreateRadioButtonFull (1, 1, "Radio Button B (Shortcut: 'b')", radio (4), RadioPressed, GUI.RIGHT, 'b') radio (6) := GUI.CreateRadioButtonFull (1, 1, "Radio Button C (Shortcut: 'c')", radio (5), RadioPressed, GUI.RIGHT, 'c') loop exit when GUI.ProcessEvent end loop ----- This doesn't work, and I have put the mistakes in tags (<<< "text" >>>). Tell me what you think should solve this problem of mine. |
Author: | bass_maniac [ Mon Nov 15, 2004 8:47 pm ] | ||
Post subject: | |||
You should add import GUI at the beginning. Like this,
|
Author: | Yoda [ Tue Nov 16, 2004 10:55 am ] |
Post subject: | |
[code]import GUI View.Set ("graphics:550;300") %The score counter var count: int var radio : array 1 .. 4 of int % The radio button IDs. procedure RadioPressed Text.Locate (1, 1) put "Time for the " .. for i : 1 .. 4 if radio (i) = GUI.GetEventWidgetID then put i .. end if end for put " Selected " end RadioPressed radio (1) := GUI.CreateRadioButton (1, 100, "", 0, RadioPressed) radio (2) := GUI.CreateRadioButton (1, 125, "", radio (1), RadioPressed) radio (3) := GUI.CreateRadioButton (1, 150, "", radio (2), RadioPressed) radio (4) := GUI.CreateRadioButton (1, 175, "", radio (3), RadioPressed) loop exit when GUI.ProcessEvent end loop [/code] Ok, so, I have that down, but now I need a system to keep score of how many times to person taking the quiz gets a question correct. How would I do this with the program above? |
Author: | bass_maniac [ Tue Nov 16, 2004 5:53 pm ] | ||
Post subject: | |||
This doesn't work and I don't know why. Basically you set the number of questions with the answers array and set what button is the correct answer. So the first time they click a button it checks to see if the button clicked matches the correct one. If it does then the score is increased by one and a message is displayed. The questionNum is also increased by one. I repeat that this doesn't work, but maybe it'll give you an idea, or maybe you can figure out why it doesn't.
|
Author: | Yoda [ Wed Nov 17, 2004 10:25 am ] |
Post subject: | |
[code]import GUI View.Set ("graphics:550;300") %The score counter var count : int % The radio button IDs. var radio : array 1 .. 4 of int %The score var answers : array 1 .. 10 of int := init (3, 3, 2, 4, 2, 3, 1, 4, 2, 4) %These are the answers to the questions %Change ^ to however many questions you have var score := 0 var questionNum := 1 procedure RadioPressed if answers (questionNum) = GUI.GetEventWidgetID then %If the button clicked = the correct button then locate (1, 1) put "You got it right!" score += 1 else locate (1, 1) put "You got it wrong!" end if questionNum += 1 end RadioPressed put "Welcome to the Science Fiction Quiz of Doom!" delay (500) put "" put "When you think you have the correct answer click on the radio buttonthat represents it" delay (1000) put "" put "May the force be with you and may Obi Wan Watch over you" put "" delay (1000) put "First question: What was William Gibson's first novel?" put "" delay (1000) radio (1) := GUI.CreateRadioButton (1, 75, "Pattern Recognition", 0, RadioPressed) radio (2) := GUI.CreateRadioButton (1, 100, "Virtual Light", radio (1), RadioPressed) radio (3) := GUI.CreateRadioButton (1, 125, "Neuromancer", radio (2), RadioPressed) radio (4) := GUI.CreateRadioButton (1, 150, "Dune", radio (3), RadioPressed) loop exit when GUI.ProcessEvent end loop[/code] Hmmm.... Well, that's what I've changed it to, not much of a difference, just words and garbage. Giving the buttons a value seems to be really difficult, and I honestly can't figure out why. If someone can see the solution to this problem, please, please, please post it. |