SPEAKER 1: Misalkan sekarang bahwa aku ingin untuk memberikan Scratch kemampuan bersin juga. Nah, naluri pertama saya akan menjadi, seperti sebelumnya, untuk membuat blok, sebut bersin ini. Tentukan bahwa saya ingin menentukan dengan angka berapa kali Scratch harus bersin. Setelah itu klik OK. Biarkan aku pindah ini ke kanan untuk memberi diriku beberapa ruang lagi. Dan kemudian membiarkan saya lagi pergi ke Ulangi, override default 10 dengan n. Biarkan aku pergi ke pernyataan mengatakan dan janganlah kamu mengatakan "hello", tetapi "Achoo" untuk satu detik. Kemudian mengambil istirahat sejenak. Dan itu saja. Sekarang saya memiliki blok yang disebut bersin, serta blok yang disebut batuk. Sehingga jika saya ingin Gores batuk dan bersin, saya hanya dapat menentukan bersin bawah batuknya. Tiga kali, katakan. Klik bendera hijau, dan aku harus lihat memang, batuk, batuk, batuk. Diikuti oleh Achoo, Achoo, Achoo. Bersin paling realistis saya sampai saat ini. Sekarang perhatikan sesuatu yang buruk tentang desain ini. Meskipun saya tidak duplikat langsung setiap potongan puzzle, saya pasti menyeret dan menjatuhkan cantik banyak potongan-potongan teka-teki yang sama, memberikan satu fungsi yang pernah jadi sedikit nama yang berbeda dari yang lain, bersin dibandingkan batuk. Jadi ini adalah kesempatan bagi anjak beberapa kode umum. Memang, melihat satu-satunya perbedaan antara batuk dan bersin adalah salah satu yang memiliki Scratch pepatah "batuk," kata lain yang mengatakan "Achoo." Jadi tidak bisa kita entah bagaimana generalisasi ini kode sedemikian rupa sehingga kita hanya menentukan apa kata kita inginkan untuk Gores untuk tinggal? Dan tergantung pada kata itu, itu akan efektif menjadi batuk atau itu akan menjadi bersin. Jadi mari kita pergi ke depan dan melakukan hal ini. Mari kita membuat fungsi ketiga dan panggilan yang satu ini, "katakan." dan saya ingin menerima, bukan hanya nomor, tapi kali ini string, atau dikenal sebagai kata atau frase. Dan kita akan menyebutnya "kata." Dan apa yang ingin saya katakan? Dan berapa kali saya ingin mengatakan kata ini? Nah mari kita tentukan nomor, menyebutnya lagi n. Dan hanya untuk membuat blok ini lebih dibaca, biarkan aku pergi ke depan dan menambahkan label yang disebut "kali." Sehingga bila Anda membaca blok ini dari kiri ke kanan, itu harfiah mengatakan "mengucapkan kata n kali." Sekarang biarkan aku pergi ke depan dan klik OK. Dan sekarang biarkan aku menerapkan blok ini, lagi menggunakan blok ulangi. Menentukan bahwa saya ingin untuk mengulangi n kali. Menentukan bahwa saya ingin mengatakan sesuatu untuk satu detik. Namun, bukannya sesuatu yang sulit kode ke dalam fungsi ini, mari kita malah seret dan drop kata yang telah berlalu masuk Mari kita kemudian menunggu selama satu detik. Dan sekarang mari kita kembali dan meningkatkan saya implementasi dari bersin dan batuk, sehingga mereka menyebutnya berfungsi pada gilirannya. Jadi mari kita membuang kode ini. Mari kita membuang kode ini. Mari kita pergi ke blok kebiasaan saya dan drag "mengatakan". Dan ketik argumen dari "batuk" tiga kali. Dan di sini kita tarik dalam "mengatakan," "Achoo" tiga kali. Jadi sekarang biarkan aku kembali dan memperbaiki saya implementasi dari batuk dan bersin, sedemikian rupa bahwa kedua fungsi memanggil fungsi ketiga ini, sehingga meminimalkan jumlah dari duplikat kode. Jadi mari kita benar-benar melemparkan kode ini pergi. Mari kita membuang kode ini pergi. Dan kali ini, mari kita hanya menentukan bahwa batuk harus dilaksanakan oleh mengatakan "batuk" beberapa nomor n kali. Dan juga, bisa kita kembali dan kembali menerapkan bersin sehingga menggunakan mengatakan dengan argumen dari "Achoo" n kali. Jadi apa yang kita lakukan? Kami telah diakui kode yang sama untuk kedua batuk dan kami kami bersin fungsi, faktor itu menjadi fungsi ketiga baru, dan kemudian ditulis ulang batuk dan bersin sedemikian dengan cara yang mereka sebut itu Fungsi ketiga dan baru. Sekarang kita telah benar-benar membuat seluruh ini program yang lebih rumit dari yang benar-benar perlu. Setelah semua, pada akhir hari, kita hanya perlu Scratch batuk tiga kali dan bersin tiga kali. Dan kita bisa melakukan itu dengan hanya beberapa potongan puzzle. Tapi seperti program kami mendapatkan lebih banyak rumit, dan program kita lebih canggih, teknik ini anjak keluar kode umum, atau hirarkis membusuk program Anda ke dalam fungsi yang lebih kecil, yang masing-masing memanggil fungsi-fungsi lainnya, adalah sangat teknik menarik. Karena akan memastikan bahwa kode Anda, bahkan karena mendapat lebih kompleks, sisa-sisa mudah untuk memperbarui dan juga sangat mudah dibaca. Memang, mempertimbangkan hasil akhir. Ketika bendera hijau diklik, batuk tiga kali, bersin tiga kali. Dan itu saja. Bahkan, mari kita melakukan hal itu. Klik bendera hijau dan kami mendapatkan satu batuk, batuk dua, tiga batuk. Diikuti oleh, kami berharap, sekali bersin, dua bersin, dan bersin ketiga. Berharap dia akan lebih baik segera.