目标

  • 了解对象的概念
  • 了解方法与对象的关系
  • 掌握turnTo指令的用法

在开始本章的学习之前,我们先来复习一下上一章的知识点。

在第1章中,我们学会了在这个游戏中最简单的两个指令。

  • step x

    其中,x既可以是正数,也可以是负数。x是正数时,上述指令可以实现让小猴子向前移动x步的功能,为负数时则是倒着走,也就是向后移动。
  • turn y

    其中,y可以取值为left、right或是45这样具体的角度数值,它们分别表示让小猴子向左、向右旋转,或是向左旋转45度。

通过这两个简单的指令,我们不难总结出指令的一般格式如下:

指令 参数

一定要注意的是,指令与参数之间的空格是不可以省略的。不然,计算机就看不明白了。

turnTo

对于turn指令,你会不会觉得使用起来不是很方便,尤其是在需要给出具体角度数据作为参数时。那么,有没有更简单好用的指令可以替代turn呢?

答案是有的。人类总是习惯于偷懒,所以,在这个游戏中,我们又给出了一个名叫turnTo的指令。

它的用法如下,它同样遵循“指令 参数”的格式。

turnTo 对象

以上指令可以让小猴子直接转向你指定的对象,而不必给出具体的角度数值。

对象

这里出现了一个新的名词——对象。

要怎么理解对象这一概念呢?你可以暂时地把对象当作物体去理解,游戏中出现的每一个物体,都是一个对象。

每个对象都有自己独一无二的名字,把鼠标移动到相应的对象上,它的名字就会显示出来。

为了简化代码的输入,点击任一对象,它的名字就会自动书写在右侧的代码输入区里了。

说起对象,还有两个与之相关的新名词,属性和方法。

属性是指对象的性质,拿香蕉这个对象来说,颜色就是这个对象的一个属性。

再举一个属性的例子。让我们考虑人这一个对象,那么,他的身高、体重、性别等,也都是这个对象的属性。

接着再介绍方法。方法就是指一个对象所能够完成的动作,譬如游戏中的小猴子monkey和即将出场的新朋友——乌龟turtle,这两个对象都能够完成移动step、旋转turn以及转向turnTo的动作,所以我们就说,step、turn、和turnTo是这两个对象所拥有的方法。

为方便理解,再举一个方法的例子。还是考虑人这一个对象,人能够吃饭、走路、工作,所以我们就说,吃饭、走路、工作分别是人这一对象所拥有的三种不同的方法。

问题来了,既然乌龟turtle也能够完成移动step、旋转turn以及转向turnTo的动作,可是我们要如何通过代码去控制它执行这些动作呢?

如何让乌龟turtle移动呢,换句话说就是,如何才能调用turtle的step方法呢,格式如下:

turtle.step x

上述的指令将能够控制乌龟turtle,让它移动x步。

那么,依此类推,我们很容易得到如下的指令:

  • turtle.step x

    让乌龟turtle移动x步
  • turtle.turn y

    让乌龟turtle旋转
  • turtle.turnTo z

    让乌龟转向z

不难想到,

  • monkey.step x

    让小猴子移动x步,等同于前一章的step x
  • monkey.turn y

    让小猴子旋转,等同于前一章的turn y
  • monkey.turnTo z

    让小猴子转向z,等同于turnTo z

怎么样,是不是对上一章的内容又有了更深层次的理解了?

现在让我们来总结一下如何调用对象的方法:

对象名.方法名

通过以上的指令格式,可以调用对象的方法。

虽然目前暂时还不会用到对象的属性,但可以先了解一下如何使用对象的属性:

对象名.属性名

我们通过上述的指令格式,使用对象的属性。

如果你对上述内容还不能很好的理解,那就暂时先放一下,通过后续的学习,你会逐渐理解的。

好了,本章的内容就学习到这里了。

现在通过以下关卡来检验一下今天的学习效果吧。

作业

  • 故事模式的 11 - 20 关
  • 进阶模式的 2-1 - 2-10 关

    注意,一定保证要所有关卡都拿到三颗星。

本章小结

  • turnTo指令可以实现转向。
  • 乌龟turtle和小猴子monkey一样,都可以完成step、turn和turnTo动作。
  • 通过对象.方法和对象.属性的方式,我们可以访问对象的方法和属性。

问答

  • 孩子还不太理解“对象”等概念怎么办?

    不用担心,本章只是先引出对象这一编程中的基本概念,目前孩子知道有这么一个概念就行了。

  • 为什么不给出每一关的通关代码?

    通关的过程也是检验孩子对所学知识的掌握情况的过程,要引导孩子思考,不要直接给他答案。

  • 如何访问CodeMonkey?

    使用电脑浏览器访问http://dwz.date/dY5Y即可。

