1 00:00:00,000 --> 00:00:00,280 2 00:00:00,280 --> 00:00:02,970 >> SPEAKER 1: Supponiamo ora che volevo per dare la possibilità Scratch 3 00:00:02,970 --> 00:00:05,080 starnutire pure. 4 00:00:05,080 --> 00:00:07,710 Beh, il mio primo istinto sarebbe essere, come prima, per fare un 5 00:00:07,710 --> 00:00:10,070 blocco, chiamare questo starnuto. 6 00:00:10,070 --> 00:00:14,110 Preciso che mi piacerebbe precisare con un numero di quante volte 7 00:00:14,110 --> 00:00:15,800 Scratch dovrebbe starnutire. 8 00:00:15,800 --> 00:00:17,540 Successivamente fare clic su OK. 9 00:00:17,540 --> 00:00:20,370 Permettetemi di spostare questo verso destra per darmi un po 'piÚ spazio. 10 00:00:20,370 --> 00:00:26,070 >> E poi mi permetta di andare di nuovo a ripetere, sovrascrivendo il valore predefinito 10 con n. 11 00:00:26,070 --> 00:00:29,610 Lasciatemi andare alla comunicazione voce e dire che non "ciao", ma 12 00:00:29,610 --> 00:00:32,350 "Achoo" per un secondo. 13 00:00:32,350 --> 00:00:35,180 Poi prendere un attimo di tregua. 14 00:00:35,180 --> 00:00:36,040 E questo è tutto. 15 00:00:36,040 --> 00:00:39,220 >> Ora ho un blocco chiamato starnuto, nonchÊ un blocco chiamato tosse. 16 00:00:39,220 --> 00:00:46,550 Quindi, che ora se voglio Gratta a tossire e starnuto, posso semplicemente specificare un 17 00:00:46,550 --> 00:00:48,580 starnuto sotto la tosse. 18 00:00:48,580 --> 00:00:49,930 Tre volte, dire. 19 00:00:49,930 --> 00:00:55,560 Fare clic sulla bandiera verde, e dovrei vedere infatti, tosse, tosse, tosse. 20 00:00:55,560 --> 00:01:01,880 Seguito da achoo, achoo, achoo. 21 00:01:01,880 --> 00:01:04,180 I miei starnuti piÚ realistici fino ad oggi. 22 00:01:04,180 --> 00:01:09,240 >> Ora notate qualcosa che è male per questo motivo. 23 00:01:09,240 --> 00:01:11,930 Anche se non ho duplicato a titolo definitivo tutti i pezzi del puzzle, I 24 00:01:11,930 --> 00:01:15,020 sicuramente trascinati piuttosto tanto gli stessi pezzi del puzzle, dando 25 00:01:15,020 --> 00:01:18,660 la funzione One una sempre leggermente nome diverso rispetto agli altri, starnuto 26 00:01:18,660 --> 00:01:19,640 contro la tosse. 27 00:01:19,640 --> 00:01:23,410 Quindi, questa è un'opportunità per factoring qualche codice comune. 28 00:01:23,410 --> 00:01:27,020 Infatti, notare l'unica differenza tra tosse e starnuto è quello 29 00:01:27,020 --> 00:01:30,710 Scratch ha detto "tosse", il altro di cui dire "achoo". 30 00:01:30,710 --> 00:01:35,010 >> Quindi non potremmo in qualche modo generalizzare questo codice in modo tale che, semplicemente 31 00:01:35,010 --> 00:01:37,990 Specifichiamo che parola che vogliamo per il Gratta soggiornare? 32 00:01:37,990 --> 00:01:41,170 E a seconda di quella parola, lo farà effettivamente essere un colpo di tosse o 33 00:01:41,170 --> 00:01:42,370 sarà uno starnuto. 34 00:01:42,370 --> 00:01:43,580 Quindi cerchiamo di andare avanti e fare questo. 35 00:01:43,580 --> 00:01:49,500 Facciamo una terza funzione e chiamare questo ", dice." e voglio che 36 00:01:49,500 --> 00:01:53,360 accettare, non solo un numero, ma questa volta una stringa, altrimenti noto come 37 00:01:53,360 --> 00:01:54,980 parola o frase. 38 00:01:54,980 --> 00:01:57,500 >> And we'll call this "word." 39 00:01:57,500 --> 00:01:59,500 E quante volte faccio voglio dire questa parola? 40 00:01:59,500 --> 00:02:02,680 Beh diciamo specificare un numero, chiamando di nuovo n. 41 00:02:02,680 --> 00:02:05,540 E proprio per rendere questo blocco piÚ leggibile, lasciami andare avanti e aggiungere un 42 00:02:05,540 --> 00:02:11,000 etichetta chiamata "tempi". CosÏ che quando si Leggere questo blocco da sinistra a destra, si 43 00:02:11,000 --> 00:02:14,380 letteralmente dice "dicono volte la parola n". 44 00:02:14,380 --> 00:02:15,760 >> Ora lasciatemi andare avanti e fare clic su OK. 45 00:02:15,760 --> 00:02:18,320 46 00:02:18,320 --> 00:02:22,750 E adesso lasciatemi implementare questo blocco, nuovamente utilizzando un blocco di ripetizione. 47 00:02:22,750 --> 00:02:25,680 Specificando che voglio a ripetere n volte. 48 00:02:25,680 --> 00:02:29,480 Precisando che voglio dire qualcosa per un secondo. 49 00:02:29,480 --> 00:02:33,750 Ma piuttosto che qualcosa di duro codificato in questa funzione, diamo invece trascinamento 50 00:02:33,750 --> 00:02:36,450 e rilasciare la parola che è stato passato dentro 51 00:02:36,450 --> 00:02:38,790 Andiamo quindi attendere per un secondo. 59 00:02:39,297 --> 00:02:43,387 CosÏ ora lasciami andare indietro e perfezionare la mia implementazioni di tosse e starnuti, 60 00:02:43,387 --> 00:02:47,367 in modo tale che queste due funzioni chiamare questa terza funzione, cosÏ 61 00:02:47,367 --> 00:02:49,627 minimizzando la quantità di duplicare il codice. 62 00:02:49,627 --> 00:02:52,237 Quindi cerchiamo di buttare letteralmente questo codice di distanza. 63 00:02:52,237 --> 00:02:54,037 Buttiamo questo codice via. 64 00:02:54,037 --> 00:02:57,707 E questa volta, facciamo semplicemente specificare che tosse dovrebbe essere attuato da 65 00:02:57,707 --> 00:03:02,607 dire "tossire" un determinato numero n di volte. 66 00:03:02,607 --> 00:03:06,987 >> E allo stesso modo, possiamo tornare indietro e re-implementare starnuto in modo che utilizzi 67 00:03:06,987 --> 00:03:13,577 dire con un argomento dei tempi "achoo" n. 68 00:03:13,577 --> 00:03:14,687 Allora cosa abbiamo fatto? 69 00:03:14,687 --> 00:03:18,417 Abbiamo riconosciuto il codice che è stato comune sia per la nostra tosse e la nostra 70 00:03:18,417 --> 00:03:22,127 starnutire funzioni, presi fuori in una nuova terza funzione, e poi 71 00:03:22,127 --> 00:03:25,377 tosse riscritto e starnutire in tale un modo che essi chiamano 72 00:03:25,377 --> 00:03:27,177 terza e nuova funzione. 73 00:03:27,177 --> 00:03:30,297 >> Ora abbiamo assolutamente fatto tutto questo programma piÚ complicato di quanto 74 00:03:30,297 --> 00:03:31,377 davvero bisogno di essere. 75 00:03:31,377 --> 00:03:34,307 Dopo tutto, alla fine della giornata, abbiamo solo bisogno Scratch a tossire tre volte 76 00:03:34,307 --> 00:03:35,587 e starnutire tre volte. 77 00:03:35,587 --> 00:03:38,007 E avremmo potuto fare che, con Pochi pezzi del puzzle. 78 00:03:38,007 --> 00:03:41,197 Ma, come i nostri programmi ottenere molto di piÚ complicato, ei nostri programmi piÚ 79 00:03:41,197 --> 00:03:45,257 sofisticata, questa tecnica di factoring out codice comune, o 80 00:03:45,257 --> 00:03:49,007 gerarchica decomposizione tuo programma in funzione di piccoli, ciascuno dei quali 81 00:03:49,007 --> 00:03:51,846 chiamare altre funzioni, è molto tecnica convincente. 82 00:03:51,846 --> 00:03:55,627 PerchÊ farà in modo che il codice, anche come si arriva piÚ complessi, rimane 83 00:03:55,627 --> 00:03:58,087 facile da aggiornare e anche molto leggibile. 84 00:03:58,087 --> 00:03:59,627 >> Infatti, si consideri il risultato finale. 85 00:03:59,627 --> 00:04:03,917 Quando la bandiera verde viene cliccato, tosse per tre volte, starnutire tre volte. 86 00:04:03,917 --> 00:04:05,007 E questo è tutto. 87 00:04:05,007 --> 00:04:07,007 In realtà, facciamo esattamente questo. 88 00:04:07,007 --> 00:04:12,187 Fare clic sulla bandiera verde e otteniamo una tosse, due colpi di tosse, tre colpi di tosse. 89 00:04:12,187 --> 00:04:18,607 Seguito da, speriamo, una volta starnutire, due starnuti, e un terzo starnuto. 90 00:04:18,607 --> 00:04:19,857 Spero che si rimetta presto. 91 00:04:19,857 --> 00:04:20,892