SCRATCH được phát triển bởi MIT Media Lab, là một ngôn ngữ lập trình trực quan cho trẻ em 6 tuổi trở lên. Scratch dễ dàng thực hiện được các câu chuyện, các ý tưởng, các trò chơi, các hiệu ứng. Việc lập trình với Scratch rất đơn giản: kéo thả các khối lệnh đã có sẵn và lắp ghép chúng với nhau theo 1 trình tự hợp lí. Kể từ khi phát hành vào năm 2007, hơn 800.000 người dùng đã tham gia vào Web Scratch và đã chia sẻ trên 1,7 triệu dự án phần mềm ứng dụng, trò chơi. Điểm đặc biệt của các chương trình trên Scratch là chúng có thể chạy trên nhiều nền tảng: MacOS Windows, Linux,.. tính chia sẽ cao, mọi người có thể tải về và phát triển theo ý của mình. Scratch Editor chạy trực tiếp trên web. Bên cạnh đó, Scratch Editor cũng có phiên bản chạy độc lập trên máy tính, không cần kết nối internet (Scratch Offline Editor).
Trang 1[Date]
Trang 2ĐỘI HÌNH CHUYÊN TIN HỌC HOÁ 2014 1
CHƯƠNG 2 Nhóm lệnh: Motion, Looks, Spite và lệnh lặp
I MOTION
Nhóm lệnh MOTION là nhó lệnh đầu tiên trong 10 nhóm lệnh mà SCRATCH hỗ trợ, gồm các thẻ lệnh: move (di chuyển), turn (xoay), goto (x,y) (di chuyển đến toạ độ x,y),
Ví dụ thẻ lệnh “move … steps” trong nhóm lệnh MOTION
- Kéo và thả thẻ lệnh này vào màn hình scripts
Di chuyển 10 bước Xoay phải 15 độ
Di chuyển đến tọa độ (0,0)
Di chuyển theo chuột
Di chuyển đến toạ độ (x,y) trong thời gian 1 s
Nếu chạm biên thì quay lại
Trang 3ĐỘI HÌNH CHUYÊN TIN HỌC HOÁ 2014 2
- Thử double-click một lần vào thẻ lệnh trên giao diện script, chú mèo đã di chuyển sang phải “một chút”
- Nếu muốn mỗi bước di chuyển của chú mèo xa hơn, ta chỉ cần thay đổi số steps
Ví dụ: Sửa “move 10 steps” thành “move 20 steps”
Mở rộng: Kéo-thả 2 khối lệnh và ghép chúng vào nhau theo đúng thứ tự như sau:
Khi ta double-click vào khối lệnh này, chú mèo sẽ di chuyển ngược lại một chút rồi di chuyển đến 1 vị trí Ta kéo chú mèo càng xa thì chú mèo di chuyển càng nhanh
Bạn hãy tự khám phá các thẻ lệnh thú vị khác trong nhóm lệnh “Motion” Nó sẽ
giúp bạn hiểu rõ hơn về nhóm lệnh này
Trang 4ĐỘI HÌNH CHUYÊN TIN HỌC HOÁ 2014 3
- Các thẻ lệnh “say” và “think” sẽ giúp chú mèo
“nói” và “suy nghĩ”
- “Show” và “Hide”: hiện hoặc ẩn nhân vật
- “Change color” và “set color” sẽ làm thay đổi
toàn bộ màu sắc của chú mèo
- Kéo xuống dưới ta có “change size” và “set size”
sẽ làm thay đổi kích cỡ nhân vật
Mở rộng: Kết hợp “Motion” và “Looks” giúp tạo nên một chú mèo thú vị hơn
Trang 5ĐỘI HÌNH CHUYÊN TIN HỌC HOÁ 2014 4
III Sprite
Sprite hiểu đơn giản là các “nhân vật”, các “hình ảnh” của chúng
ta Ban đầu chạy chương trình thì mặc định sprite là chú mèo màu vàng
Tuy nhiên ta không chỉ đơn giản biết đến chú mèo màu vàng, ta còn có thể thêm vào nhiều “nhân vật” khác như sau:
1 Giao diện quản lí nhân vật:
Trang 6ĐỘI HÌNH CHUYÊN TIN HỌC HOÁ 2014 5
- Thêm nhân vật mới từ thư viện có sẵn
- (Hình cây cọ) Tự vẽ sprite theo ý của mình
- Thêm nhân vật mới từ tập tin hình ảnh trong máy tính
- Chụp hình từ camera rồi lấy làm sprite
a Các thao tác cơ bản:
Ở đây ta chỉ chú trọng nút lệnh đầu tiên đó là thêm 1 nhân vật mới từ thư viện
có sẵn Click vào nút lệnh đầu tiên và giao diện thêm nhân vật hiện ra
Bạn có thể click chọn bất cứ nhân vật nào mà bạn thích rồi OK để thêm vào
Gợi ý: Sprites được phân chia thành từng chủ đề nên rất dễ dàng để chọn lựa: động vật,
tưởng tượng, đồ vật, âm nhạc …
Khi bạn click chuột phải vào một nhân vật thì sẽ có menu điều khiển như sau:
Trang 7ĐỘI HÌNH CHUYÊN TIN HỌC HOÁ 2014 6
- Duplicate: tạo ra 1 bản sao nhân vật mới giống hệt nhân vật đang chọn
- Delete: xóa nhân vật
- Save to local file: lưu thành tập tin hình ảnh trong máy tính
- Hide/show: ẩn/hiện nhân vật
b Costumes
“Costumes” gồm các thẻ lệnh giúp thay đổi hình dạng, màu sắc, trạng thái của từng
nhân vật (sprite) Để xem một nhân vật có những costumes nào, ta chọn nhân vật đó,
sau đó vào thẻ Costumes (chính giữa thẻ Script và Sounds)
Giao diện chính sửa costume như sau:
- Khung 1 là gồm các biểu tượng chức năng chính như sau:
o Tạo costume mới bằng cách chọn từ thư viện của Scratch
o Tự thiết kế tạo costume mới
o Chèn costume có sẵn từ đĩa cứng máy tính
o Tạo costume mới bằng cách chụp từ camera
- Khung 2 là các costume dạng thu nhỏ của nhân vật Mặc định của SCRATCH thì chú mèo vàng có 2 costume
- Khung 3 là các nút chức năng mà SCRATCH hỗ trợ để thao tác với nhân vật: vẽ, tuỳ chỉnh kích thước, tô màu …
Trang 8ĐỘI HÌNH CHUYÊN TIN HỌC HOÁ 2014 7
- Khung 4 là màn hình chính thể hiện chi tiết từng costume
Mở rộng: khối lệnh forever (nằm trong nhóm lệnh Control)
(Ghi chú: thẻ lệnh forever nằm trong nhóm “Control”)
IV Lệnh lặp cơ bản
Khi học bất kì ngôn ngữ lập trình nào, đều có khái niệm “lặp” hay “cấu trúc lặp” Trong Scratch cũng thế, nhưng đơn giản hơn nhiều bởi vì tất cả đều được thể hiện dưới
dạng khối lệnh, cô đọng và dễ hiểu
Double-click vào nguyên khối 3 lệnh đó để chạy thử Chú mèo di chuyển 1 chút,
sau đó đổi màu và thay đổi trạng thái Bạn muốn chú mèo làm 2 lần như vậy?
Trang 9ĐỘI HÌNH CHUYÊN TIN HỌC HOÁ 2014 8
Hãy chịu khó… Bạn kiên nhẫn hơn? Muốn chú mèo làm 3 lần như vậy?
Bạn có can đảm làm chú mèo lặp lại…10 lần? Thật ra công việc đơn giản hơn chúng ta tưởng Chúng ta có một công cụ tuyệt vời để giảm thiểu tối đa công sức Xóa, quên đi các khối lệnh dài dòng ở trên Hãy cùng kéo-thả lại khối lệnh để được như sau:
Như vậy là đã xong ! Chú mèo di chuyển lặp lại 10 lần liên tiếp Có thể xem khối
lệnh “repeat 10” như là việc ta “nhân 10 lần các khối lệnh (move, change color, next
costume)”
Hãy làm thử để cảm nhận sự khác biệt! Trong trường hợp ta muốn chú mèo “di chuyển mãi mãi”? Hãy thử với khối lệnh “forever”
Trang 10ĐỘI HÌNH CHUYÊN TIN HỌC HOÁ 2014 9
Cuối cùng, tôi sẽ chia sẻ cho các bạn một “tuyệt chiêu nhỏ”…
nó Tôi sẽ không tiết lộ khối các lệnh trên làm gì, bạn hãy tự làm thử và cảm nhận
Trang 11ĐỘI HÌNH CHUYÊN TIN HỌC HOÁ 2014 10
CHƯƠNG 3: IF THEN, WHEN KEY PRESSED
Trang 12ĐỘI HÌNH CHUYÊN TIN HỌC HOÁ 2014 11
Key … pressed? Biểu thị tác động khi nhấn phím (dấu … thay bằng 1 phím trên bàn phím) Muốn chú mèo di chuyển qua lại lên xuống
Trang 13ĐỘI HÌNH CHUYÊN TIN HỌC HOÁ 2014 12
tại sao vì đây là kiến thức cũ Thôi nào nếu bạn chưa nghĩ ra thì ta cùng xem hình bên dưới sẽ rõ
Do if chỉ hoạt động 1 lần khi click chuột nên ta cần vòng lặp forever để đảm bảo rằng điều kiện luôn luôn được xét Giờ gắn thêm lá cờ vào cho đồng các sprite Đừng quan tâm lá cờ là gì, bài sau sẽ có
Trang 14ĐỘI HÌNH CHUYÊN TIN HỌC HOÁ 2014 13
Giờ thử lại xem nào, nhấn lá cờ màu xanh và thử, tuyệt đúng không? Nhưng chưa phải tất cả đâu hãy nhấn hoài phím mũi tên phải và chuyện xảy ra là hình bên dưới
Chú mèo của chúng ta chui vào trong như thế và dừng lại Hẳn các bạn đã gặp trường hợp này ở bài trước rồi hướng xử lý thì đơn giản là thêm vào
Trang 15ĐỘI HÌNH CHUYÊN TIN HỌC HOÁ 2014 14
Nhân đôi lên thành 4 khối và sửa cho 4 phím mũi tên là hoàn tất Làm xong mà không
ổn thì hãy nhìn hình bên dưới nhé, đừng vội
Nào, giờ thì việc sử dụng if…then đã trở nên quá quen thuộc đúng không? Hãy thỏa sức sang tạo kết hợp với những bài trước tôi tin rằng bạn sẽ có những ý tưởng tuyệt vời Một vài gợi ý để bạn làm thêm những tác phẩm hay nhé Xem lại bài trước ta đã làm được phấn đổi màu chạy qua chạy lại cách tự động, giờ thì suy nghĩ đổi màu xoay xoay nhảy múa bằng cách nhấn phím backspace chẳng hạn
II Event when … key pressed
Trang 16ĐỘI HÌNH CHUYÊN TIN HỌC HOÁ 2014 15
kĩ hơn) Khối sự kiện là khối có thể tác động nhanh chóng nhất tới Sprite thông qua các tín hiệu vào (chuột: rê chuột, click chuột … phím: bấm phím) Giờ tôi sẽ nói cụ thể để hai sự kiện đầu tiên để các bạn dễ dàng hình dung Đầu tiên là lá cờ, quen thuộc đúng không nào?
Lá cờ sẽ giúp khởi động cùng lúc nhiều khối lệnh rời rạc nhau chỉ bằng một cái click chuột lên lá cờ màu xanh góc phải màn hình hiển thị Ồ khó hình dung nhỉ, thật ra bạn cũng không cần tìm hiểu quá sâu Nhìn xem hình bên dưới, chúng ta muốn cùng lúc mèo di chuyển qua lại, dơi bay tùm lum, cô gái nhảy múa, con gián đổi màu chỉ cần gắn
lá cờ vào những khối lệnh và nhấn biểu tượng Nếu không làm vậy chúng ta sẽ phải bấm và khởi động từng khối lệnh trong những Sprite
Tiếp theo là sự kiện bấm phím
Trang 17ĐỘI HÌNH CHUYÊN TIN HỌC HOÁ 2014 16
Ở sự kiện này tôi sẽ không nói nhiều, nhìn hình các bạn sẽ hiểu, đó là một cách rút gọn những gì tôi nói ở phần 1 của bài này Tuy nhiên còn trội hơn khối lệnh bên phải, khối lệnh bên phải sẽ cần bấm lá cờ để khởi động, bên trái thì không cần, chỉ cần bấm phím, khối lệnh sẽ hoạt động
Tôi đã để dành một mục có thể làm điều kiện cho phần này đó là Operator
Phần này giúp các bạn có cái nhìn tốt hơn về event, và ôn lại cách thức hoạt động if…else Nhớ lại trò mèo di chuyển bằng phím khi nãy tôi thấy nó có điều gì đó nhàm
chán và không hay, tôi quyết định làm ra một cái gì đó vui hơn Nghĩ nào! Nghĩ nào! Xem chúng ta có gì, mèo di chuyển chạm đến biên thì bật lại tôi thích làm như rắn ăn mồi ấy, chạm biên thì đi qua bên kia như hình bên dưới này
Làm thế nào nhỉ? Giờ thì làm giúp tớ ví dụ ở phần 1 bằng when…key pressed Bạn có thể sao chép hình bên dưới chẳng sao cả
Trang 18ĐỘI HÌNH CHUYÊN TIN HỌC HOÁ 2014 17
Giờ là phần quyết định làm sao để xuyên tường, tôi chỉ giới thiệu những gì chúng ta cần trong Operator tẩt cả sẽ được nói kĩ hơn khi bạn hoàn tất quyển sách này So sánh lớn
hơn và nhỏ hơn
Còn nhớ tọa độ không nào? Để biết nhân vật đang ở tọa độ nào thì bấm vào x posision -
y posision.
Trang 19ĐỘI HÌNH CHUYÊN TIN HỌC HOÁ 2014 18
Giờ thì diễn tả bằng lời nha! “Nếu con mèo chạm biên phải (nghĩa là tọa độ x - x posision lúc này trùng với tọa độ của biên phải) thì con mèo sẽ chui qua bên biên trái
(nghĩa là x posision lúc này trùng với tọa độ biên trái) tương tư cho các trường hợp còn lại” Giờ thì bấm phím di chuyển con mèo tới biên phải, trái, trên, dưới để lấy tọa độ Xong! Ta đã có tọa độ trái: -311, phải: 311, dưới -251, trên: 251
If (x posision > 310) then tạo x posision = -311 Đang đi sang phải
If (x posision <-310) then tạo x posision = 310 Đang đi sang trái
If (y posision > 250) then tạo y posision = -251 Đang đi lên
If (y posision <-250) then tạo y posision = 251 Đang đi xuống
Đó là mã giả nhé! Trong trường hợp này có sử dụng tạo x, y
Hình bên dưới là cách tạo x, y
Dựa theo những thông tin mà tôi đã cho bạn làm thử cho mèo đi xuyên qua thường xem nào!! Tôi tin chắc bạn có thể làm được Tôi sẽ làm sang phải, đầu tiên là điều kiện khi đang sang phải (nhìn mã giả nhé)
Trang 20ĐỘI HÌNH CHUYÊN TIN HỌC HOÁ 2014 19
Trang 21ĐỘI HÌNH CHUYÊN TIN HỌC HOÁ 2014 20
Tât cả gần như hoàn tất, bạn thật tuyệt Bạn biết đấy giờ chỉ còn mỗi việc tạo ra những bản sao vào sửa lại phím bấm, tọa độ
Trang 22ĐỘI HÌNH CHUYÊN TIN HỌC HOÁ 2014 21
Hãy thực hành nhé! Điều quan trọng là bạn phải tò mò và thực hành nhiều, bạn sẽ làm cho bạn bất ngờ Những bài sau bạn sẽ ứng dụng lại kiến thức này để tạo ra nhũng thứ thú vị hơn của chính bạn
Trang 23ĐỘI HÌNH CHUYÊN TIN HỌC HOÁ 2014 22
CHƯƠNG 4:
THẺ EVENT VÀ SỰ KIỆN VỚI CHUỘT
I Giới thiệu
Đây là thẻ với những hiệu ứng tương tác giữa các đối tượng sprite với nhau, hỗ
trợ làm sự kiện bắt đầu những hành động cho các đối tượng
Hình 4.1 Các thẻ lệnh trong thẻ Event
II Một số thẻ lệnh dùng làm sự kiện
Trong thẻ Event có các thẻ lệnh làm sự kiện điều khiển cho các cấu trúc điều kiện, cấu trúc lặp Những thẻ này được dùng khi ta muốn nhiều sprite cùng hành động Sau đây là một số thẻ dùng làm sự kiện mà bạn nên biết
a Thẻ
- Thẻ này được dùng khi bạn muốn toàn bộ chương trình đã được lập trình sẵn bắt đầu chạy Để hiểu rõ hơn ta sẽ thực hiện một minh họa nho nhỏ
Thẻ Event (Sự kiện )
Các lệnh trong thẻ
Event
Trang 24ĐỘI HÌNH CHUYÊN TIN HỌC HOÁ 2014 23
- Ta sẽ cho Sprite nói “ Tin Học Hóa ” và đi 10 bước , cùng lúc đó
- Sprite sẽ nói “Chào các em! ”, kêu “Gâu” 3 lần và đổi màu
Sau đây là mã của Sprite 1: Mã của Spirte 2:
Trang 25ĐỘI HÌNH CHUYÊN TIN HỌC HOÁ 2014 24
- Như đã thấy, khi chuột nhấp vào Sprite thì thấy có hành động còn
Sprite sẽ không thực hiện hành động
c Mở rộng
Phần lệnh này này trong Thẻ đã được học ở những bài trước, có tác dụng làm cho Sprite di chuyển theo con trỏ chuột Sau đây là 1 minh họa nhỏ:
Trang 26ĐỘI HÌNH CHUYÊN TIN HỌC HOÁ 2014 25
Đây là cách làm cho Sprite di chuyển theo con trỏ chuột:
Kết quả khi nhấp vào Sprite sẽ di chuyển theo con trỏ chuột
Lệnh Forever trong Thẻ Control có tác dụng làm cho hành động thực hiện mãi mãi
Di chuyển theo con trỏ
Trang 27ĐỘI HÌNH CHUYÊN TIN HỌC HOÁ 2014 26
Chương 5:
Xử lí Event mở rộng và Sound
I Các khối lệnh Event:
1 When backdrop switches to:
- Thực hiện lệnh khi nền chuyển sang một nền khác
- Rõ hơn là khi một phông nền chuyển sang nền mà ta chọn thì nó sẽ nhận biết được và thực hiện những lệnh mà ta yêu cầu phía sau
Ví dụ: Trong Greeting Card
Nền ban đầu khi chạy đặt là nền 1
Khi chuyển sang nền b1 thì thực hiện ẩn nhân
vật chim cánh cụt trong thệp
Và ẩn luôn hình mũi tên open here trong thệp
Trang 28ĐỘI HÌNH CHUYÊN TIN HỌC HOÁ 2014 27
các lệnh tiếp theo như:
Chơi bài happy birthday
Chữ Happy sẽ xuất hiện và di chuyển tới vị
trí của nó trong thệp, cuối cùng nó thực hiện
lệnh thông báo (broadcast) Happy sẽ nói ở
phần sau
2 When I receive và Broadcast
- Lệnh Broadcast này có nghĩa là sẽ thông báo một thông điệp đến tất cả các scripts (và các background) để có thể làm cho lệnh When I receive biết để thực hiện các lệnh phía sau của mình
Ví dụ: Trong Greeting Card
Cũng trong bài thệp như nãy cũng đã
nói khi chữ Happy di chuyển tới vị trí
của mình thì nó sẽ thông báo thông
điệp Happy
Trang 29ĐỘI HÌNH CHUYÊN TIN HỌC HOÁ 2014 28
Sau đó chữ Birthday cũng sẽ nhận
được thông báo trên và thực hiện lệnh
di chuyển tới vị trí của mình rồi lại
thông báo một thông điệp khác là
Birthday
Kế tiếp nhân vật cái bánh cũng
nhận được thông báo Birthday và
cũng di chuyển đến vị trí của nó, thực
hiện những hiệu ứng đã cái đặt
- Mở rộng thêm làm lệnh Broadcast and wait nghĩa là khi thông báo xong thông điệp thì chờ cho tới khi tất cả các scripts thực hiện hết lệnh rồi mới tiếp tục thực hiện lệnh tiếp theo ở sau Broadcast
Trang 30ĐỘI HÌNH CHUYÊN TIN HỌC HOÁ 2014 29
message…”
II Các khối lệnh Sound:
1 Play sound và play sound until done
- Lệnh trên nghĩa là chơi nhạc và thực hiện tiếp câu lệnh
- Chơi nhạc cho tới khi hết nhạc thì mới thực hiện lệnh tiếp theo
- Ví dụ chơi bài happy birthday cho tới khi kết thúc scprits
- Chọn nhạc hoặc âm thanh trong menu:
- Thêm âm thanh và chỉnh sửa, cài đặt âm thanh trong của sổ Sound:
Trang 31ĐỘI HÌNH CHUYÊN TIN HỌC HOÁ 2014 30
+ Chỉnh sửa âm thanh đơn giản (cắt, dán, xóa,…):
+ Tạo hiệu ứng cho âm:
2 Stop all sounds:
- Dừng tất cả những âm thanh ngay tức thì trước khi chơi một âm thanh hay nhạc mới
3 Play drum … for … beats
- Chơi âm thanh trống với nhiều kiểu âm thanh để ta lựa chọn được đặt số từ 1 đến 22:
- Đồng thời ta cũng có thể thay đổi nhịp của âm thanh là bao nhiêu nhịp trên giây (beats)
- Ví dụ:
Trang 32ĐỘI HÌNH CHUYÊN TIN HỌC HOÁ 2014 31
4 Play note … for … beats
- Chơi nốt nhạc trong từng dụng cụ và cũng có mục chọn nhịp (beats)
- Các nốt có nhiều kiểu khác nhau từ thấp đến cao và được đánh số từ 0 đến
127
- Ví dụ:
5 Rest for … beats
- Lệnh nghĩ nhịp (không chơi nhạc), tức là lúc chơi ta có thể thay đổi độ nghĩ nhịp của mỗi nhạc cụ
- Ví dụ:
6 Set instrument to …
- Lệnh chọn nhạc cụ với nhiều nhạc cụ khác nhau được đánh số từ 1 đến 21 (Piano, Organ, Guitar, ):
Trang 33ĐỘI HÌNH CHUYÊN TIN HỌC HOÁ 2014 32
Trang 34ĐỘI HÌNH CHUYÊN TIN HỌC HOÁ 2014 33
tempo to lệnh đặt tốc độ lại ở mức nào đó
- Ví dụ:
10 Giá trị volume và tempo
- Volume chứa giá trị âm lượng lớn hay nhỏ của âm thanh và tempo chứa giá trị tốc độ của nốt nhạc là nhịp/phút
- Ví dụ: