This is a short blog post, answering a software simulation (assessment mode) question on the forum. If you are interested, here is the link.
You probably know that in such an assessment scores are attached to one interactive object on each slide: either a click box or a Text Entry Box.It offten happens that the same action can be done by clicking more than one 'target' on the slide, which will need customizing that slide to add at least one extra click box, which will also be scored. However that will lead to a results slide where the acquired percentage is not correct. Reason is that all scored objects are included in the total score. You can verify that easily in the Advanced Interaction panel, to be opened from the Project menu or with the shortcut key F9. Here is an example. Slide 59 has two target click boxes, both are scored.
The OP wants to show the correct percentage to the learner in the project, but for the reporting to the LMS Pass/Fail reporting is sufficient which can be done by basing it on the required pass points.
- A while ago this blog post described using the system variables used in the Results slide: Quizzing System Variables. For this blog post the relevant system variables are:
cpQuizInfoTotalQuizPoints: will have the value you see at the top of the Advanced Interaction panel, and is not correct in this case because it includes the scores of the extra target click boxes.
cpQuizInfoPointsscored: will be correct because on each quiz slide only one of the targets can be clicked.
cpInfoPercentage: is calculated from both previous variables and will be lower than expected for the learner.
cpQuizInfoPointsPerQuestionSlide: this system variable is not behaving as expected for slides with multiple scored objects. It will NOT show the total score of the slide, but the score of ONE scored object. I will presume that in case of a slide with two target click boxes, both of them will have the same score. This is also valid if you prefer shape buttons instead of click boxes.
Since there is no need to transfer the percentage to the LMS, it is possible to use user variables. Create these variables:
v_TotalScore: will replace the system variable cpQuizInfoTotalQuizPoints
v_TooMuch: will store the total score of the extra click boxes. I assume that click boxes on the same slide have the same score.v_Percentage: will store the result of the calculation from v_TotalScore and cpQuizInfoPointsscored
The easiest way would be to count the number of extra targets. If all the click boxes have the same score of 1 point you could calculate the correct percentage with this advanced action:
You can trigger this advanced action with the On Enter event of the custom Score slide. It will allow you to display the correct Percentage.
Situation becomes bit more complicated if not dual targets (click box/shape button) have the same score (of 1 point). In that case you can take advantage of the weird behavior of the quizzing system variable cpQuizInfoPointsPerQuestionSlide (see above). I used this shared action, triggered by the Success action of the targets, and the 'Last Attempt' action which is used here (Success action on a background Shape covering the complete slide). I assumed that the Last Attempt action of the targets is set to No Action. That typical workflow was used by the OP, and explained in this blog post.
You see that this shared action has no parameters, you could also create an identical advanced action, if you still fear shared actions. My main reasons for this choice:
- Shared action can have a small description
- Shared action appears in the Library, which make it easier to check the Usage
- This shared action has no parameters, so it takes the same time as the advanced action to be applied to all the necessary events.
- It is much easier to transfer this shared action to another Project.
There is a small change to the action to be triggered On Enter for the Results slide:
On the Results slide you can insert most of the default fields, an overview:
- You scored: the system variable cpQuizInfoPointsscored is correct
- Maximum score: you need to replace the system variable by the user variable v_TotalScore
- Correct questions: will be OK, it is the system variable cpQuizInfoTotalCorrectAnswers
- Total Questions: will not be OK, you could add a supplementary command to the shared action similar to replace the system variable cpQuizInfoTotalQuestionsPerProject by a decremented user variable.
- Accuracy: you need to replace the system variable cpInfoPercentage by the user variable v_Percentage
- Attempts: will be OK, it is the system variable cpQuizInfoAttempts