CodeMonkey少儿编程第2章 turnTo对象的更多相关文章

  1. CodeMonkey少儿编程第3章 times循环

    目标 了解程序由哪三种基本的结构组成 了解循环的概念 掌握times的结构与用法 三种基本结构 计算机程序由三种最基本的结构组成,它们分别是: 顺序结构 循环结构 选择结构 千万不要被这些陌生的术语给 ...

  2. CodeMonkey少儿编程第7章 函数

    目标 了解函数是什么 掌握如何定义一个函数 函数是什么 本章我们学习一个新的概念----函数. 你可以简单的将函数看作为一个黑匣子,给它输入参数后,它将会按照一定的规则,执行相应的指令或输出数据. 让 ...

  3. Windows核心编程 第三章 内核对象

    第3章内核对象 在介绍Windows API的时候,首先要讲述内核对象以及它们的句柄.本章将要介绍一些比较抽象的概念,在此并不讨论某个特定内核对象的特性,相反只是介绍适用于所有内核对象的特性. 首先介 ...

  4. CodeMonke少儿编程第1章 step与turn

    第1章 step与turn 目标 了解游戏舞台的各组成部分 掌握step和turn指令的用法 说起计算机,对于不了解它的人来说,也许会感到有些神秘,其实不然,它不过是能够接收指令并且按照指令执行的一种 ...

  5. windows核心编程---第三章 内核对象及句柄本质

      本章讨论的是相对抽象的概念,不涉及任何具体的内核对象的细节而是讨论所有内核对象的共有特性. 首先让我们来了解一下什么是内核对象.内核对象通过API来创建,每个内核对象是一个数据结构,它对应一块内存 ...

  6. CoeMonkey少儿编程第4章 变量

    点击这里,现在就开启CodeMonkey的趣味编程之旅. 目标 了解什么是变量 了解变量的命名规则 掌握如何使用变量 变量 什么是变量?顾名思义,变量就是可以变化的量. 和变量相对的是常量,即不可变化 ...

  7. 【2】python核心编程 第四章-python对象

    1.python对象 所有的Python 对像都拥有三个特性:身份,类型和值. 身份: 每一个对象都有一个唯一的身份标识自己,任何对象的身份可以使用内建函数id()来得到. 这个值可以被认为是该对象的 ...

  8. Windows核心编程:第3章 内核对象

    Github https://github.com/gongluck/Windows-Core-Program.git //第3章 内核对象.cpp: 定义应用程序的入口点. // #include ...

  9. c++编程思想(一)--对象导言

    回过头来看c++编程思想第一章,虽然只是对c++知识的一个总结,并没有实质性知识点,但是收获还是蛮多的! 下面感觉是让自己茅塞顿开的说法,虽然含义并不是很准确,但是很形象(自己的语言): 1.类描述了 ...

随机推荐

  1. 一次数独生成及解题算法的剖析(Java实现)

    数独生成及解题算法剖析(Java实现) 关键词 数独9x9 数独生成算法 数独解题算法 序言 最近业务在巩固Java基础,编写了一个基于JavaFX的数独小游戏(随后放链接).写到核心部分发现平时玩的 ...

  2. Linux OOM Killer造成数据库访问异常排查

    服务器上的服务器访问异常,查看/va/log/messages发现如下: Sep 22 16:08:21 safeserver kernel: java invoked oom-killer: gfp ...

  3. 某毒霸网站存在信息泄露和sql注入

    通过钟馗之眼搜索目标网站的证书使用者找到信息泄露的网站, 点击上图中的edit会跳转 手工注入sql发现有效 that's all

  4. 全栈工程师-史上最强VSCODE插件-提高开发效率

    当你点进来的时候 ,你可能是被标题吸引进来的,也有可能是 偶然间,看到的,首先恭喜你,已经准备好向全栈开发工程师靠近 ,那我们不说废话,直接开始,咱们先从安装步骤开始讲起 ,因为有些人连插件在哪都不知 ...

  5. 5行Python代码就能实现刷爆全网的动态条形图!

    说起动态图表,最火的莫过于动态条形图了. 在B站上搜索「数据可视化」这个关键词,可以看到很多与动态条形图相关的视频. 好多视频都达到了上百万的播放量,属实厉害. 目前网上实现动态条形图现成的工具也很多 ...

  6. iOS 集成友盟分享图片链接为http时无法加载问题解决

    一.问题描述 UMShareWebpageObject *obj = [UMShareWebpageObject shareObjectWithTitle:title descr:shareText ...

  7. 使用GitHub发布自己的静态网站

    可参考GitHub官方文档 https://pages.github.com/ https://help.github.com/ 1.在本地新建一个文件夹.然后在文件夹中用git初始化文件夹 git ...

  8. 分布式事务MSDTC使用时,需要的配置

    服务器最终配置 DTC服务 组件 防火墙 这里,跟下面的解决方案有点差异,在添加2个规则之后,原本就有分布式相关的规则,也给开启了. 网上的解决办法 在服务里打开 Distributed Transa ...

  9. 为什么会有kafka消息系统?小问题藏着大细节!

    前言:老刘今天写这篇文章首先想对一些复制粘贴的博客表达不满:其次是想用通俗易懂的话解释消息系统:最后欢迎各位英雄好汉.女中豪杰前来battle. 1. 为什么有消息系统? 1.1 背景 今天复习kaf ...

  10. Mac 上使用 Shell 脚本 + adb shell 实现简单的 Android 模拟点击自动化测试

    需求 在 A 界面,点击跳转到 B 界面(该界面会执行一些业务),再点击返回键出现 Dialog 弹窗,点击确认退出按钮,返回 A 界面.不断循环. 思路 一开始想到的就是按键精灵,下了 mac 版使 ...