友情提示:380元/半年,儿童学编程,就上码丁实验室。
棋盘加密|原理
棋盘加密依然是一种针对26个英文字母的加密方法。总共有26个字母,因此我们可以使用5X5(五行五列)的棋盘,将26个字母放在这个棋盘中。任意取出一个字符(原文字符)就能得到棋盘的横竖位置。例如字母a对应的位置为11,字母b对应的位置为12。
五行五列的棋盘只有25个位置,因此有一个字母需要和另外一个字母共用位置。经过统计,在一个单词中,ij同时出现的概率是比较低的,所以ij两个字母共用一个格子。本文所用方法和逆序加密类似。
这是小孩自己制作的PPT,效果还不错。他把学到的几种加密原理图都整理成PPT了。
棋盘加密|适用对象
列表和字符串操作属于青少年编程Scratch的四级内容,因此本文适合小学三四年级的小孩。
如果是第一次接触列表,需要花点时间熟悉列表和字符操作的指令,用时约为2小时。
如果对列表和字符串操作已经比较熟悉了,那么30-60分钟就足够了。
棋盘加密|实现方法
和上次的逆序加密相似,这里也使用了列表,将26个字符对应的棋盘位置存储起来。然后依次读取原文的每一个字符,就可以找到加密后的棋盘位置。如果找不到,就输出原字符。
在逆序加密中,已经学习了列表的使用,因此这个棋盘加密的程序,我就无须指导,由小孩独自完成了。
定义了两个列表,原文字符清单和目标棋盘位置清单。
初始化,通过询问指令接收用户的录入。
定义了计数器变量和位置变量。
依次读取每一个字符,然后读取棋盘位置,添加到加密变量后面。
如果字符不在范围内,就输出原字符。
棋盘加密|运行效果
运行效果图,接收用户录入,然后输出加密后的文本。
提示,录入。
显示原文,输出加密后的文本。
自家广告:指导着指导着自己的小孩学习scratch编程,结果我自己写了一本书。本人的Scratch专著《零基础学Scratch 3.0少儿编程》预计将在2020年出版。到时,欢迎购买。如果需要青少年编程和机器人的私教培训陪练,请留言,两人开班,远程授课时间随意。
2020.07.19 Beijing
转自公众号:
艾博特