Skip to content

Commit

Permalink
first pass at implementing locking & unlocking of stages in sequence
Browse files Browse the repository at this point in the history
  • Loading branch information
Tristan committed Jan 13, 2012
1 parent 62fa26f commit 9a0ed35
Show file tree
Hide file tree
Showing 15 changed files with 611 additions and 134 deletions.
3 changes: 3 additions & 0 deletions data/ft2_battleship/datasets.xml
@@ -0,0 +1,3 @@
<datasets game_id="ft2_battleship">
<dataset>test</dataset>
</datasets>
3 changes: 3 additions & 0 deletions data/ft2_battleship/test/dataset.xml
@@ -0,0 +1,3 @@
<dataset id="test" game_id="ft2_battleship">
<datafile id="measurement" name="measurement.xml"/>
</dataset>
54 changes: 54 additions & 0 deletions data/ft2_battleship/test/measurement.xml
@@ -0,0 +1,54 @@
<level>
<title>Measurement</title>
<theme>BSNL</theme>

<levelName>measurement_preset</levelName>
<creatorsName>Kishan Patel</creatorsName>

<startPoint>0</startPoint>
<endPoint>1</endPoint>

<totalTrials>6</totalTrials>
<questionSequence>randomOnce</questionSequence>

<perfectHitPercent>97</perfectHitPercent>
<partialHitPercent>95</partialHitPercent>
<nearMissHitPercent>92</nearMissHitPercent>

<questionType>measurement</questionType>
<numberType>whole</numberType>
<mode>ship</mode>

<guidesEnabled>false</guidesEnabled>
<guidesMode>normal</guidesMode>
<guidesType>2</guidesType>

<timeLimit>15</timeLimit>

<questions>
<question>
<startPoint>50</startPoint>
<endPoint>100</endPoint>
<flagPos>.5</flagPos>
<answer>130</answer>
</question>
<question>
<startPoint>0</startPoint>
<endPoint>5</endPoint>
<flagPos>.4</flagPos>
<answer>8</answer>
</question>
<question>
<startPoint>0</startPoint>
<endPoint>5</endPoint>
<flagPos>.7</flagPos>
<answer>3</answer>
</question>
<question>
<startPoint>5</startPoint>
<endPoint>15</endPoint>
<flagPos>.5</flagPos>
<answer>20</answer>
</question>
</questions>
</level>
52 changes: 42 additions & 10 deletions src/TestHarness/clientjs/student.js
Expand Up @@ -2,7 +2,7 @@ var GameControllerClient = require('./client/GameControllerClient').GameControll
var CLFlashGameEngine = require('./client/CLFlashGameEngine').CLFlashGameEngine;
var CLHTML5GameEngine = require('./client/CLHTML5GameEngine').CLHTML5GameEngine;

var gc = new GameControllerClient('api');
var gc = new GameControllerClient('/api');
gc.registerEngineConstructor('CLFlashGameEngine', CLFlashGameEngine);
gc.registerEngineConstructor('CLHTML5GameEngine', CLHTML5GameEngine);

