【问题标题】:Is there a visual programming language with a large/configurable stage resolution?是否有具有大/可配置舞台分辨率的可视化编程语言?
【发布时间】:2015-10-15 02:17:03
【问题描述】:

我 8 岁的女儿正在学习编程,很高兴能够使用 Code.org 创建项目。现在她想设计一个程序来创建一个巴比伦数字图表,数字从 1 到 1000,但是我所知道的任何可视化编程环境都无法渲染这样的东西。我看过 Hopscotch、Tynker、Scratch,到目前为止都无济于事。她还没有打字,所以切换到基于文本的系统还不是一种选择,所以我希望其他人知道一个好的解决方案。

【问题讨论】:

  • 很多优秀的程序员都是单指打字员。不要以为您的女儿不会因为她不是打字员而无法学习基于文本的语言。我认为你也没有选择一项微不足道的任务。有时编码任务看起来很简单,但实际上并非如此。我在网上找不到很多巴比伦数字图表生成器,但我确实找到了这个:dcode.fr/babylonian-numbers
  • 也很高兴你有一个对编码如此感兴趣的 8 岁孩子。我希望通过现有的兴趣让我的儿子参与一些视觉编码 - 他正在进入 Disney Infinity 3.0。它内置了一个相当复杂的可视化编程环境,用于生成事物和对事件做出反应。
  • 转换器很可爱,我拿给她看。现在她一心想创建图表,因为她喜欢打印她的项目,但我也许可以说服她。迪士尼无限 3 听起来很有趣,什么平台适合你?她对 LearnToMod 相当满意,但由于进出我的世界的复杂性,它有时会出现故障。

标签: development-environment mit-scratch blockly block-programming


【解决方案1】:

Snap! 是一种基于 Scratch 的基于块的编程语言。它可以让您配置舞台大小:

快点!还添加了令人兴奋的函数式编程特性,例如匿名函数和嵌套列表。

有一个导入Scratch项目的工具:https://djdolphin.github.io/Snapin8r2/

【讨论】:

  • 是的:-)。转换器工作得很好,舞台很容易调整大小。你摇滚!
【解决方案2】:

在 Scratch 中渲染这样的图表有两个困难。

1) 屏幕尺寸太小。
2) 巴比伦数字的基本字符没有明显的方法。

在任何基于块或基于文本的开发环境中,小屏幕尺寸都会成为一个问题。即使使用整个 1366 x 768 像素的显示器,她也只有一个 30 像素的正方形来显示每个数字。将图表分成几部分(例如,10 页,每页 100 个数字)或根据用户输入呈现单个数字是解决屏幕尺寸问题的两种可能解决方法。

这两个相关项目(较小的图表或数字转换器)都可以在 Scratch 中实现。您的女儿将需要创建一个可以在舞台上绘制符号的渲染器精灵。渲染精灵可以拥有巴比伦符号的服装并使用印章块创建组合,或者精灵可以用笔绘制符号。 This project 有一些渲染器精灵的示例以及如何使用它们。

【讨论】:

  • 如果事实证明没有任何具有更大舞台的视觉环境,我会看看我是否可以说服她将她的项目更改为数字转换器:-)。
【解决方案3】:

巴比伦人used 以 60 为基数。似乎每个数字由最多两个独特的精灵组成,重复并以 10 为基数的范式排列。

您可能需要考虑使用 Scratch 的动画计数器。

  • 在时钟的每一个滴答声中,都会出现另一个右手“一”精灵,并在第 10 个滴答声时全部消失)。
  • 在每 10 个滴答声中,另一个左侧的“十”精灵出现(并且在第 60 个滴答声时全部消失)。
  • 然后在第 60 个滴答声中,左左数字出现或在第 60 位更新。
  • 要达到以 60 为底的 1000,您只需要两个数字。
  • 屏幕上的其他地方,一个包含十进制数字的文本字段跟踪刻度。

  • 您可以制作小巴比伦人乘坐战车从金字形神塔到金字形神塔的动画。 (如果我在制造成见,请向任何巴比伦人道歉。)

