云端变数记录文字
虽然 Scratch 的云端变数限制只能纪录“数字”,但仍然可以透过一些程序的转换,让云端变数可以记录“文字”,近一步传送文字,这篇文章将会透过函数、清单、变数、字串组合...等积木,实作使用云端变数记录文字的方式。
云端变数记录文字原理
云端变数可以记录最多 256 个数字,将数字两个两个一组,可以产生最多 128 个“二位”数字 ( 01、02、11、28、99...等 ),透过这些数字,就可以从指定的“文字清单”里,找到对应的文字或标点符号,转换后就能变成对应的数字。
下图的例子,假设云端变数存有一组数字 0116161205,透过文字清单转换后,就会得到 apple 的文字。
积木程序原理 ( 建立对照清单 )
点击猫咪角色,从左侧积木清单,新增 n、source 两个变数,以及一个 abc 清单。
- 变数 n:取出 source 每个字元使用的变数。
- 变数 source:要转换的所有英文字母和符号。
- 清单 abc:记录字母和符号的对照清单。
设定点击绿旗时 source 变数的内容为 26 个英文字母小写、26 个英文字母大写、标点符号和一个空白 ( 可以复制下方整串文字贴上 )。
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ~!@#$%^&*()_ -+={}[]|"';:>.<,?/1234567890
继续编辑点击绿旗程序:
- 设定变数 n 为 1,表示从第一个字开始。
- 清空 abc 清单的内容。
- 使用重复积木,source 的内容有多少个字,就重复几次。
- 每次重复将取得的字,一一加入 abc 清单中。
- 每次重复将 n 增加 1。
完成后,点击绿旗,就会看见 abc 清单里,出现 94 个项目。
积木程序原理 ( 编码函数 )
新增一个名为“编码”的函数,负责将“输入的文字转换成数字”,函数包含一个 input 参数,勾选“执行完毕再更新画面”。
新增一个变数 code,记录转换后的数字代码。
编辑“编码”函数内容:
- 设定变数 n 为 1,表示从输入的第一个字开始。
- 设定变数 code 为“空”值 ( 不包含任何空白 )。
- 使用重复积木,输入的内容有几个字 ( 字母或符号 ),就重复几次,每次重复执行:
- 判断该文字在 abc 清单里的编号,如果编号小于 10,就将 code 设定为“code 组合 0 + 编号”。
- 如果编号大于等于 10,就将 code 设定为“code 组合编号”。
- 将 n 增加 1。
因为使用云端变数纪录的数字,采用两个为一单位,例如字母 a 对应的编号是 1,纪录时必须转换成 01。
积木程序原理 ( 解码函数 )
新增一个名为“解码”的函数,负责将“云端变数的数字转换成文字”,函数包含一个 input 参数,勾选“执行完毕再更新画面”。
新增一个变数 output,记录转换数字之后的文字。
编辑“解码”函数内容:
- 设定变数 n 为 1,表示从输入的第一个字开始。
- 设定变数 code 为“空”值 ( 不包含任何空白 )。
- 设定变数 source 为“空”值 ( 不包含任何空白 )。
- 使用重复积木,需要解码的数字有几个字,就重复几次,每次重复执行:
- 设定 code 为“code 组合数字的第 n 个字”。
- 判断如果 n 除以 2 的余数等于 0,表示可以被 2 整除,将 output 设定为 code 的内容,并变数 code 为“空”值。
- 将 n 增加 1。
因为需要解码的数字两两一组,使用 2 的倍数就能够一次取出两个数字进行组合。
积木程序原理 ( 云端变数 )
新增一个云端变数 msg。
修改点击绿旗的程序:
- 加入重复无限次积木。
- 每次重复询问用户,要求用户输入文字,默认显示 output 的内容。
- 输入文字后,执行编码函数,将文字转换成数字。
- 使用云端变数 msg 记录数字。
- 广播消息 ok。
当收到 ok 消息时,执行解码函数,将数字转换成文字,接着让猫咪说出文字。
完成效果
完成后,点击绿旗,输入“英文字”或“标点符号”,会看见云端变数记录了一串数字,经过转换,猫咪会讲出正确的文字。
范例解答
范例解答:云端变数记录文字
微信扫码关注
抖音扫码关注