Expand All @@ -12,9 +12,12 @@ $(document).ready(function ()
{
$('#stage-list li button').button().click(function ()
{
var stageID = $(this).val();
var bvals = $(this).val().split('/',2);
var seqID = bvals[0];
var stageID = bvals[1];

//HACK: Putting things on the window level is bad...
window.runStage(stageID);
window.runStage(seqID, stageID);
window.currentStage = stageID;
});

Expand All @@ -26,21 +29,50 @@ $(document).ready(function ()
$('#instructor-dashboard-link').button();
});

window.quickpost = function quickpost()
{
var xml = '<OUTPUT><GAME_REFERENCE_NUMBER ID="foo"/><SCORE_SUMMARY><Score CorrectAnswers="6" ElapsedTime="26862" PenaltyTime="176520" TotalScore="203382" Medal="Bronze"/></SCORE_SUMMARY><SCORE_DETAILS><SCORE QuestionIndex="1" AnswerValue="0" TimeTaken="1886" LaneChosen="1"/></SCORE_DETAILS><END_STATE STATE="FINISH"/></OUTPUT>';

gc.getSequence( 'c1s1', function(seq)
{
gc.getStage( 'level03-stage0', function (stg)
{
stg.getNextQuestionSet(null, function (qs)
{
gc.saveQuestionSetResults(null, seq, qs, xml, function (error)
{
if (error)
{
alert('Error saving data: ' + error);
}
});
});
});
});
}

//HACK: Putting things on the window level is bad...
window.runStage = function runStage(stageID)
window.runStage = function runStage( seqID, stageID )
{
lock('Loading level ' + stageID + '...');
gc.getStage(stageID, function (stage)
{
gc.getStage( stageID, function (stage)
{
var sequence = null;
gc.getSequence( seqID, function(seq)
{
sequence = seq;
});
alert('getting next qs in stage '+ stage.id);
// Don't need to pass playerState since the server stores this in the session.
stage.getNextQuestionSet(null, function (questionSet)
{
runQuestionSet(questionSet);
alert('running qs '+ questionSet.id +' with parent '+ questionSet.parent.id +' in sequence '+ sequence.id );
runQuestionSet(sequence, questionSet);
});
});
}

function runQuestionSet(questionSet)
function runQuestionSet( sequence, questionSet )
{
if (!questionSet)
{
Expand All @@ -56,8 +88,8 @@ function runQuestionSet(questionSet)

engine.run(questionSet, $('#game-container'), function (xml)
{
statusMessage('Sending game data...');
gc.saveQuestionSetResults(null, questionSet, xml, function (error)
statusMessage('Sending game data');
gc.saveQuestionSetResults(null, sequence, questionSet, xml, function (error)
{
if (error)
{
Expand Down
138 changes: 55 additions & 83 deletions src/TestHarness/config/games.json
@@ -1,89 +1,27 @@
{
"conditions": {
"cond1": {
"stages": [
"level03-stage0",
"level03-stage1",
"level03-stage2",
"level03-stage3",
"level03-stage4",
"level04-stage1",
"level04-stage2",
"level04-stage3",
"level04-stage4",
"level04-stage5"
]
},
"cond2": {
"stages": [
"level03-stage0",
"level03-stage1",
"level03-stage2",
"level03-stage3",
"level03-stage4",
"level04-stage1",
"level04-stage2",
"level04-stage3",
"level04-stage4",
"level04-stage5"
]
},
"cond3": {
"stages": [
"level03-stage0",
"level03-stage1",
"level03-stage2",
"level03-stage3",
"level03-stage4",
"level04-stage1",
"level04-stage2",
"level04-stage3",
"level04-stage4",
"level04-stage5"
]
},
"cond4": {
"stages": [
"level03-stage0",
"level03-stage1",
"level03-stage2",
"level03-stage3",
"level03-stage4",
"level04-stage1",
"level04-stage2",
"level04-stage3",
"level04-stage4",
"level04-stage5"
]
},
"cond5": {
"stages": [
"level03-stage0",
"level03-stage1",
"level03-stage2",
"level03-stage3",
"level03-stage4",
"level04-stage1",
"level04-stage2",
"level04-stage3",
"level04-stage4",
"level04-stage5"
]
},
"cond6": {
"stages": [
"level03-stage0",
"level03-stage1",
"level03-stage2",
"level03-stage3",
"level03-stage4",
"level04-stage1",
"level04-stage2",
"level04-stage3",
"level04-stage4",
"level04-stage5"
]
}
"c1s1": {
"displayName": "Condition 1, Sequence 1",
"stages": [
"level03-stage0",
"level03-stage1",
"level03-stage2",
"level03-stage3",
"level03-stage4"
]
},
"c1s2": {
"displayName": "Condition 1, Sequence 2",
"stages": [
"level04-stage1",
"level04-stage2",
"level04-stage3",
"level04-stage4",
"level04-stage5"
]
}
}
},

"stages": {
Expand Down Expand Up @@ -241,6 +179,36 @@
"displayName": "Scuba 3",
"engine": "scuba",
"cli_fluency_task": "scuba_mix_equivalent"
},
"carlow_level03stage0": {
"displayName": "Racecar 3-0",
"engine": "racecar_html5",
"cli_fluency_task": "carlow_level03stage0"
},
"carlow_level03stage1": {
"displayName": "Racecar 3-1",
"engine": "racecar_html5",
"cli_fluency_task": "carlow_level03stage1"
},
"carlow_level03stage2": {
"displayName": "Racecar 3-2",
"engine": "racecar_html5",
"cli_fluency_task": "carlow_level03stage2"
},
"carlow_level03stage3": {
"displayName": "Racecar 3-3",
"engine": "racecar_html5",
"cli_fluency_task": "carlow_level03stage3"
},
"carlow_level03stage4": {
"displayName": "Racecar 3-4",
"engine": "racecar_html5",
"cli_fluency_task": "carlow_level03stage4"
},
"battleship_test": {
"displayName": "Battleship Numberline Test",
"engine": "battleship",
"cli_fluency_task": "test"
}
},

Expand Down Expand Up @@ -269,6 +237,10 @@
"type": "CLFlashGameEngine",
"cli_task_id": "ft2_pie"
},
"battleship": {
"type": "CLFlashGameEngine",
"cli_task_id": "ft2_battleship"
},
"jungle": {
"type": "CLFlashGameEngine",
"cli_task_id": "ft3_jungle"
Expand Down

0 comments on commit 9a0ed35

Please sign in to comment.