UNPKG

automatic-assessments

Version:

Automatic assessment of Marty and Scratch 3.0 projects

47 lines (46 loc) 1.7 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.SPRITE_CLICKED_OPCODE = exports.GREEN_FLAG_CLICKED_OPCODE = void 0; const Analyzer_1 = require("../Analyzer"); exports.GREEN_FLAG_CLICKED_OPCODE = 'event_whenflagclicked'; exports.SPRITE_CLICKED_OPCODE = 'event_whenthisspriteclicked'; class Interactivity extends Analyzer_1.default { constructor(targets) { super(); this.score = 0; this.targets = targets; } execute() { this.firstPointGreenFlag(); this.twoPointsSpriteClicked(); return this.score; } firstPointGreenFlag() { // one point when a green flag block is used for (const target of this.targets) { for (const _blockKey of Object.keys(target.blocks._blocks)) { const _block = target.blocks._blocks[_blockKey]; if (_block.opcode === exports.GREEN_FLAG_CLICKED_OPCODE && _block.next) { this.score = 1; break; } } } } twoPointsSpriteClicked() { // two points when a sprite clicked block was used for (const target of this.targets) { for (const _blockKey of Object.keys(target.blocks._blocks)) { const _block = target.blocks._blocks[_blockKey]; if (_block.opcode === exports.SPRITE_CLICKED_OPCODE && _block.next) { this.score = 2; break; } } } } threePoints() { throw new Error("Haven't figured that out."); } } exports.default = Interactivity;