From cbfc7003fa5adf7455b3892a38cc780195f4ef8c Mon Sep 17 00:00:00 2001 From: Walter Bender Date: Mon, 04 Nov 2013 23:44:04 +0000 Subject: add more restrictions to arithmetic docking --- diff --git a/TurtleArt/taconstants.py b/TurtleArt/taconstants.py index 1cedaa3..811e499 100644 --- a/TurtleArt/taconstants.py +++ b/TurtleArt/taconstants.py @@ -79,6 +79,11 @@ XO4 = 'xo4' UNKNOWN = 'unknown' TMP_SVG_PATH = '/tmp/turtle_output.svg' +ARG_MUST_BE_NUMBER = ['product2', 'minus2', 'random', 'remainder2', 'forward', + 'back', 'left', 'right', 'arc', 'setxy2', 'setxy', + 'fillscreen', 'setscale', 'setpensize', 'wait', + 'setcolor', 'seth', 'setgray', 'setshade', 'string'] + KEY_DICT = { 'Left': 1, 'KP_Left': 1, diff --git a/TurtleArt/taturtle.py b/TurtleArt/taturtle.py index a404943..02d4d31 100644 --- a/TurtleArt/taturtle.py +++ b/TurtleArt/taturtle.py @@ -583,6 +583,7 @@ class Turtle: self._poly_points.append(('line', pos2[0], pos2[1])) def forward(self, distance, share=True): + print distance scaled_distance = distance * self._turtles.turtle_window.coord_scale old = self.get_xy() diff --git a/TurtleArt/tautils.py b/TurtleArt/tautils.py index ef80877..ff30b19 100644 --- a/TurtleArt/tautils.py +++ b/TurtleArt/tautils.py @@ -51,7 +51,7 @@ except (ImportError, AttributeError): from StringIO import StringIO from taconstants import (HIT_HIDE, HIT_SHOW, XO1, XO15, XO175, XO4, UNKNOWN, - MAGICNUMBER, SUFFIX) + MAGICNUMBER, SUFFIX, ARG_MUST_BE_NUMBER) import logging _logger = logging.getLogger('turtleart-activity') @@ -677,14 +677,11 @@ def arithmetic_check(blk1, blk2, dock1, dock2): return False if dock1 == 2 and zero_arg(blk2.values[0]): return False - elif blk1.name \ - in ['product2', 'minus2', 'random', 'remainder2', 'string'] and \ - blk2.name \ - in ['product2', 'minus2', 'random', 'remainder2', 'string']: + elif blk1.name in ARG_MUST_BE_NUMBER and blk2.name in ARG_MUST_BE_NUMBER: if blk1.name == 'string': if not numeric_arg(blk1.values[0]): return False - elif blk1.name == 'string': + elif blk2.name == 'string': if not numeric_arg(blk2.values[0]): return False elif blk1.name in ['greater2', 'less2'] and blk2.name == 'string': -- cgit v0.9.1