小海龟已化身小火箭,入驻Dev-C++ 5.11精灵版

你见过会画图的小海龟吗?它曾游弋在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++?”

关于李兴球

李兴球的博客是Python创意编程原创博客
此条目发表在C++分类目录。将固定链接加入收藏夹。

发表回复