diff options
author | Walter Bender <walter.bender@gmail.com> | 2012-06-09 10:15:12 (GMT) |
---|---|---|
committer | Walter Bender <walter.bender@gmail.com> | 2012-06-09 10:15:12 (GMT) |
commit | c9b953d7028d76445f217393afad8e92db55977f (patch) | |
tree | c8884fb2ba100336cdb61f006d1e3675a02c25ef | |
parent | 0a43a9c3cae9dfbccfa46232f2304c478ad1dfe1 (diff) |
bounds check for keyboard_num block
-rw-r--r-- | plugins/turtle_blocks_extras/turtle_blocks_extras.py | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/plugins/turtle_blocks_extras/turtle_blocks_extras.py b/plugins/turtle_blocks_extras/turtle_blocks_extras.py index d20ad13..55e6a8a 100644 --- a/plugins/turtle_blocks_extras/turtle_blocks_extras.py +++ b/plugins/turtle_blocks_extras/turtle_blocks_extras.py @@ -378,6 +378,7 @@ block as character')) self.tw.lc.def_prim('keyboard_chr', 0, lambda self: chr(self.tw.lc.keyboard)) + primitive_dictionary['keyboardnum'] = self._prim_keyboard_num palette.add_block('keyboard_num', style='box-style', label='num(%s)' % (_('keyboard')), @@ -387,7 +388,7 @@ block as character')) help_string=_('holds results of query-keyboard \ block as number')) self.tw.lc.def_prim('keyboard_num', 0, - lambda self: self.tw.lc.keyboard - 48) + lambda self: primitive_dictionary['keyboardnum']()) primitive_dictionary['readpixel'] = self._prim_readpixel palette.add_block('readpixel', @@ -1114,6 +1115,13 @@ bullets')) self.tw.lc.heap.append(val) self.tw.lc.update_label_value('pop', val) + def _prim_keyboard_num(self): + """ Return a number when a number is typed. """ + if self.tw.lc.keyboard < 48 or self.tw.lc.keyboard > 57: + return -1 + else: + return self.tw.lc.keyboard - 48 + def _prim_readpixel(self): """ Read r, g, b, a from the canvas and push b, g, r to the stack """ r, g, b, a = self.tw.canvas.get_pixel() |