第十六次:模組化程式設計與問題解決實作(5)


模組化的核心思想-分而治之(Divide and Conquer.各個擊破)演算法

將一個大問題拆解成若干個小問題之後,透過逐一解決這些小問題,來解決整個大問題。

分而治之演算法與問題解決

問題1:排序

問題2:假設你是農場主人.有一小塊土地.你要將這塊土地均分為正方形.且分出的正方形要盡可能大.你如何解決這個問題?

動畫圖解

資料來源:Animations from Grokking Algorithms

原始影片https://goo.gl/NM3eku


實作1-模組化程式設計(分而治之)-花朵

執行結果

一.問題分析及演算法:

定義4個函式

(1)單片葉子

(2)五片葉子(呼叫單片葉子)

(3)花枝(呼叫單片葉子及五片葉子)

(4)花朵(呼叫花枝)

二.程式設計實作:

1.撰寫各個函式

(1)單片葉子

(2)五片葉子

a.重複?次.呼叫單片葉子函示

b.旋轉?度

 

 

(3)花枝

a.移動?點

b.呼叫單片葉子函示

c.移動?點

d.呼叫五片葉子

e.初始化(回到坐標軸原點)

 

(4)花朵

a.重複?次.呼叫花枝函示

b.旋轉?度

 

2.撰寫主程式

a.位置初始化

b.畫筆初始化

c.呼叫花朵函示

檔案存為108****-11scratch專案.sb3


模組化程式設計總結

1.何謂模組化程式設計

把程式拆解成一個一個模組,就是模組化程式設計

2.模組化是函式延伸觀念.一個模組可以包含很多函式

(1)函式-工具

(2)模組化-工具箱(含很多工具)


3.模組化程式設計優點

資料來源:

http://info23thing.blogspot.tw/2016/05/scratch.html


作業上傳

運算思維時間

貪吃蛇遊戲

遊戲規則說明:

這是一個簡單的蛇遊戲。選擇一種速度,然後使用箭頭鍵嘗試吃蘋果(紅色方塊),但要當心牆壁和自己。您隨時可以通過按空格鍵暫停遊戲

迷宮遊戲