Spreker 1: Veronderstel nou dat ek wou Krap te gee die vermoë nies as well. Wel, my eerste instink sou wees, soos voorheen, om 'n blok, noem dit nies. Spesifiseer dat ek wil spesifiseer met 'n aantal hoeveel keer Kras moet nies. Daarna kliek OK. Laat my skuif dit oor aan die regterkant myself te gee meer ruimte. En dan laat my gaan weer te herhaal, oorheersende die standaard 10 met n. Laat my gaan na die verklaring sê en sê nie "hallo", maar "Achoo" vir 'n sekonde. Dan neem 'n oomblik se uitstel. En dit is dit. Nou het ek 'n blok genoem nies, sowel as 'n blok genoem hoes. Sodat nou as ek wil Krap hoes en nies, ek kan eenvoudig spesifiseer 'n nies onder sy hoes. Drie keer, sê. Klik op die groen vlag, en ek sien inderdaad, hoes, hoes, hoes. Gevolg deur achoo, achoo, achoo. My mees realistiese nies tot op datum. Nou sien iets wat sleg oor hierdie ontwerp. Selfs al het ek nie blatante dubbele enige stukke van die legkaart, ek beslis gesleep en laat val mooi baie dieselfde stukke van die legkaart, gee die een funksie 'n steeds so effens ander naam as die ander, nies versus hoes. So, dit is 'n geleentheid vir factoring uit 'n paar algemene kode. Inderdaad, neem kennis van die enigste verskil tussen hoes en nies is dat 'n mens het Scratch gesegde "hoes," het die ander wat sê: "achoo." So kan ons nie een of ander manier te veralgemeen hierdie kode in so 'n manier dat ons eenvoudig spesifiseer watter woord wat ons wil te krap om te bly? En afhangende van die woord, dit sal effektief 'n hoes of wees dit sal 'n nies wees. So laat ons gaan voort en doen dit. Kom ons maak 'n derde funksie en noem hierdie een, "sê nie." en ek wil dit aanvaar, nie net 'n nommer, maar hierdie keer 'n string, andersins bekend as 'n woord of frase. En ons sal hierdie "woord." Noem En wat wil ek sê? En hoeveel keer moet ek wil hierdie woord te sê? Wel, laat ons 'n aantal spesifiseer, noem dit weer n. En net hierdie blok meer te maak leesbare, laat my voort te gaan en voeg 'n etiket met die naam "tye." Sodat wanneer jy lees hierdie blok van links na regs, is dit sê letterlik "sê woord n ​​keer." Laat my voort te gaan en kliek OK nou. En nou, laat my hierdie blok te implementeer, weer met behulp van 'n herhaling blok. Spesifiseer dat ek wil dit n keer te herhaal. Spesifiseer dat ek wil sê iets vir 'n sekonde. Maar eerder as iets hard gekodeer in hierdie funksie, laat se plaas drag en laat die Woord wat geslaag in Kom ons dan wag vir 'n sekonde. En nou, laat ons teruggaan en verbeter my implementering van nies en hoes, sodat hulle noem dit funksioneer op sy beurt. So laat se weggooi hierdie kode. Kom ons weggooi hierdie kode. Kom ons gaan na my persoonlike blok en sleep in "sê". En tik in die argument van "hoes" drie keer. En hier kom ons draai in "sê," "Achoo" drie keer. So nou laat my terug te gaan en te verfyn my implementering van hoes en nies, in so 'n manier dat die twee funksies noem dit die derde funksie, en daardeur die vermindering van die bedrag van dupliseer kode. So laat ons letterlik gooi hierdie kode weg. Kom ons gooi die kode weg. En hierdie keer, laat ons net spesifiseer dat hoes moet deur geïmplementeer word sê: "hoes" Sommige getal n keer. En so, kan ons teruggaan en weer te implementeer nies, sodat dit gebruik sê met 'n argument van "achoo" n keer. So, wat het ons gedoen? Ons het die kode wat erken gemeenskaplik aan beide ons hoes en ons nies funksies, ingereken dit uit in 'n nuwe derde funksie, en dan herskryf hoes en nies in sulke 'n manier wat hulle noem dat die derde en nuwe funksie. Nou het ons absoluut gemaak, die hele program meer ingewikkeld as wat dit regtig nodig het om te wees. Na alles, aan die einde van die dag, het ons moet net Scratch drie keer om te hoes en nies drie keer. En ons kon gedoen het wat met net 'n paar stukke van die legkaart. Maar as ons programme kry veel meer ingewikkeld, en ons programme meer gesofistikeerde, hierdie tegniek van factoring uit gemeenskaplike kode, of hiërargiese ontbind jou program in kleiner funksie, wat elk noem ander funksies, is 'n baie dwingende tegniek. Want dit sal verseker dat jou kode, selfs as dit kry meer kompleks is, bly maklik om te werk en ook baie leesbare. Inderdaad, oorweeg die eindresultaat. Wanneer die groen vlag word gebruik, hoes drie keer, nies drie keer. En dit is dit. Trouens, kom ons doen presies dit. Klik op die groen vlag en ons kry 'n hoes, twee hoes, drie hoes. Gevolg deur, ons hoop, een keer nies, twee nies, en 'n derde nies. Hoop hy kry beter gou.