Lập trình với Scratch là cuốn sách đầu tiên ở Việt Nam về ngôn ngữ lâp trình kéo thả Scratch cho trẻ em. Với phong cách viết Thực Hành Trải Nghiệm Trực Quan vì vậy người học bắt đầu học lập trình và học sinh từ 8 tuổi có thể TỰ HỌC và làm chủ Scratch một cách dễ dàng. Scratch là ngôn ngữ lập trình kéo thả được sáng tạo bởi Học viện MIT (Mỹ) và được học tập trên toàn thế giới với 40 triệu học sinh đang học tập. Tại Việt Nam theo dự thảo cải cách SGK mới Scratch được khuyến nghị giảng dạy cho học sinh từ lớp 3 đến lớp 9.
NGUYỄN HỮU HƢNG (Chủ biên) TẠ BÍCH – DƢƠNG LỰC – NGUYỄN MINH – NGUYỄN HOÀN NHÀ XUẤT BẢN ĐẠI HỌC QUỐC GIA HÀ NỘI NHÀ XUẤT BẢN ĐẠI HỌC QUỐC GIA HÀ NỘI 16 Hàng chuối - Hai Bà Trƣng - Hà Nội Điện thoại: Biên tập: (04) 39714896; Quản lý xuất bản: (04) 39728806; Tổng biên tập: (04) 39715011; Fax: (04) 39729436 Chịu trách nhiệm xuất bản: Giám đốc - Tổng biên tập: TS PHẠM THỊ TRÂM Biên tập chuyên ngành: ĐẶNG THỊ PHƢƠNG ANH Biên tập xuất bản: ĐẶNG THỊ PHƢƠNG ANH Chế bản: CÔNG TY TNHH HỌC VIỆN VIETSTEM Trình bày bìa: CƠNG TY TNHH HỌC VIỆN VIETSTEM Đối tác liên kết: CÔNG TY TNHH DỊCH VỤ VĂN HÓA SƢ PHẠM Địa chỉ: Số 3B, ngách 67, ngõ Gốc Đề, phƣờng Hoàng Văn Thụ, Quận Hoàng Mai, TP Hà Nội SÁCH LIÊN KẾT LẬP TRÌNH VỚI SCRATCH (HÀNH TRANG CHO TƢƠNG LAI) Mã số: 1L - 568PT2018 In 1.000 cuốn, khổ 19 x 26cm Công ty CP in Ngọc Trâm Địa chỉ: Số 107/E8 Thanh Xuân Bắc, Q Thanh Xuân, Hà Nội Số xác nhận ĐKXB: 4112-2018/CXBIPH/14-367/ĐHQGHN, ngày 09/11/2018 Quyết định xuất số: 596 LK-TN/QĐ - NXB ĐHQGHN, ngày 19/11/2018 In xong nộp lƣu chiểu năm 2018 MỤC LỤC Lời nói đầu Chƣơng I Phần mềm Scratch 3.0 Bài Giao diện 10 1.1 Khu vực sân khấu 10 1.2 Khu vực quản lí phơng sân khấu nhân vật 11 1.3 Thanh danh mục, Khu lƣu trữ Thƣ viện hƣớng dẫn 14 Bài Thanh danh mục khu lƣu trữ 16 1.1 Thanh danh mục 16 1.2 Khu lƣu trữ 19 Bài Sân khấu 21 3.1 Hệ toạ độ sân khấu 21 3.2 Các chế độ sân khấu 22 Bài Làm việc với phơng nền, nhân vật ngoại hình nhân vật 25 4.1 Chọn đối tƣợng từ thƣ viện 25 4.2 Vẽ 26 4.3 Lấy ngẫu nhiên 26 4.4 Tải đối tƣợng từ máy tính 27 4.5 Chụp ảnh 27 Bài Sử dụng công cụ vẽ 29 5.1 Chế độ Bitmap 29 5.2 Chế độ Vector 32 Bài Khu âm 35 6.1 Thêm xoá âm 35 6.2 Chỉnh sửa thêm hiệu ứng cho âm 37 Bài Thƣ viện hƣớng dẫn 39 Bài Khu lập trình 42 8.1 Khu lập trình 42 8.2 Phần lập trình mở rộng 45 Bài Ví dụ 47 9.1 Thêm nhân vật 47 9.2 Thay đổi tâm nhân vật 48 9.3 Vẽ cạnh 48 9.4 Hồn thành hình vng 49 Chƣơng II Thiệp sinh nhật 51 Bài Tạo hình vẽ chong chóng 53 1.1 Hình 53 1.2 Chong chóng 55 Bài Lập trình chong chóng quay 58 2.1 Khối lệnh lặp xoay 58 2.2 Điều chỉnh tâm nhân vật 59 2.3 Đối tƣợng que 60 Bài Lập trình đối tƣợng Chữ 63 3.1 Thêm chỉnh sửa chữ 63 3.2 Hiệu ứng 64 Bài Lập trình đối tƣợng Bóng bay 67 4.1 Thêm nhân vật Bóng bay 67 4.2 Lập trình để bóng bay 68 Bài Vị trí bắt đầu đối tƣợng 72 5.1 Nhảy tới vị trí cụ thể 72 Bài Bóng bay bay lên từ vị trí ngẫu nhiên 75 6.1 Vòng lặp lồng 75 6.2 Lấy giá trị ngẫu nhiên 75 Bài Lập trình đối tƣợng Nến 78 7.1 Thêm nhân vật từ thƣ mục 78 7.2 Lập trình cho đối tƣợng Nến 79 Bài Đối tƣợng Mũ Pháo 81 8.1 Thêm nhân vật từ thƣ mục 81 8.2 Lập trình cho Mũ 81 8.3 Lập trình cho Pháo 83 Bài Âm 86 9.1 Thêm âm 86 9.2 Lập trình 87 Bài 10 Lập trình với 89 10.1 Thêm đối tƣợng Ngôi 89 10.2 Tạo 89 10.3 Lập trình thay đổi hiệu ứng cho 90 10.4 Sắp xếp Ngôi 92 Chƣơng III Đồng hồ 96 Bài Vẽ mặt đồng hồ 98 Bài Giới thiệu góc hƣớng đối tƣợng 102 2.1 Giới thiệu góc 102 2.2 Hƣớng đối tƣợng .102 Bài Vẽ kim đồng hồ .105 3.1 Kim giây 105 3.2 Kim phút 105 3.3 Kim 106 3.4 Chỉnh lại vị trí số 107 Bài Lập trình kim giây 110 4.1 Hƣớng đối tƣợng 110 4.2 Lập trình kim giây 110 Bài Lập trình kim phút 113 Bài Lập trình kim 114 Chƣơng IV Đƣờng lên đỉnh Olympia 117 Tổng quan chƣơng trình 117 Bài Vẽ đƣờng leo núi 119 1.1 Vẽ đƣờng leo núi 119 1.2 Vẽ bậc 121 Bài Vẽ núi mây 123 2.1 Vẽ núi 123 2.2 Vẽ mây 125 Bài Lập trình cho Doraemon nói nghĩ 127 3.1 Lập trình để nhân vật nói 127 3.2 Lập trình để nhân vật nghĩ 128 3.3 Lập trình cho Doraemon 129 Bài Giới thiệu biến 130 4.1 Biến Scratch 130 4.2 Cách tạo biến 130 4.3 Cách sử dụng biến 131 Bài Lập trình cho Doraemon tính tốn 134 Tính tổng hai số ngẫu nhiên 134 Bài Lập trình để Doraemon hỏi 137 6.1 Khối lệnh hỏi 137 6.2 Khối lệnh nối 138 Bài Lập trình để Doraemon kiểm tra câu trả lời 140 7.1 Hai khối lệnh kiểm tra điều kiện 140 7.2 Kiểm tra câu trả lời 141 Bài Lập trình cho Nobita 143 8.1 Khối lệnh Glide 143 8.2 Khối lệnh xoay điều chỉnh quay 144 Bài Kết thúc chƣơng trình 146 Hồn thiện chƣơng trình 146 Chƣơng V Bảo vệ đảo 148 Tổng quan chƣơng trình 148 Bài Vẽ đồ 150 1.1 Vẽ biển đất liền 150 1.2 Vẽ hai đảo 152 Bài Vẽ Pháo Tàu địch 155 2.1 Vẽ Pháo 155 2.2 Vẽ Tàu địch 156 Bài Lập trình đối tƣợng Pháo Tâm ngắm 158 3.1 Lập trình đối tƣợng Pháo 158 3.2 Lập trình đối tƣợng Tâm ngắm 159 Bài Lập trình cho Lửa 162 4.1 Lập trình vị trí Lửa 162 4.2 Lập trình đối tƣợng Lửa nháy chuột 164 Bài Lập trình cho Tàu địch 167 5.1 Vị trí tàu hƣớng Đảo 167 5.2 Vị trí tàu hƣớng Đảo 169 Bài Lập trình cho Tàu địch (tiếp theo) 171 Lập trình cho 171 Bài Lập trình cho Tàu địch (tiếp theo) 175 Lập trình cho Tàu địch bị bắn 175 Bài Kết thúc chƣơng trình 178 8.1 Lập trình đối tƣợng chữ Start 178 8.2 Lập trình đối tƣợng chữ Game Over 179 Phụ lục: Mô mạch điện 183 Tổng quan chƣơng trình .183 Thiết kế đối tƣợng 185 Lập trình 185 Bài tập nâng cao 189 LỜI NĨI ĐẦU Học lập trình Việt Nam Từ năm học 2006 – 2007, học sinh đƣợc tiếp cận với máy tính thơng qua môn Tin học từ lớp tới lớp 12 Tuy nhiên, với định hƣớng chƣơng trình đặc thù nhà trƣờng nên lập trình phần nhỏ đƣợc giới thiệu tồn chƣơng trình Học lập trình giới Bill Gates lập trình phần mềm Tic-tac-toe 13 tuổi Zuckerberg bắt đầu lập trình máy tính từ lúc học lớp Elon Musk tự học lập trình nhỏ tuổi 12 cậu bán phần mềm – trò chơi khơng gian tên Blastar – với giá khoảng 500 đô la Từ năm 2000, lập trình mơn học bắt buộc trƣờng trung học Israel Năm 2014, phủ Anh cơng bố chƣơng trình dạy lập trình bắt buộc cho học sinh từ tuổi Đầu tháng 6/2016, phủ Nhật thức thơng qua chƣơng trình giáo dục lập trình cho học sinh phổ thơng Theo đó, tất học sinh cấp trƣờng cơng Nhật bắt buộc phải học lập trình từ đầu cấp Mục tiêu chƣơng trình để chuẩn bị lực lƣợng nhân sẵn sàng cho đƣợc phủ gọi “Cuộc cách mạng cơng nghiệp lần thứ tƣ”, kỉ ngun phát triển bùng nổ nhiều ngành nhƣ robot trí tuệ nhân tạo (Artificial intelligence-AI), thực tế ảo (Virtual reality-VR), thực tế ảo tăng cƣờng (Augmented Reality-AR), vạn vật kết nối (Internet of Things-IoT),… Mục đích sách Giới thiệu ngơn ngữ lập trình kéo thả phổ biến giới cho học sinh phổ thông, Scratch 3.0 (phiên mới, phát hành năm 2019) Cuốn sách kế thừa hoàn toàn ƣu điểm nội dung, cách trình bày sách “Lập trình với Scratch” xuất năm 2016 NXBGD (viết cho phiên Scratch 2.0), đồng thời bổ sung thông tin giao diện, cách lập trình nhƣ khối lệnh phiên Scratch 3.0 Giúp ngƣời học nhanh chóng làm chủ hồn tồn cách sử dụng Scratch 3.0, thông qua bƣớc hƣớng dẫn thiết kế lập trình 05 chƣơng trình mẫu theo cấp độ từ dễ đến khó Trên sở ngƣời học tự tạo ứng dụng trò chơi, ứng dụng hỗ trợ học tập nghiên cứu đơn giản nhƣ làm thiệp hay phim hoạt hình, tùy theo trình độ nhƣ ý tƣởng riêng Yêu cầu kiến thức sử dụng sách Để sử dụng sách hiệu quả, học sinh cần có số kiến thức định sử dụng chuột bàn phím máy tính, biết đếm đến 480, hiểu đƣợc phép nhân phép chia Nhiều khái niệm phức tạp nhƣ số âm, phân số, trục toạ độ, số đo góc đƣợc giải thích bổ sung nội dung sách Đối tƣợng sử dụng sách Học sinh Tiểu học (từ - 10 tuổi có hỗ trợ phụ huynh) học sinh Trung học sở Cảm ơn Chúng muốn cảm ơn ngƣời sáng tạo Scratch – Nhóm Lifelong Kindergarten MIT (Massachusetts Institute of Technology) Media Lab Giáo sƣ Mitch Resnick đứng đầu tạo cách thức tuyệt vời để dạy học sinh học lập trình tảng làm chủ công nghệ kỉ nguyên Trang web: https://scratch.mit.edu Chúng muốn cảm ơn thành viên nhóm tác giả tơi miệt mài khơng quản ngày đêm với mong muốn nhanh chóng đƣa Scratch 3.0 phổ biến cho cộng đồng học sinh Việt Nam Ngồi chúng tơi xin trân thành cảm ơn ủng hộ cộng đồng bạn đọc, em học sinh nƣớc động viên, khích lệ nhóm tác giả thơng qua phản hồi nhận xét tích cực sách “Lập trình với Scratch”, động lực để nhóm tác giả VIETSTEM tiếp tục công phổ biến giáo dục STEM có lập trình cho bạn học sinh VIỆT NAM Để có thêm thơng tin hỗ trợ, tài liệu nhƣ mềm ví dụ sách, bạn truy cập vào mục trợ giúp download tài liệu website: https://vietstem.com/ CHƢƠNG Trong chƣơng này, bạn đƣợc tìm hiểu phần mềm Scratch 3.0, thành phần giao diện chức phần Sau kết thúc chƣơng, bạn có đƣợc nhìn tổng quan cách sử dụng số chức phần mềm s Nếu Pháo bắn trúng (ngƣời chơi nháy chuột) vào Tàu địch điểm đƣợc cộng thêm tàu nổ biến Trong phần tập thực hành 6, ta tạo biến , , để tăng biến điểm lên ta sử dụng khối lệnh Từ học thực hành 5, ta thêm 30 hình ảnh vào Khu ngoại hình để thể hình ảnh từ phát nổ đến tro tàn Tàu địch, ta cần lập trình để thay đổi lần lƣợt qua 30 hình ảnh liên tục Hình 5.7.3 Một số hình ảnh nhân vật tàu phát nổ Hình 5.7.4 Lập trình cho tàu phát nổ Sau nổ xong lại hình tro tàn Chúng ta phải xố khối lệnh Cuối ghép khối lệnh lại với Hình 5.7.5 Thêm đoạn khối lệnh cho Tàu địch 176 Tóm tắt lý thuyết tập thực hành vietstem.com Hình ảnh nhân vật Tàu địch phát nổ Lập trình để Tàu địch chạm vào Đảo Đảo tất chƣơng trình dừng lại Thêm âm cho Tàu địch nổ lập trình để Tàu địch nổ âm đƣợc chạy 177 Đến chƣơng trình gần đƣợc hoàn thành Bài cuối hồn thiện thêm để chƣơng trình có bắt đầu kết thúc rõ ràng 8.1 Lập trình đối tƣợng chữ Start Khi nháy vào nút lệnh cờ xanh bắt đầu chƣơng trình, chữ Start lên sân khấu, báo hiệu trò chơi đƣợc bắt đầu Ta cần thiết kế đối tƣợng cách nháy vào biểu tƣợng Khung nhân vật chuyển đến Khu ngoại hình Chúng ta sử dụng cơng cụ để thêm chữ Start Ta chỉnh kích thƣớc, màu sắc, phơng chữ tuỳ ý Hình 5.8.1 Thêm đối tượng chữ Start Khi bắt đầu, đối tƣợng chữ Start lên vòng giây biến Chúng ta sử dụng lần lƣợt khối lệnh 178 , Hình 5.8.2 Lập trình cho đối tượng Start 8.2 Lập trình đối tƣợng chữ Game Over Việc thêm thiết kế đối tƣợng chữ Game Over làm tƣơng tự nhƣ đối tƣợng chữ Start Hình 5.8.3 Thêm đối tượng chữ Game Over Tính từ lúc bắt đầu chạy, suốt chƣơng trình đối tƣợng chữ Game Over ln đƣợc ẩn 179 Hình 5.8.4 Đoạn khối lệnh ẩn đối tượng Game Over Đến kết thúc chƣơng trình chữ Game Over lên Để đối tƣợng chữ Game Over biết đƣợc thời điểm kết thúc cần lập trình cho tàu thông báo kết thúc tới tất đối tƣợng khác chƣơng trình chạm vào hai đảo Để làm thông báo, ta sử dụng khối lệnh tạo thông báo cách nháy vào mũi tên khối lệnh chọn Thơng báo Hình 5.8.5 Tạo thơng báo Lúc này, cửa sổ để bạn đặt tên cho thông báo Sau đặt tên xong bạn nhấn nút Hình 5.8.6 Đặt tên cho thơng báo xuống dƣới khối lệnh lập trình cho Các bạn ghép khối lệnh đối tƣợng Tàu địch Ở vị trí này, điều kiện khối lệnh thông báo đƣợc chạy Sau thông báo xong chƣơng trình ngừng khối lệnh hành 180 Khối lệnh đáp án câu phần tập thực Hình 5.8.7 Đoạn khối lệnh hoàn chỉnh đối tượng Tàu địch Bây tất đối tƣợng khác nhận đƣợc thơng báo kết thúc khối lệnh Ta phải lập trình cho đối tƣợng chữ Game Over để nhận đƣợc thông báo kết thúc lên sân khấu Hình 5.8.8 Đoạn khối lệnh nhận thông báo Vậy lập trình xong cho chƣơng trình “Bảo vệ đảo” Các bạn cần hoàn thành đầy đủ tập cuối để chƣơng trình hồn thiện Các bạn tự sáng tạo thêm loại tàu khác, nhƣ tăng số lƣợng tốc độ tàu để trò chơi thú vị 181 Tóm tắt lý thuyết tập thực hành 182 Đây phần hƣớng dẫn ngắn gọn chƣơng trình Mơ mạch điện Chƣơng trình đƣợc ứng dụng kiến thức định luật Ơm mơn Vật lí để mơ hoạt động mạch điện đơn giản Tổng quan chƣơng trình Trong chƣơng trình, mạch điện gồm bóng đèn có điện trở R1 = 50 Ω, nguồn điện, khố K, biến trở R2, ampe kế đƣợc mơ tả Hình 6.1.1 183 Hình 6.1.1 Mơ tả mạch điện Khi khố K đóng, mạch điện xuất dòng điện với cƣờng độ I đƣợc tính cơng thức định luật Ôm: I = U R1 + R2 Trong công thức trên, U hiệu điện hai cực nguồn điện chiều có giá trị cố định 12 vôn, R1 điện trở bóng đèn, R2 điện trở biến trở Chƣơng trình gồm đối tƣợng: Khố K: Đóng vai trò nhƣ công tắc mạch điện, điều khiển mạch đóng ngắt Cơng tắc: Điều khiển khố K, gồm hai hình ảnh nhân vật tƣơng ứng với hai trạng thái đóng ngắt khố K Bóng đèn: Gồm nhiều hình ảnh đối tƣợng tƣơng ứng với trạng thái khác đèn Tăng R2: Điều khiển tăng điện trở biến trở 10 Ω Giảm R2: Điều khiển giảm điện trở biến trở 10 Ω 184 Thiết kế đối tƣợng Vẽ mạch điện Mạch điện đƣợc thiết kế nhƣ Hình 6.1.2: Hình 6.1.2 Mạch điện Trong mạch điện, đƣờng dây điện đƣợc vẽ công cụ , điện trở đƣợc vẽ công cụ , Ampe kế đƣợc vẽ công cụ công cụ Sau sử dụng hình chữ nhật tối màu để làm Chúng ta nhớ đặt hình chữ nhật sau công cụ , số chữ đƣợc thêm để mạch điện xuất lên phía Vẽ đối tƣợng Các đối tƣợng Tăng R2, Giảm R2, Công tắc đƣợc vẽ cơng cụ Hình 6.1.3 Hình ảnh đối tượng Đối tƣợng Bóng đèn hình ảnh đối tƣợng đƣợc đƣa vào tài liệu khoá học Lập trình Các bạn tạo năm biến với lựa chọn For all sprites Các biến có tên mơ tả chức nhƣ sau: : Chứa giá trị cƣờng độ dòng điện : Chứa giá trị trạng thái khố K đóng ngắt : Chứa giá trị điện trở đèn : Chứa giá trị điện trở biến trở R2 : Chứa giá trị hiệu điện hai cực nguồn điện chiều 185 Khi bắt đầu chƣơng trình, Sân khấu khởi tạo giá trị cho biến Khi khố K ngắt, cƣờng độ I có giá trị Khi khố K mở, I đƣợc tính theo cơng thức định luật Ơm đƣợc nhắc tới Hình 6.1.4 Khởi tạo giá trị biến tính cường độ dòng điện Biến biến đƣợc sân khấu Đối tƣợng khố K có hai trạng thái đóng ngắt, phụ thuộc vào biến Biến chứa giá trị tƣơng ứng với trạng thái đóng, giá trị tƣơng ứng trạng thái ngắt Hình 6.1.5 Hai trạng thái đóng ngắt khố K Khi bắt đầu chƣơng trình, khố K trạng thái đóng, đối tƣợng cơng tắc sử dụng biến để điều khiển khố K xoay theo phía tƣơng ứng với trang thái đóng xoay theo phía 90 trạng thái ngắt xoay theo hƣớng 60 186 Hình 6.1.6 Đối tượng cơng tắc Hai đối tƣợng Tăng R2 Giảm R2 điều chỉnh điện trở R2 Hình 6.1.7 Tăng R2 10Ω Hình 6.1.8 Giảm R2 10Ω Bóng đèn có hình ảnh trạng thái khác nhau, tƣơng ứng với giá trị cƣờng độ dòng điện 187 Hình 6.1.9 Các trạng thái tương ứng với giá trị cường độ dòng điện Sau hồn thành, bạn phát triển thêm chƣơng trình cách thêm chức thay đổi hiệu điện U 188 Bài tập nâng cao Sau học hồn thành ví dụ phần nội dung sách, bạn tiếp tục thử sức với chƣơng trình nhƣ sau: (Mã nguồn số chƣơng trình bạn tìm thấy trang web https://scratch.mit.edu/) Trò chơi tiếng Nguyễn Hà Đông - Flappy Bird Chƣơng trình Vẽ đồ thị 189 Chƣơng trình Máy tính Casio (Calculator) Chƣơng trình Giải phƣơng trình bậc Chƣơng trình Scratch Translate 190 ... 156 Bài Lập trình đối tƣợng Pháo Tâm ngắm 158 3.1 Lập trình đối tƣợng Pháo 158 3.2 Lập trình đối tƣợng Tâm ngắm 159 Bài Lập trình cho Lửa 162 4.1 Lập trình vị... 81 8.2 Lập trình cho Mũ 81 8.3 Lập trình cho Pháo 83 Bài Âm 86 9.1 Thêm âm 86 9.2 Lập trình 87 Bài 10 Lập trình với ... 171 Lập trình cho 171 Bài Lập trình cho Tàu địch (tiếp theo) 175 Lập trình cho Tàu địch bị bắn 175 Bài Kết thúc chƣơng trình 178 8.1 Lập trình đối tƣợng