我 8 岁的女儿正在学习编程,并且很高兴能够使用 Code.org 创建项目。现在她想设计一个程序来创建一个巴比伦数字图表,数字从 1 到 1000,但是我所知道的任何可视化编程环境都无法渲染这样的东西。我看过 Hopscotch、Tynker、Scratch,到目前为止都无济于事。她还没有打字,所以切换到基于文本的系统还不是一种选择,所以我希望其他人知道一个好的解决方案。
6 回答
折断!是一种基于 Scratch 的基于块的编程语言。它允许您配置舞台大小:
折断!还添加了令人兴奋的函数式编程特性,例如匿名函数和嵌套列表。
有一个用于导入 Scratch 项目的工具:https ://djdolphin.github.io/Snapin8r2/
在 Scratch 中渲染这样的图表有两个困难。
1)屏幕尺寸太小。
2) 没有明显的方法来渲染巴比伦数字的基本字符。
在任何基于块或基于文本的开发环境中,小屏幕尺寸都会成为一个问题。即使使用整个 1366 x 768 像素的显示器,她也只有一个 30 像素的正方形来显示每个数字。将图表分成几部分(例如,10 页,每页 100 个数字)或根据用户输入呈现单个数字是解决屏幕尺寸问题的两种可能的解决方法。
这两个相关项目(较小的图表或数字转换器)都可以在 Scratch 中实现。您的女儿将需要创建一个可以在舞台上绘制符号的渲染器精灵。渲染精灵可以拥有巴比伦符号的服装并使用印章块来创建组合,或者精灵可以用笔绘制符号。这个项目有一些渲染器精灵的例子以及如何使用它们。
巴比伦人使用以60 为基数。似乎每个数字由最多两个独特的精灵组成,这些精灵重复并以 10 为基数的范式排列。
您可能需要考虑使用 Scratch 的动画计数器。
- 在时钟的每一个滴答声中,都会出现另一个右手“一”精灵,并在第 10 个滴答声时全部消失)。
- 在每 10 个滴答声中,另一个左侧的“十”精灵出现(并且在第 60 个滴答声时全部消失)。
- 然后在第 60 个滴答声中,左左数字出现或在第 60 个位置更新。
- 要达到以 60 为底的 1000,您只需要两个数字。
屏幕上的其他地方,一个包含十进制数字的文本字段跟踪刻度。
您可以制作小巴比伦人骑着战车从金字形神塔到金字形神塔的动画。(如果我在制造成见,请向任何巴比伦人道歉。)
听起来很有趣,祝你好运。
Pure Data是一种开源可视化编程语言,适用于所有主要操作系统。
在 Scratch 中实现它应该没有困难。但这是一个8点的大项目!
- 屏幕大小:每个数字 4 个精灵,1000 个数字,4000 个字符在屏幕上是困难的。但无论如何,这是一张丑陋的静态显示图表。您可以使用计算机显示器的动态特性将精灵缩放得非常小(将其全部放入一个难以辨认的表格中),或者足够大但不完整,然后使用箭头键滚动浏览。这是 UI 中的一个教训:计算机没有餐桌大小的显示器,但它们的显示器是动态的,所以使用它。
转换是一项工作。
- 首先,获取一组数字 1-9 和 10-60 的图像。
创建两个精灵 - 第一个带有 1-9 张图像的服装;下一个为10-60。
要显示正确的图像,请使用切换服装。
我建议您从较小的数字开始,先到 9,然后再到 59。之后,一般的解决方案是使用冲压,然后将精灵向左移动,更换服装并再次冲压。
计算给定输入 X 的正确值:
- 单位 = X 模数 10
X' = X/10-单位
如果您的号码最多为 59,仅此而已;X'是十位服装的编号。如果不:
- 十位 = X' 模数 6
X'' = X'/10 个单位
从 X'' 重新开始。如果您想要一个通用的解决方案,请标记精灵,将它们向左移动并计算。否则,使用 X'' 计算两个新精灵的正确服装。
这个问题很老,但仍然很有趣。
我认为您的女儿可以通过使用与精灵相关的“nextcostume”动作来使用从头开始来实现目标。
巴比伦人使用基数 60,这意味着我们需要一对 2 个精灵来表示 0-9 和 10,20,30,40,50,(6)0。然后当数字大于 59 时,我们继续在前面添加这些对。
我确实在 30 分钟内完成了一个 poc,包括我剪裁/保存/导入服装的时间。
我使用该变量来显示巴比伦数字计数。代码很简单。最后,一件棘手的事情是不同精灵之间的时间同步。为了简单起见,我不得不通过添加声音来手动“调整”早期流行音乐。
你可以在这里查看我发布的项目。 https://scratch.mit.edu/projects/154836328/
Scratch 项目快照 服装