Skip to content

Commit 111ff64

Browse files
author
Walter Bender
committed
Merge branch 'master' of github.com:walterbender/turtleblocksjs
2 parents 2b77e9f + 3eed75c commit 111ff64

4 files changed

Lines changed: 36 additions & 1 deletion

File tree

js/analytics.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ const TACAT = {
2525
'gray': 'pen', 'fillscreen': 'pen', 'beginfill': 'fill',
2626
'fill': 'fill', 'setfont': 'fill', 'hollowline': 'fill',
2727
'endfill': 'fill', 'plus': 'number', 'minus': 'number',
28-
'multiply': 'number', 'divide': 'number', 'oneOf': 'number',
28+
'multiply': 'number', 'power': 'number', 'divide': 'number', 'oneOf': 'number',
2929
'pendown': 'pen', 'shade': 'pen', 'mod': 'number', 'int': 'number',
3030
'sqrt': 'number', 'identity': 'number', 'and': 'boolean',
3131
'or': 'boolean', 'not': 'boolean', 'greater': 'boolean',

js/basicblocks.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -408,6 +408,14 @@ function initBasicProtoBlocks(palettes, blocks) {
408408
divideBlock.twoArgMathBlock();
409409
divideBlock.defaults.push(100, 10)
410410

411+
var powerBlock = new ProtoBlock('power');
412+
powerBlock.palette = palettes.dict['number'];
413+
blocks.protoBlockDict['power'] = powerBlock;
414+
powerBlock.fontsize = 14;
415+
powerBlock.staticLabels.push('^');
416+
powerBlock.twoArgMathBlock();
417+
powerBlock.defaults.push(2,4)
418+
411419
var multiplyBlock = new ProtoBlock('multiply');
412420
multiplyBlock.palette = palettes.dict['number'];
413421
blocks.protoBlockDict['multiply'] = multiplyBlock;

js/logo.js

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -184,6 +184,7 @@ function Logo(canvas, blocks, turtles, stage, refreshCanvas, textMsg, errorMsg,
184184
case 'plus':
185185
case 'minus':
186186
case 'multiply':
187+
case 'power':
187188
case 'divide':
188189
value = this.blocks.blockList[blk].value;
189190
break;
@@ -1937,6 +1938,19 @@ function Logo(canvas, blocks, turtles, stage, refreshCanvas, textMsg, errorMsg,
19371938
logo.blocks.blockList[blk].value = logo.doPlus(a, b);
19381939
}
19391940
break;
1941+
1942+
case 'power':
1943+
if (logo.inStatusMatrix) {
1944+
logo.statusFields.push([blk, 'power']);
1945+
} else {
1946+
var cblk1 = logo.blocks.blockList[blk].connections[1];
1947+
var cblk2 = logo.blocks.blockList[blk].connections[2];
1948+
var a = logo.parseArg(logo, turtle, cblk1, blk, receivedArg);
1949+
var b = logo.parseArg(logo, turtle, cblk2, blk, receivedArg);
1950+
logo.blocks.blockList[blk].value = logo._doPower(a, b);
1951+
}
1952+
break;
1953+
19401954
case 'multiply':
19411955
if (logo.inStatusMatrix) {
19421956
logo.statusFields.push([blk, logo.blocks.blockList[blk].name]);
@@ -2434,6 +2448,18 @@ function Logo(canvas, blocks, turtles, stage, refreshCanvas, textMsg, errorMsg,
24342448
}
24352449
}
24362450

2451+
2452+
this._doPower = function(a, b) {
2453+
if (typeof(a) === 'string' || typeof(b) === 'string') {
2454+
this.errorMsg(NANERRORMSG);
2455+
this.stopTurtle = true;
2456+
return 0;
2457+
}
2458+
2459+
return Math.pow(a,b);
2460+
}
2461+
2462+
24372463
this.setBackgroundColor = function(turtle) {
24382464
/// Change body background in DOM to current color.
24392465
var body = document.body;

js/status.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,7 @@ function StatusMatrix() {
112112
case 'neg':
113113
case 'divide':
114114
case 'multiply':
115+
case 'power':
115116
case 'sqrt':
116117
case 'int':
117118
case 'mod':

0 commit comments

Comments
 (0)