Skip to content

Commit

Permalink
Merge pull request #113 from levante-framework/add-matrix-reasoning-i…
Browse files Browse the repository at this point in the history
…ntro

add matrix reasoning instructions
  • Loading branch information
kachergis authored May 22, 2024
2 parents 22e038d + b0dac44 commit 9e034ca
Show file tree
Hide file tree
Showing 4 changed files with 56 additions and 1 deletion.
Binary file added assets/matrix-reasoning/assets/matrixExample.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/matrix-reasoning/assets/matrixExample.key
Binary file not shown.
3 changes: 2 additions & 1 deletion task-launcher/src/tasks/matrix-reasoning/timeline.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import 'regenerator-runtime/runtime';
// setup
import store from 'store2';
import { initTrialSaving, initTimeline, createPreloadTrials } from '../shared/helpers';
import { instructions } from './trials/instructions';
import { jsPsych, initializeCat } from '../taskSetup';
// trials
import {
Expand Down Expand Up @@ -39,7 +40,7 @@ export default function buildMatrixTimeline(config, mediaAssets) {
},
};

const timeline = [preloadTrials, initialTimeline];
const timeline = [preloadTrials, initialTimeline, ...instructions];

const numOfTrials = store.session.get('totalTrials');
for (let i = 0; i < numOfTrials; i++) {
Expand Down
54 changes: 54 additions & 0 deletions task-launcher/src/tasks/matrix-reasoning/trials/instructions.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
import jsPsychAudioMultiResponse from '@jspsych-contrib/plugin-audio-multi-response';
import store from 'store2';
import { isTouchScreen } from '../../taskSetup';
import { mediaAssets } from '../../..';
import { replayButtonDiv, setupReplayAudio } from '../../shared/helpers';

const instructionData = [
{
prompt: 'matrixReasoningInstruct1',
image: 'matrixExample', // GIF?
buttonText: 'continueButtonText',
},
]

export const instructions = instructionData.map(data => {
return {
type: jsPsychAudioMultiResponse,
stimulus: () => mediaAssets.audio[data.prompt],
prompt: () => {
const t = store.session.get('translations');
return `<div id='stimulus-container'>
${replayButtonDiv}
<div id='prompt-container-text'>
<h1 id='prompt'>${t[data.prompt]}</h1>
</div>
${data.video ?
`<video id='instruction-video' autoplay loop>
<source src=${mediaAssets.video[data.video]} type='video/mp4'>
</video>` :
`<img id='instruction-graphic' src=${mediaAssets.images[data.image]} alt='Instruction graphic'/>`
}
${data.bottomText ? `<footer id='footer'>${t[data.bottomText]}</footer>` : ''}
</div>`;
},
prompt_above_buttons: true,
button_choices: ['Next'],
button_html: () => {
const t = store.session.get('translations');
return [
`<button id='continue-btn'>
${t[data.buttonText]}
</button>`,
]
},
keyboard_choices: () => isTouchScreen ? 'NO_KEYS' : 'ALL_KEYS',
on_load: () => {
let audioSource
setupReplayAudio(audioSource, data.prompt)
}
}
})

0 comments on commit 9e034ca

Please sign in to comment.