Help with creative solutioning!
Nov 02, 2020
Hi!
Looking for a creative solution to implement this:
I have a quiz bank of 22 questions. I am drawing 10 questions randomly everytime the user attempts the quiz.
There is a progress bar on each slide with 10 dots that shows the user which question they are on. As the user completes each question, the state of the bar changes according to the CurrentCount variable that adds 1 at the beginning of each quiz slide, so when the CurrentCount variable equals 1, the state of the bar is at 1/10, when the CurrentCount variable equals 2, the state of the bar changes to 2/10, etc.
I would like to make this even fancier by changing those dots to a green check mark or a red X to symbolize whether or not they got a question correct. But since my question draw is randomized, I'm not sure how I can get those dots to change without knowing the order in which the questions will appear.
Any creative minds out there? :D
7 Replies
My kind of challenge. Already have some ideas.. checking tomorrow Whats possible
Yes Math! I knew there would be some curious minds out there! I really want to get this working but haven't figured it out yet.
Cant wait to see what you come up with :D
Basically i do think how we can solve this. Bit of work to make a sample showing it, but will get to that..
On the slides you can get the slidenumber as a reference. Not withstanding a draw from a Question-bank is one element, Storyline recognizes your 10 questions as individual slides and when putting a reference to the slidenumber on the page it shows nicely from 1-10...
So to make this work you/me/we need to add a variable... 'myQuestionBankArray' or whatever...
Basically this will be an array... [0,0,0,0,0,0,0,0,0,0]. On each slide at the start of the question it will check the values of the array... if 1, show correct element, if 0 show false... and that basically just for the question/slide it is on.. so when at question 4, it check the first 4 entries only...
Whenever a question is answered correctly we change the value in the array to 1.
Offcourse the complete set of 10 correct/false elements needs to be on each page ( thinking of a graphic with normal, false and correct state )
With javascript i can make this easily and quick...but i do know from previous experiments that you can work with arrays in normal triggerbased Storyline setup. So gonna make both the setups this week... A javascript solution and one based on triggers only.
Actually with just 10 questions out of a question-bank there is no need for an array.
Adding custom true/false variable q1 to q10 and setting them in the correct feedback layer to true on each question... like shown here..
And doing that for all 10 slides/variables ( q1 - q10) with the condition to do that only when your on the proper slidenumber ( as mentioned in my first post ) you get a series of 10 variables showing you whether the question is answered correct or false.
Add a textbox with %q1% | %q2% | %q3% | %q4% | %q5% | %q6% | %q7% | %q8% | %q9% | %q10% | on all your 22 slides to test that..
Only thing needed now is some triggers to set states for the 'images' showing correct or false.
Ah! Brilliant!! The array is smart, but to ur point, more complicated. The variable change on the correct layer will be much easier to manage. I'll set the triggers to change states on the master layer so that I don't have to do it for every slide in my bank. Hope that works!
Thank you for the creative solutioning Math!
And with some effort a working sample of it...Boolean / False-True for the variables didnot cope it for me...but working nicely like this. So now i use text vars...setting them default to 'not' and then to True or False depending on questions...
Kind regards,
Math
It works!! :D
I have the state of my green check marks/red xs changing in the master template, and I have the variables changing to TRUE on the correct layer and FALSE on the incorrect layer of each question.
Brilliant idea! Thanks again, Math!
This discussion is closed. You can start a new discussion or contact Articulate Support.