什么?Scratch也能做原琴谱面转换器?(附Scratch下载文件)

一、字母转数字
程序块总览







好的,我们来分块将这些程序块的逻辑进行分析

首先,谱面转换器的本质工作是将字母(字符)替换为对应的数字(字符),这里使用的方法是通过“加载进度”这一变量来告诉程序要判定的是哪个字符,然后通过后面的判定模块对特定的字符进行判定。
For Example:
1.点击绿旗
2.初始化(即清空“输出”列表,将“加载进度”设为1)
3.询问“谱”
4.输入“ABCD”字符
5.得到字符总数为4
6.广播“消息1”并将“加载进度”变量增加1(此程序运行字符总数次(四次))

为了让所有的判定模块同时运行(不同时会出bug),这里采用以接收广播“消息1”的方式来同时启动21个判定的模块,理论上,这些判定模块会同时判定同一个字符,并将此字符对应的数字写入“输出”列表
For Example:
7.接收到广播“消息1”
8.21个判定模块同时启动,对字符串中第“加载进度”(此时“加载进度”为初始值1)个字符进行判定
9.判定字符“A”的模块判定为真,将“A”所对应的数字“1”加入“输出”列表
10.接收到第二次广播“消息1”
11.21个判定模块同时启动,对字符串中第“加载进度”(此时“加载进度”为2)个字符进行判定
12.判定字符“B”的模块判定为真,将“B”所对应的数字“-5”加入“输出”列表
13.接收到第三次广播“消息1”
14.21个判定模块同时启动,对字符串中第“加载进度”(此时“加载进度”为3)个字符进行判定
15.判定字符“C”的模块判定为真,将“C”所对应的数字“-3”加入“输出”列表
16.接收到第四次广播“消息1”
17.21个判定模块同时启动,对字符串中第“加载进度”(此时“加载进度”为4)个字符进行判定
18.判定字符“D”的模块判定为真,将“D”所对应的数字“3”加入“输出”列表
19.此时扫描程序不再广播“消息1”(只会广播4次),程序结束
那到这里哎估计就看明白了,我输入多少个字符,就会进行多少次的判定,这个程序就会套娃多少次,而每一次套娃都会让“加载进度”模块增加1,套娃的次数为字符总数,即增加量为字符总数,所以“加载进度”变量的最终数字为“字符总数+1”
以上即为字母转数字的全部逻辑(也许你们看明白了罢)

二、数字转字母
程序总览








好的,我们来分块将这些程序块的逻辑进行分析

这一块的内容与字母转数字一样,我就复制黏贴一下吧
For Example:
1.点击绿旗
2.初始化(即清空“输出”列表,将“加载进度”设为1,将“正负号判定”设为0)
3.询问“谱”
4.输入“+11-22”字符
5.得到字符总数为6
6.广播“消息1”并将“加载进度”变量增加1(此程序运行字符总数次(六次))

那么后边的判定模块我们来重点分析,当判定正号的模块判定到“+”,它会将“正负号的判定”设为2,当判定数字的模块判定到对应的数字,又会启动下一级的判定(即根据“正负号判定”来判定正负号),并把对应的字母写进“输出”列表。
For Example:
7.接收到广播“消息1”
8.10个判定模块同时启动,对字符串中第“加载进度”(此时“加载进度”为初始值1)个字符进行判定
9.判定字符“+”的模块判定为真,将“正负号判定”设为2
10.接收到第二次广播“消息1”
11.10个判定模块同时启动,对字符串中第“加载进度”(此时“加载进度”为2)个字符进行判定
12.判定字符“1”的模块判定为真,广播“1”
13.接收到广播“1”
14.3个次级的判定模块启动
15.判定“正负号判定”为2的模块判定为真,将代表“+1”的Q写入“输出”列表,并将“正负号判定”设为0
16.接收到第三次广播“消息1”
17.10个判定模块同时启动,对字符串中第“加载进度”(此时“加载进度”为3)个字符进行判定
18.判定字符“1”的模块判定为真,广播“1”
19.接收到广播“1”
20.3个次级的判定模块启动
21.判定“正负号判定”为0的模块判定为真,将代表“1”的“A”写入“输出”列表
22.接收到第四次广播“消息1”
23.10个判定模块同时启动,对字符串中第“加载进度”(此时“加载进度”为4)个字符进行判定
24.判定字符“-”的模块判定为真,将“正负号判定”设为1
25.接收到第五次广播“消息1”
26.10个判定模块同时启动,对字符串中第“加载进度”(此时“加载进度”为5)个字符进行判定
27.判定字符“2”的模块判定为真,广播“2”
28.接收到广播“2”
29.3个次级的判定模块启动
30.判定“正负号判定”为1的模块判定为真,将代表“-2”的X写入“输出”列表,并将“正负号判定”设为0
31.接收到第六次广播“消息1”
32.10个判定模块同时启动,对字符串中第“加载进度”(此时“加载进度”为6)个字符进行判定
33.判定字符“2”的模块判定为真,广播“2”
34.接收到广播“2”
35.3个次级的判定模块启动
36.判定“正负号判定”为0的模块判定为真,将代表“2”的S写入“输出”列表
37.此时扫描程序不再广播“消息1”(只会广播6次),程序结束

那么到这里整个程序的分析就结束了,这应该大概或许能看懂罢,这看不懂额,我也没有什么更好的办法了就尽量理解吧,我尽力了qaq


欸嘿!~~~知道你在找什么~文件的下载链接在这儿(附有Scratch下载文件哦!)
链接:https://pan.baidu.com/s/1BUdKJCPkrqJv44yGb7P4RQ
有需要的可以关注私信问我要提取码,感谢支持!