1. 程式人生 > >CodeMonkey少兒程式設計第2章 turnTo物件

CodeMonkey少兒程式設計第2章 turnTo物件

## 目標 ## * 瞭解**物件**的概念 * 瞭解**方法**與**物件**的關係 * 掌握turnTo指令的用法 在開始本章的學習之前,我們先來複習一下上一章的知識點。
在第1章中,我們學會了在這個遊戲中最簡單的兩個指令。
* step x
其中,x既可以是正數,也可以是負數。x是正數時,上述指令可以實現讓小猴子向前移動x步的功能,為負數時則是倒著走,也就是向後移動。
* turn y
其中,y可以取值為left、right或是45這樣具體的角度數值,它們分別表示讓小猴子向左、向右旋轉,或是向左旋轉45度。
通過這兩個簡單的指令,我們不難總結出指令的一般格式如下:
>**指令 引數**
一定要注意的是,指令與引數之間的空格是不可以省略的。不然,計算機就看不明白了。

## turnTo ## 對於turn指令,你會不會覺得使用起來不是很方便,尤其是在需要給出具體角度資料作為引數時。那麼,有沒有更簡單好用的指令可以替代turn呢?
答案是有的。人類總是習慣於偷懶,所以,在這個遊戲中,我們又給出了一個名叫turnTo的指令。
它的用法如下,它同樣遵循“**指令 引數**”的格式。
>**turnTo 物件**
以上指令可以讓小猴子直接轉向你指定的物件,而不必給出具體的角度數值。

## 物件 ## 這裡出現了一個新的名詞——物件。
要怎麼理解物件這一概念呢?你可以暫時地把物件當作物體去理解,遊戲中出現的每一個物體,都是一個物件。
每個物件都有自己獨一無二的名字,把滑鼠移動到相應的物件上,它的名字就會顯示出來。
[![objects](https://img2020.cnblogs.com/blog/508474/202101/508474-20210122082315339-1150072426.gif "點選體驗CodeMonkey")](https://app.codemonkey.com/class/9kcpf) 為了簡化程式碼的輸入,點選任一物件,它的名字就會自動書寫在右側的程式碼輸入區裡了。
說起物件,還有兩個與之相關的新名詞,**屬性**和**方法**。
屬性是指物件的性質,拿香蕉這個物件來說,顏色就是這個物件的一個屬性。
再舉一個屬性的例子。讓我們考慮人這一個物件,那麼,他的身高、體重、性別等,也都是這個物件的屬性。
接著再介紹方法。方法就是指一個物件所能夠完成的動作,譬如遊戲中的小猴子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即可