第四章 第四節 Scratch3 0過程的巢狀

2022-07-19 09:21:12 字數 1380 閱讀 7375

正如我們前面提到的,過程應當執行單一的、明確定義的任務。但是為了執行多個任務,通常都希望在過程中呼叫其他過程,這在scratch中是完全可行的。過程的巢狀提高了程式在結構化和組織上的靈活性。

我們通過畫兩個有趣的圖形為例來學習本節的內容。

首先定義乙個畫正方形的過程

其次定義乙個畫多個正方形的過程(呼叫上面的過程)

最後定義乙個旋轉正方形的過程(呼叫上面的過程)

繪製的圖形如下

過程的巢狀是不是非常強大呢?

我們再看乙個案例。這次仍從square過程開始,最終繪製乙個棋盤。

首先建立繪製一排正方形的過程row,如下圖所示。注意,正方形的個數使用引數count指定。為了讓程式簡單,我們規定正方形的邊長為20,當然也可以將其作為過程row的第二個引數。

上圖右展示了當過程row的引數為4的繪製結果,其中呼叫了四次 square 20 steps。每繪製乙個正方形,角色的位置會向右移動20步,從而為下一次繪製做好準備。在四個正方形全部繪製完後,最後一塊積木命令角色回到最初的位置。

若要繪製上圖所示的下一排正方形,只需要將角色向下移動20步後呼叫過程row即可。因此,重複呼叫過程row就能繪製任意行數,如下圖所示的過程checkers。

過程 checkers有兩個引數:行數和列數。當某行繪製完畢後,角色向下移動20步,為繪製下一行做好準備。本節的例子說明了程式劃分為更小、更易管理的片段的重要性。對複雜的程式來說,我們可以復用已經編寫好並通過測試的過程,甚至在其基礎上繼續構建過程,而不需要過分擔心底層是如何實現的。這樣便能將自己的精力放在最需要解決的問題上。

第五章 第四節 scratch3 0變數的修改

變數值的修改 scratch中有兩塊積木可以修改變數的值 將.設為積木直接賦予變數乙個新的值,與之前是多少無關,是絕對的 將.增加積木則是在當前的數值上增加或減少乙個數值,是相對的 修改變數的三種方法。推薦第2種方式 今天我們通過乙個數學題來學習變數的修改。題目很簡單 從1開始1 2 3 100,求...

ObjC第四節 繼承

繼 承 1 繼承 1.1 nsobject,根類,oc建立的類都繼承自根類,位於類層次結構的頂層,沒有父類 1.2 父類的例項變數和方法都可以被隱式的繼承過來成為子類的一部分,子類就可以直接訪問這些例項變數和方法 1.3 alloc和init是繼承自nsobject的方法 1.4 繼承的概念呈單鏈繼...

第四節 條件語句

if語句 if v 100else if v 50elseif語句不需要括號 用法高階 const filename abc.txt if contents,error ioutil.readfile filename error nilelse注意 contents和error變數都是在if 塊中...