博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
把孩子打造成为码农
阅读量:6200 次
发布时间:2019-06-21

本文共 1736 字,大约阅读时间需要 5 分钟。

作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。

 

今天看到一个问卷调查,是问第一门学习的计算机语言是什么。本身想写QBasic,忽然想起曾经学习机时代的LOGO语言,以及看了很久的小乌龟。对啊,这才算是自己接触的第一门语言。

LOGO语言是为教育儿童编程开发的,所以语法很简单。它基于LISP,还附加有一个海龟绘图系统(Turtle Graphic)。我们通过编写的程序,可以控制屏幕上的小海龟的移动,并在画面上留下行动的轨迹。你可以用LOGO语言画出一幅不错的画来。

于是在Ubuntu下搜索,找到KTurtle,是LOGO的一个变体。它的语法是面向过程的,类似于C,支持数学和逻辑运算,可以实现循环 (for)或者选择 (if)。常见的命令包括forward, backward, turnleft, turnright,用于控制小海龟的前进后退和转向。另外也可以用ask和print来输入输出。变量用$a的形式表示。在绘图过程中,小海龟不断移动,同时左侧也会用黄色标明运行到哪一行了,非常有趣。一句话来形容,麻雀虽小,五脏俱齐。

KTurtle界面

你可以通过它的帮助菜单(需要安装)来查询具体的命令。

 

帮助菜单

帮助菜单

 

画房子:

# 该例来自 http://banajim.myweb.port.ac.uk/recreation/logoscripts# 画房子reset         # 清空画面penup         # 抬起笔,开始不留下痕迹forward 50pendown       # 放下笔,开始留下痕迹pw 2          # penwidth,线条粗细go 200, 200   # 前往坐标点# 房子主体turnleft 90   # 左转90度forward 100   # 前进100像素turnright 90forward 100turnleft 90forward 30turnright 140forward 105turnright 80forward 105turnright 140forward 30turnleft 90forward 100# 窗户go 120, 90turnleft 90forward 60turnleft 90repeat 90 {  forward 1.05   turnleft  2}# 窗户中线go 150, 90turnright 180forward 30# 窗户对角线tr 45             # turnright的简写go 135, 77forward 10go 135, 82forward 10go 160, 79forward 10go 160, 84forward 10tl 45# 门go 120,200forward 50tr 90forward 30tr 90forward 50# 门把手go 145, 175repeat 24 {   # 循环24次  forward 1  tr  15}# 窗户go 160,140tr 180forward 25tr 90forward 25tr 90forward 25tr 90 forward 25tr 90# 窗户中线go 172.5,140forward 25tr 90go 160,127.5forward 25# 窗户对角线# pw 1tl 45go 164, 134forward 5go 164, 138forward 5go 177, 121forward 5go 177, 125forward 5tr 45go 230,150

 

再加上一个画螺旋线:

resetfor $x = 1 to 36 {  repeat 72 {    forward 4    turnright 5  }  penup  turnright 10  forward 2  pendown}go 0, 0

 

还可以继续开发出更多的图形。如果你数学不错,甚至可以写一个分形的绘图 (只不过速度真的很慢很慢)。

 

你准备好把你的孩子培养成为码农了吗?

你可能感兴趣的文章
Emacs & VIM
查看>>
ArcGIS三大文件格式解析
查看>>
DIV+CSS(博客框架)
查看>>
SQL处理多级分类,查询结果呈树形结构
查看>>
安装hue-3.11.0
查看>>
代码规范:换行对齐问题
查看>>
PowerDesigner 的简单使用(逻辑模型转物理模型和生成sql语句)
查看>>
appcan 移动、平台开发
查看>>
12 结构型模式-----享元模式
查看>>
fstream的文件操作
查看>>
通过js对表单对象的便捷获取
查看>>
Construct Binary Tree from Inorder and Postorder Traversal
查看>>
详细记录sql运行时间(精确到毫秒)
查看>>
pta7-19打印学生选课清单(模拟)
查看>>
vimrc
查看>>
Springboot-shiro-redis实现登录认证和权限管理
查看>>
使用Bootstrap-Table 遇到的问题
查看>>
I00015 打印等腰三角形字符图案(底边在上)
查看>>
HDU2502 月之数
查看>>
从浏览器渲染的角度谈谈html标签的语义化
查看>>