从一个imp弱的孩​​子的日记中编程机器人

儿童与科技系列的第1部分

我的女儿露露(Lulu)读过她的第一本小说《 W弱的孩子的日记》(乔·库尼(Joe Cooney)推荐),书的一部分使她与我一起进行了一些编程工作。 是的,阅读! 是的,编程! 对我女儿!

这是启发她的故事:

我们去上班了 有人想到您可以向机器人说出自己的名字,然后它又可以说出来。

但是后来有人指出,您不应该使用坏词作为名字,因为机器人不应该诅咒。 因此,我们决定应该列出机器人不应该说的所有不好的单词。

我们提出了所有常规的坏话,但随后Ricky Fisher提出了另外二十个我们之前从未听说过的话。

因此,Ricky最终成为该项目中最有价值的贡献者之一。

在钟声响起之前,达内尔先生回到房间检查我们的进度。 他拿起我们正在写的纸,然后看完了。

简而言之,独立学习将在今年剩余时间内取消。

-《小屁孩日记》 ,杰夫·金尼

我对露露说,我们可以编写一个这样的程序,并且-得到这个-她实际上对这个想法感到兴奋。 于是我们一起坐下来制作了一个程序。 我要求她的一切帮助。 这是怎么回事:

  命名空间反馈 
{
使用系统;
使用System.Linq;
班级计划
{
静态void Main(string [] args)
{
Console.WriteLine(“ Hello。”);
而(真)
{
Console.WriteLine(“您叫什么名字?”);
var name = Console.ReadLine();
Console.WriteLine(“ Hi” + name +“很高兴认识您” + name +“。”);
}
}
}
}

接下来,我们输入一个秘密代码字“退出”,您可以在要停止时使用它。

  if(name ==“ exit”){中断;  } 

然后是一个秘密代码字,因此如果它识别出您,它将更改颜色:

 如果(name ==“ Lulu”) 
{
Console.ForegroundColor = ConsoleColor.Magenta;
}
其他
{
Console.ResetColor();
}

露露说,我们可以说出你的名字! 所以我尝试了这个

  var backsName = name.Reverse(); 
Console.WriteLine(“ Hello” +向后名称);

但是,它不是向后打印名称,而是打印…

 您好System.Linq.Enumerable + ?d__a0`1 [System.Char] 

尝试向6岁的孩子解释一下。

这样比较容易:

  var backsName =“”; 
foreach(名称中的字母可变)
{
向后名称=字母+向后名称;
}
Console.WriteLine(“ Hello” +向后名称);

效果更好。

现在露露有了一个更好的主意。 如果机器人为他们名字的每个字母说了不同的单词怎么办。

我的工作朋友会知道,语音字母是我们玩的相当多的东西,目的是简化与IT支持的联系。 但是露露是独立提出这个想法的,没有我的任何提示。

因此,如果您的名字叫“ Leon”,它会说“ Hello Lemon-Echo-Octopus-Nose”。 或类似的话。

  var wordyName =“”; 
foreach(名称中的字母可变。ToUpperInvariant())
{
letterNumber = Convert.ToInt32(字母)-65;
如果(letterNumber> = 0 && letterNumber <AlphabetWords.Length)
{
wordyName + = AlphabetWords [letterNumber] +“”;
}
}
Console.WriteLine(“ Hello” + WordyName);

这依赖于提出大量的字母顺序的单词列表。 我们在一起很开心。

 静态字符串[] AlphabetWords = { 
“苹果”,
“布尼亚山”,
“卡仕达酱”,
“污垢”,
“眼球”,
“滑稽”,
“大猩猩-侏儒”,
“ Hexaphone”,
“冰屋”,
“果冻豆”,
“小猫”,
“棒棒糖”
“猴”,
“没有!!!!”,
“章鱼”,
“一分钱”,
“女王”,
“犀牛”
“糖”,
“骗子”,
“向上”,
“维京人”,
“战士”,
“ X射线鱼”,
“讨厌”,
“斑马”
};

好吧,那里。 杰夫·金尼(Jeff Kinney)十分赞成教导人们从小就相信用户的输入是不可信任的。


最初发布于 secretgeek.net