SPEAKER 1 Katakan sekarang bahawa saya mahu untuk memberi Scratch keupayaan bersin juga. Nah, naluri pertama saya akan menjadi, seperti sebelum ini, untuk membuat blok, memanggil bersin ini. Menentukan bahawa saya ingin nyatakan dengan sejumlah berapa kali Scratch perlu bersin. Selepas itu klik OK. Izinkan saya beralih ini ke kanan untuk memberikan diri saya beberapa lebih banyak ruang. Dan maka biarlah saya sekali lagi pergi ke Ulang, mengatasi lalai 10 dengan n. Biar saya pergi ke penyata kata dan berkata tidak "hello", tetapi "Achoo" untuk satu kedua. Kemudian mengambil tempoh kepadaku saat. Dan itu sahaja. Sekarang saya mempunyai blok yang dipanggil bersin, serta blok yang dipanggil batuk. Jadi kini jika saya mahu Scratch batuk dan bersin, saya hanya boleh menentukan bersin bawah batuknya. Tiga kali, berkata. Klik bendera hijau, dan saya perlu melihat sesungguhnya, batuk, batuk, batuk. Diikuti dengan achoo, achoo, achoo. Saya bersin paling realistik setakat ini. Sekarang notis sesuatu yang buruk tentang reka bentuk ini. Walaupun saya tidak salinan secara terang-terangan mana-mana kepingan teka-teki, saya pasti mengheret dan jatuh cantik banyak kepingan teka-teki sama, memberi fungsi satu yang sentiasa jadi sedikit nama yang berbeza daripada yang lain, bersin berbanding batuk. Jadi ini adalah satu peluang untuk pemfaktoran beberapa kod yang sama. Malah, notis perbezaan hanya antara batuk dan bersin adalah salah satu yang mempunyai Scratch kata "batuk," yang lain yang mana berkata "achoo." Jadi tidak dapat kita entah bagaimana umum ini kod dalam apa-apa cara yang kita hanya nyatakan apa perkataan yang kita mahu untuk Scratch tinggal? Dan bergantung kepada perkataan itu, ia akan berkesan menjadi batuk atau ia akan bersin. Jadi mari kita pergi ke hadapan dan melakukan ini. Mari kita membuat fungsi ketiga dan panggilan satu ini, "katakan." dan saya mahu ia menerima, bukan hanya nombor, tetapi kali ini rentetan, atau dikenali sebagai perkataan atau frasa. Dan kami akan memanggil ini "dengan perkataan." Dan apa yang saya mahu katakan? Dan berapa kali saya mahu mengatakan perkataan ini? Nah mari kita menentukan nombor, memanggil sekali lagi n. Dan hanya untuk blok ini lebih dibaca, saya teruskan dan menambah label yang dikenali sebagai "masa." Supaya apabila anda membaca blok ini dari kiri ke kanan, ia beribu-kata "mengatakan perkataan n kali." Sekarang saya teruskan dan klik OK. Dan sekarang mari saya melaksanakan blok ini, sekali lagi menggunakan satu blok berulang. Menyatakan yang saya mahu ia mengulangi n kali. Menyatakan bahawa saya mahu mengatakan sesuatu untuk satu saat. Tetapi bukannya sesuatu yang keras dikodkan ke dalam fungsi ini, mari kita bukannya drag dan menggugurkan perkataan itu diluluskan masuk Mari kita kemudian tunggu satu saat. Dan sekarang mari kita kembali dan meningkatkan saya perlaksanaan bersin dan batuk, supaya mereka panggil ini berfungsi seterusnya. Jadi mari kita buang kod ini. Mari kita buang kod ini. Mari kita pergi ke blok adat saya dan seret dalam "berkata". Dan taip dalam hujah daripada "batuk" tiga kali. Seret dan turun di sini mari kita dalam "mengatakan," "Achoo" tiga kali. Jadi sekarang biarlah saya kembali dan memperbaiki saya pelaksanaan batuk dan bersin, dalam apa-apa cara yang kedua-dua fungsi memanggil fungsi ketiga ini, dengan itu meminimumkan amaun yang daripada salinan kod. Jadi mari kita betul-betul membuang kod ini jauh. Mari kita membuang kod ini jauh. Dan kali ini, mari kita hanya menentukan bahawa batuk perlu dilaksanakan oleh berkata "batuk" beberapa nombor n kali. Begitu juga, kita boleh kembali dan melaksanakan semula bersin supaya ia menggunakan mengatakan dengan hujah daripada "achoo" n kali. Jadi apa yang kita lakukan? Kami telah diiktiraf kod yang biasa untuk kedua-dua batuk dan kami kami bersin fungsi, kira ia keluar ke fungsi ketiga baru, dan kemudian batuk dan bersin ditulis semula dalam apa-apa cara yang mereka memanggil bahawa Fungsi ketiga dan baru. Sekarang kita telah benar-benar dibuat keseluruhan ini program yang lebih rumit daripada ia benar-benar perlu. Lagipun, pada akhir hari, kita hanya perlu Scratch batuk tiga kali dan bersin tiga kali. Dan kami boleh melakukan yang dengan hanya beberapa keping teka-teki. Tetapi sebagai program kami mendapat lebih rumit, dan program-program kita lebih canggih, teknik ini memfaktorkan kod biasa, atau hierarki menguraikan program anda ke dalam fungsi yang lebih kecil, di mana setiap satu memanggil fungsi lain, adalah sangat teknik menarik. Kerana ia akan memastikan bahawa kod anda, walaupun kerana mendapat lebih kompleks, masih mudah untuk mengemas kini dan juga sangat boleh dibaca. Sesungguhnya, mempertimbangkan hasil akhir. Apabila bendera hijau diklik, batuk tiga kali, bersin tiga kali. Dan itu sahaja. Malah, mari kita buat betul-betul itu. Klik bendera hijau dan kami mendapat satu batuk, batuk dua, tiga batuk. Diikuti oleh, kami berharap, sekali bersin, dua bersin dan bersin ketiga. Berharap dia mendapat yang lebih baik tidak lama lagi.