• 把孩子打造成为码农


    作者: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 50
    pendown       # 放下笔,开始留下痕迹
    pw 2          # penwidth,线条粗细
    go 200, 200   # 前往坐标点
    
    # 房子主体
    
    turnleft 90   # 左转90度
    forward 100   # 前进100像素
    turnright 90
    forward 100
    turnleft 90
    
    forward 30
    turnright 140
    forward 105
    turnright 80
    forward 105
    turnright 140
    forward 30
    
    
    turnleft 90
    forward 100
    
    # 窗户
    
    go 120, 90
    turnleft 90
    forward 60
    turnleft 90
    
    repeat 90 {
      forward 1.05 
      turnleft  2
    }
    
    # 窗户中线
    go 150, 90
    turnright 180
    forward 30
    
    # 窗户对角线
    
    tr 45             # turnright的简写
    go 135, 77
    forward 10
    go 135, 82
    forward 10
    
    go 160, 79
    forward 10
    go 160, 84
    forward 10
    tl 45
    
    #
    
    go 120,200
    forward 50
    tr 90
    forward 30
    tr 90
    forward 50
    
    # 门把手
    
    go 145, 175
    
    repeat 24 {   # 循环24次
      forward 1
      tr  15
    }
    
    # 窗户
    
    go 160,140
    tr 180
    forward 25
    tr 90
    forward 25
    tr 90
    forward 25
    tr 90 
    forward 25
    tr 90
    
    # 窗户中线
    
    go 172.5,140
    forward 25
    tr 90
    
    go 160,127.5
    forward 25
    
    # 窗户对角线
    # pw 1
    tl 45
    go 164, 134
    forward 5
    go 164, 138
    forward 5
    
    go 177, 121
    forward 5
    go 177, 125
    forward 5
    tr 45
    
    go 230,150

     

    再加上一个画螺旋线:

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

     


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

     

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

  • 相关阅读:
    docker部署mysql Navicat远程连接
    window10安装nginx及请求转发到tomcat服务器访问项目及开机自启
    Keras笔记
    Spectral Clustering 并用silhouette指标值确定最优聚类数目
    Java Swing, paint(), paintComponent(), repaint()
    tensorflow(一):安装在Spyder上
    人工智能入门(七):artificial neural network
    人工智能入门(六):SVM
    人工智能入门(五):data mining的一些算法
    人工智能入门(四):uncertainty&基于统计的学习
  • 原文地址:https://www.cnblogs.com/vamei/p/2686966.html
Copyright © 2020-2023  润新知