在Scratch中的ORD和CHAR

时间:2015-05-12 11:35:36

标签: mit-scratch

我在Scratch中遇到越来越多的情况,我必须将一个数字转换为其ACSII字符,反之亦然。块中没有构建的功能。

我的解决方案是创建一个大小为26的列表,并使用名为alphabet =“abcdefghijklmnopqrstuvwxyz”的变量将AZ添加到每个序列中,并使用Repeat块迭代它并将ALETABET的LETTER COUNT附加到列表中。结果是一个列表数据结构,在位置1到26之间有字母A_Z。实际创建我自己的ASCII表。

要进行转换,请说从26号到'Z'我必须遍历列表才能获得正确的CHAR值。它确实减慢了严重依赖于CHR()功能的程序。有更好或更有效的解决方案吗?

2 个答案:

答案 0 :(得分:1)

  

我的解决方案是创建一个大小为26的列表,并使用名为alphabet =" abcdefghijklmnopqrstuvwxyz"

的变量将字母A-Z附加到每个序列中

停在那儿。您甚至不需要将其转换为列表。您可以直接从字符串中查找。

从索引中获取角色非常容易。只需使用(letter () of [])块。

获取角色的索引更复杂。不幸的是,Scratch并没有内置的方法来做到这一点。我在这里要做的是定义index of [] in [] custom pseudo-reporter block

define index of (char) in (str)
set [i v] to [1]
repeat until <<(i) = (length of (str))> or <(letter (i) of (str)) = (char)>>
    change [i v] by (1)

<子> view online

然后,您可以将该块调用为index of [a] in (alphabet),并将i变量设置为1。

如果找不到该字符,此代码没有任何情况,但我提供的链接确实包括,如果您需要。

答案 1 :(得分:0)

你也可以使用类似于Scratch的Snap!,但是有更多的块。瞬间!有一个unicode块,它将字符转换为ASCII或unicode值。