>> SPEAKER 1: Předpokládejme nyní, že jsem chtěl aby Scratch schopnost
kýchat stejně.
No, by moje první instinkt být, stejně jako dříve, aby se
blok, volat toto kýchnutí.
Určete, které bych chtěl upřesnit s číslem, kolikrát
Scratch by kýchání.
Poté klepnutím na tlačítko OK.
Dovolte mi, abych přesunout na správnou , abych si trochu více prostoru.
>> A pak ať mi znovu jít do Opakovat, přepíše výchozí 10 s n.
Nech mě jít do výkazu řekněme a říci ne "ahoj", ale
"Achoo" na jednu sekundu.
Pak se na chvilku oddech.
A to je vše.
>> Teď mám blok s názvem kýchnutí, stejně jako blok s názvem kašel.
Takže teď, když chci Stírací kašel a kýchnutí, mohu jednoduše zadat
kýchání pod jeho kašel.
Třikrát, říkají.
Klepněte na zelenou vlajkou, a já jsem měl viz opravdu, kašel, kašel, kašel.
Následoval Achoo, Achoo, Achoo.
Moje nejvíce realistické kýchá k dnešnímu dni.
>> Nyní Všimněte si něco, co je špatné o tomto návrhu.
I když ne úplně Duplikovat žádné skládačky, jsem
rozhodně přetáhnout dost Téměř totéž skládačky, poskytující
jedna funkce jen nepatrně jiný název než ostatní, kýchnutí
proti kašli.
Tak tohle je příležitost pro factoring z nějakého společného kódu.
Ostatně, všimněte si jediný rozdíl mezi kašel a kýchání je, že jeden
má Scratch říkat "kašle", z toho ostatní říkají "Achoo."
>> Takže bychom nemohli nějak zobecnit kód tak, že se jednoduše
určit, jaké slovo chceme Scratch zůstat?
A v závislosti na dané slovo, že bude účinně se kašel nebo
to bude kýchnutí.
Tak pojďme do toho a to.
Pojďme udělat třetí funkci a volání tenhle, "řekl." a chci ho
přijímat, ne jen čísla, ale tentokrát řetězec, jinak známý jako
slovo nebo frázi.
>> And we'll call this "word."
A kolikrát mám chci říci toto slovo?
Tak pojďme zadat číslo, znovu volá n.
A jen proto, aby tento blok více čitelný, nech mě jít napřed a přidat
Štítek s názvem "časy." Takže když jste přečtěte si tento blok zleva doprava, je
doslova říká "říká slovo n-krát."
>> Teď mě nech jít dopředu a klepněte na tlačítko OK.
A teď mi dovolte provedení tohoto bloku, opět pomocí opakování bloku.
Určení, že chci to opakovat n-krát.
Určení, že chci říct, něco na jednu sekundu.
Ale spíše než něco, pevný kódované do této funkce, pojďme místo drag
a pokles slovo, které je byly předány palců
Pojďme se tedy čekat na jednu sekundu.
Tak teď mi dovolte vrátit se a vylepšit můj implementace kašel a kýchání,
takovým způsobem, že tyto dvě funkce volání této třetí funkci, a tím
minimalizaci množství o duplicitní kód.
Takže pojďme se doslova hodit Tento kód pryč.
Pojďme hodit tento kód pryč.
A tentokrát, pojďme jednoduše určit, že kašel by mělo být provedeno
říká "kašel" nějaké číslo n kolikrát.
>> A podobně, můžeme se vrátit a znovu zavést kýchnutí tak, aby používala
říci, s argumentem z "Achoo" n krát.
Takže to, co jsme udělali?
Jsme rozpoznalo kód, který byl společné pro oba naše kašel a naše
kýchání funkce, zapracovány ji do nová třetí funkci, a poté
přepsána kašel a kýchání v takové tak, že říkají, že
Třetí a nové funkce.
>> Nyní jsme zcela z tohoto celku Program složitější, než to
skutečně musí být.
Koneckonců, na konci dne, se stačí Scratch kašlat třikrát
a kýchání třikrát.
A tak bychom mohli udělat, aby se jen pár dílků skládačky.
Ale jak naše programy se mnohem více složité, a naše programy více
sofistikované, tato technika vytknutí společný kód, nebo
hierarchické rozkládající program na menší funkce, z nichž každá
volat další funkce, je velmi přesvědčivé techniky.
Vzhledem k tomu, že se zajistí, že váš kód, i když to bude složitější, zbytky
snadno aktualizovat a také velmi čitelný.
>> Ve skutečnosti, za konečný výsledek.
Když je zelená vlajka klikli, kašel třikrát, kýchání třikrát.
A to je vše.
Ve skutečnosti, pojďme dělat přesně to.
Klepněte na zelenou vlajkou a dostaneme jednu kašel, kašel dvě, tři kašle.
Následoval, doufáme, že jednou kýchnout, dvě kýchá, a třetí kýchnutí.
Doufám, že to bude lepší brzy.