听起来很有趣,祝你好运。

【讨论】:

    【解决方案4】:

    在 Scratch 中实现它应该没有困难。不过8点大工程!

    • 屏幕尺寸:每个数字 4 个精灵,1000 个数字,4000 个字符在屏幕上是困难的。但无论如何,这是一张丑陋的静态显示图表。您可以使用计算机显示器的动态特性将精灵缩放得非常小(将其全部放入一个难以辨认的表格中),或者足够大但不完整,然后使用箭头键滚动浏览。这是 UI 中的一个教训:计算机没有餐桌大小的显示器,但它们的显示器是动态的,所以使用它。

    转换有点麻烦。

    • 首先,获取一组数字 1-9 和 10-60 的图像。
    • 创建两个精灵 - 第一个带有 1-9 张图像的服装;下一个为 10-60。

    • 要显示正确的图像,请使用切换服装。

    • 我建议您从较小的数字开始,先到 9,然后再到 59。之后,一般的解决方案是使用冲压,然后将精灵向左移动,更换服装并再次冲压。

    • 计算给定输入 X 的正确值:

    • 单位 = X 模数 10

    X' = X/10 个单位

    如果您的号码最多为 59,仅此而已; X'是十位服装的编号。如果没有:

    • tens = X' 模数 6

    X'' = X'/10 个单位

    从 X'' 重新开始。如果您想要一个通用的解决方案,请标记精灵,将它们向左移动并计算。否则,使用 X'' 计算两个新精灵的正确服装。

    【讨论】:

    • 问题是我傻傻地没有意识到屏幕的问题,所以已经让她完成了通过绘制数字来创建数字的工作(我们使用了它们的简化版本)。现在我面临着告诉她这一切都是徒劳的,或者想办法让他们打印出来:-)
    • 您对Scratch似乎很熟悉,您知道有什么方法可以调用保存舞台截图的函数吗?好像我可以自动将屏幕截图转储到一个目录中,然后我可以编写一个程序将它们组装成一个可打印的图表......
    • 作为 Scratch 的替代方案,如果您有图像,您可以使用不同的语言,例如 javascript(用于输出的 HTML 表格 - 漂亮且可打印)。保存屏幕截图的功能 - 不......但是您可以使用从头开始在屏幕上显示,例如,使用循环和标记的 60 个数字吗?只有 17 个屏幕截图……或者,您可以分批 60 个,但是 - 最多不超过 1,000 个……我想您的女儿选择它是一个任意的、雄心勃勃的数字?她可能会发现 480 足以胜任表演和讲述?
    【解决方案5】:

    Pure Data 是一种开源可视化编程语言,可用于所有主要操作系统。

    【讨论】:

      【解决方案6】:

      这个问题很老,但仍然很有趣。

      我认为您的女儿可以通过使用与精灵关联的“nextcostume”动作来使用从头开始来实现目标。

      巴比伦人使用基数 60,这意味着我们需要一对 2 个精灵来表示 0-9 和 10,20,30,40,50,(6)0。然后当数字超过 59 时,我们继续在前面添加这些对。

      我确实在 30 分钟内完成了一个 poc,包括我花在剪切/保存/导入服装上的时间。

      我使用变量来显示巴比伦数字计数。代码很简单。 最后,一件棘手的事情是不同精灵之间的时间同步。为了方便起见,我不得不通过添加声音来手动“调整”早期流行音乐。

      你可以在这里查看我发布的项目。 https://scratch.mit.edu/projects/154836328/

      Scratch 项目快照 Costume

      【讨论】:

      • 哇,好可爱!
      猜你喜欢
      • 2011-05-15
      • 2020-06-16
      • 2020-02-19
      • 2018-10-29
      • 2011-05-15
      • 2012-03-05
      • 1970-01-01
      • 1970-01-01
      • 2011-07-31
      相关资源
      最近更新 更多