你见过会画图的小海龟吗?它曾游弋在Logo语言的海滩上,如今摇身一变,化作一枚小火箭,稳稳降落在Dev-C++ 5.11精灵版里——不信?请看下面这段纯正的C++程序:
#include "sprites.h" // 调用C++精灵库
int main(){ // 主功能区
Sprite rocket; // 新建火箭角色
rocket.fd(100).left(90); // 前进100,左转90°
rocket.fd(100).left(90);
rocket.fd(100).left(90);
rocket.fd(100).left(90); // 画一个正方形,回到起点
rocket.done(); // 收工!
}
运行它,屏幕上会精准地画出一个正方形——是不是瞬间想起了Logo语言里那只慢悠悠的小海龟?没错,小海龟早就“飞”进了Scratch、Python,甚至某些机器人编程平台,但奇妙的是,现在它又以火箭的形态,在C++的世界里重生了。至今仍有学校在教Logo,因为它简单直观,而这份直观,如今被完整地移植到了C++精灵库中。
Dev-C++ 5.11精灵版内置了这套“C++精灵库”,教学者和学习者无需切换任何编辑器,打开就能直接写C++程序,同时拥有类似Logo或Python Turtle的绘图体验。这意味着什么?意味着儿童学习计算机语言的本质障碍,从来不是语言本身,而是“入门门槛”——而精灵库,恰好把这个门槛削平了。
以前我们总纠结:孩子熟练打字后,该选Python还是C++?
现在答案变得模糊了——因为C++精灵库的出现,让C++的入门难度直逼Python。同样的前进、左转、右转、抬笔、落笔,同样的即时图形反馈,几乎一样的命令命名,甚至连代码结构都那么相似。
我们的教学可以这样设计:
教学者先写好一个“万能模板”:
#include "sprites.h"
int main(){
Sprite t; // 新建角色,默认为小火箭
// 在这里,孩子们自由发挥——
// t.fd(…); t.left(…); t.penup(); t.pendown(); ……
t.done();
}
学习者直接打开这个模板,像玩积木一样往中间填入移动、转向、抬落笔等命令,就能立刻看到图形结果。体验上,和Python的turtle模块几乎毫无差别;更有趣的是,如果以后转学Python,那些命令居然还能“复用”——因为精灵库的命名风格,就是向turtle致敬的。
所以,当一个孩子熟练了键盘,你问他/她:“你想先学Python,还是C++?”
