Tải bản đầy đủ (.docx) (32 trang)

Học lập trình scratch qua 50 bài tập từ cơ bản đến nâng cao

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.23 MB, 32 trang )

Học lập trình scratch qua 50 bài tập từ cơ bản đến nâng cao
Bài 1. Viết chương trình scratch vẽ đa giác đều và đường trịn
u cầu chương trình vẽ đa giác: người dùng nhập vào tọa độ tâm, bán kính đường trịn ngoại
tiếp và số cạnh đa giác
u cầu chương trình vẽ đường trịn: Dữ liệu vào, tọa độ tâm, bán kính
Xem: Cách vẽ đa giác đều và đường trịn bằng Scratch
Mình thấy có rất nhiều bạn vẽ đường tròn bằng cách sử dụng lệnh quay và như vậy đường trịn của
chúng ta sẽ rất khó quản lý và các bạn sẽ rất khó sử dụng thủ tục vẽ đường tròn kiểu này để phát
triển các dự án khác có liên quan đến đường trịn, vì vậy mình viết bài này để chia sẻ với các bạn
thủ tục vẽ đường tròn bằng scratch chuẩn để dễ dàng phát triển các dự án sau này.
Lưu ý cách vẽ này chỉ dùng cho HS lớp 9 (sau khi học xong tỉ số lượng giác) trở lên.
Nhắc lại về tọa độ cực và tọa độ Descartes

Mình sẽ khơng nói nhiều đến hệ trục tọa độ. Các bạn thấy trên hình vẽ tọa độ (x, y) của điểm M sẽ
được tính như sau: x = R.cos(alpha), y = R.sin(alpha)
Mọi đa giác đều luôn nội tiếp đường trịn, tâm của đường trịn chính là tâm của đa giác đều.
Chính vì có những mối qua hệ trên mà ta có thể vẽ đa giác đều, và đường tròn theo cách sau:
Cách vẽ đa giác đề bằng scratch
Bước 1: Tạo duy nhất một nhân vật bút chì, và chỉnh tâm bút về đầu của bút chì như hình sau;

Bước 2: Các bạn tạo một thủ tục vẽ đa giác bao gồm các tham số:

x, y: tọa độ tâm đa giác

Bán kính: Bán kính đường trịn ngoại tiếp đa giác

Số cạnh: số cạnh của đa giác
Theo hướng dẫn như hình sau;


Sau đó bạn kéo thả để có được thủ tục vẽ đa giác đều như sau:



Các bạn hãy thực hiện như trên và suy nghĩ cho thật hiểu thủ tục này. Có như vậy khi giải quyết bài
tốn cần vẽ đường tròn bạn mới thực hiện nhanh được. Cách vẽ này sử dụng kiến thức về lượng
giác vì vậy chỉ dành cho các em học sinh lớp 9, sau khi đã học lượng giác. Các bạn tiểu học có thể
vẽ bằng cách dùng cách quay đối tượng.
Và bây giờ là chương trình hồn thiện vẽ đa giác đều bằng scratch:

Bạn hãy chạy thử chương trình dưới đây coi thế nào.
Xem video hướng dẫn vẽ đa giác đều và xoay hình
Bài 2. Xe ô tô (mô tô, tàu lửa,…) chạy
Viết chương trình mơ tả chiếc xe ơ tơ chuyển động trên màn hình, từ trái sang phải. Nếu gặp cạnh
phải thì xuất hiện lại từ bên trái và tiếp tục chạy

Ghi chú: Đây là bài tốn đơn giản tuy nhiên có thể phát triển bài toán cho cả 3 đối tượng học sinh
tiểu học, THCS và THPT theo các mức độ khác nhau

Mức độ 1: Chỉ u cầu chiếc ơ tơ di chuyển (khơng lăn bánh)

Mức độ 2: u cầu chiếc ô tô di chuyển có lăn bánh nhưng thân xe đứng n

Mức độ 3: Trên đường đi đường khơng êm vì vậy xe di chuyển cả bánh và thân xe có độ xóc
Tất nhiên bạn làm sao để xe chạy càng tự nhiên thì càng tốt.
Nếu khơng thích ơ tơ bạn có thể thay bằng mơ tơ, tàu hỏa, thuyền, máy bay, … tùy theo óc sáng
tạo của bạn.
Xem bài viết hướng dẫn lập trình kéo thả scratch qua dự án xe ơ tơ chạy
Các bước hồn thành dự án “xe ô tô chạy” bằng Scratch


Bước 1: Tạo nhân vật xe ơ tơ
Vì trong thư viện hình của scratch khơng có hình chiếc ơ tơ ưng ý vì vậy bạn hãy search google tìm

hình ảnh với từ khóa: “xe ơ tơ clipart” sẽ ra hàng loạt hình ơ tơ cho bạn chọn, bạn hãy chọn một
hình ưng ý và lưu vào máy.
Trong dự án này chỉ có duy nhất một đối tượng đó là ơ tơ
Bước 2: Xóa nhân vật mèo có sẵn trong dự án và thêm nhân vật ô tô vừa tải vào
Bạn có thể chọn sân khấu phù hợp thêm cho sinh động.
Lưu ý: thơng thường hình ảnh khi tải từ trên mạng về lấy làm đối tượng thì sẽ xuất hiện như thế này

Dự án xe này chỉ có một nhân vật duy nhất là xe ô tô
Vậy làm sao để xóa bỏ hết phần trắng quanh chiếc ơ tơ đây? bạn có thể chọn nhân vật sau đó vào
phần hóa trang sẽ có cơng cụ giúp bạn xóa phần trắng đó đi, tuy nhiên tơi khơng thích sử dụng
cơng cụ chỉnh sửa ảnh của Scratch vì nó khó thực hiện, tôi thường thực hiện việc chỉnh sửa ảnh
bằng photoshop nếu bạn quan tâm hãy đọc bài viết: Cách sử dụng Photoshop để chỉnh sửa nhân
vật cho dự án Scratch.
Mẹo: Để khơng mất cơng chỉnh sửa ảnh các bạn hãy tìm hình clipart dạng file .png khi đó thường sẽ
khơng có phần trắng như trên
Bước 3: Lập trình cho xe ơ tô chạy
Bạn hãy chọn nhân vật xe ô tô và kéo thả các lệnh để lập trình như sau:


Giải thích câu lệnh như sau: Khi nhấn vào là cờ -> lặp mãi mãi ( để ô tô luôn chạy khơng dừng lại)



Lệnh “Di chuyển 6 bước”: Cho ơ tơ chạy số trong ơ trịn nhỏ (6) bạn thay đổi càng lớn thì xe
chạy càng nhanh
Lệnh “Nếu vị trí x > 260 thì đặt x là -260”: là để khi xe chạy vào lề phải màn hình thì tiếp tục
xuất hiện ở lề trái (Hồnh độ của mành hình chỉ từ -240 đến 240 nhưng ta nên đặt xa hơn một
chút ở đây là -260 đến 260 mục đích là để xe khuất sau mép phải mới xuất hiện ở mép trái.

Vậy là ta đã hoàn thiện dự án xe ô tô chạy bằng Scratch ở mức độ đơn giản nhất rồi đó.

Bước 4: Tiến hành nâng cấp để hoàn thiện dự án làm cho xe chạy như thật
Phần này các bạn tự hoàn thiện theo các gợi ý sau:
Mức độ 2: Chỉ yêu cầu xe lăn bánh
Bạn hãy chọn nhân vật xe ơ tơ sau đó vào phần “hóa trang” tạo vài bản sao cho xe ơ tơ, mỗi bản
sao hãy dùng photoshop để sửa cho những mấu đen ở bánh xe lệch đi một chút. Sau đó bổ sung
thêm lệnh để chuyển hình dạng sau đây là một VD:

Mức độ 3: Bạn có thể chỉnh sửa các hình dạng để xe di chuyển có độ xốc, để nguyên xe hoặc tách
riêng hai bánh ra khỏi xe phần này địi hỏi bạn phải có kĩ năng photoshop một chút. Bạn cũng có
thể thêm nhưng cây cối bên đường để tạo cảnh chuyển động giống như thật.
Tham khảo dự án mẫu của mình:


Vậy là mình đã hướng dẫn các bạn lập trình kéo thả scratch qua dự án xe ô tô chạy rồi nhé. Chúc
các bạn thành công. Rất mong các bạn đóng góp ý kiến của mình bằng cách comment phía dưới.
Xem video hướng dẫn lập trình xe chạy trong scratch
Bài 3. Trị chơi đốn số
Viết chương trình Scratch mơ phỏng trị chơi đốn số như sau:

Nhân vật chính của chương trình là Cơ giáo. Cơ sẽ nghĩ ra 1 số và u cầu em đốn số đó bằng
cách nhập các số từ bàn phím cho đến khi tìm ra thì thơi.

Khi bắt đầu chơi cơ sẽ giới thiệu, nói như hình bên và em bắt đầu đốn số.

Nếu số em đốn trùng với số đã đốn cơ sẽ thơng báo: “Số này em đã đốn rồi. Em hãy đốn
số khác.”

Nếu em đốn sai, thì cơ sẽ thơng báo như sau: “Sai rồi. Số em đốn nhỏ/lớn hơn số của cơ.
Em hãy đốn lại”.


Nếu đốn đúng, cơ sẽ thơng báo số của cơ và số lần em đã dự đốn, ví dụ như sau:
“Đúng rồi: 23. Em đã đoán đúng số của cơ sau 5 lần dự đốn.”
Xem: Hướng dẫn lập trình trị chơi đốn số bằng Scratch
Nội dung bài tốn trị chơi đốn số bằng Scratch như sau:
Viết chương trình Scratch mơ phỏng trị chơi đốn số như sau:

Nhân vật chính của chương trình là Cơ giáo. Cơ sẽ nghĩ ra 1 số có hai chữ số và yêu cầu em đốn số đó bằng
cách nhập các số từ bàn phím cho đến khi tìm ra thì thơi.




Khi bắt đầu chơi cơ sẽ giới thiệu, nói như hình bên và em bắt đầu đoán số.
Nếu số em đoán trùng với số đã đốn cơ sẽ thơng báo: “Số này em đã đoán rồi. Em hãy đoán số khác.”
Nếu em đoán sai, thì cơ sẽ thơng báo như sau: “Sai rồi. Số em đốn nhỏ/lớn hơn số của cơ. Em hãy đốn
lại”.



Nếu đốn đúng, cơ sẽ thơng báo số của cơ và số lần em đã dự đốn, ví dụ như sau:

“Đúng rồi: 23. Em đã đốn đúng số của cơ sau 5 lần dự đoán.“
Đây là bài số 2 trong: 50 bài tập lập trình Scratch
Từng bước lập trình trị chơi đoán số bằng Scratch


Bước 1: Tạo các nhân vật và sân khấu
Trong dự án này chỉ có một nhân vật duy nhất là cơ giáo, các bạn có thể thay nhân vật cơ giáo
bằng thày giáo hay một đối tượng khác tùy thích nhé
Sân khấu thì tùy bạn chọn, mình khuyên lúc đầu nên để sân khấu trắng cho dễ nhìn, sau khi đã

hồn thành chương trình thì thích trang trí sao cho đẹp thì làm
Bước 2: Lập trình cho nhân vật cơ giáo
2.1. Tạo các biến số
Bạn hãy tạo một biến “Số đúng” để lưu số mà cô giáo nghĩ. Ở đây giới hạn là số có hai chữ số, số
này được tạo ngẫu nhiên từ 10 đến 99 (tất nhiên bạn có thể thay đổi)
Tạo một “Danh sách” đặt tên là “Các số đã đốn” nó như là một biến mảng để lưu lại các số mà bạn
đã đoán trước đây
2.2. Lập trình cho trị chơi

Ý nghĩa của các câu lệnh như sau:
1.
2.
3.
4.
5.




Chương trình bắt đầu chạy khi nhấn vào biểu tượng lá cờ
Xóa tất cả các giá trị trong biến mảng
Cơ giáo giới thiệu trị chơi
Lấy “số đúng” số cơ nghĩ ngẫu nhiên từ 10 đến 99
Lặp lại câu trả lời (đoán số) cho tới khi đoán đúng
Hỏi và yêu cầu người chơi đoán số
Nếu “các số đã đoán” chứa “trả lời” (số đã đốn rồi) thì nói … nếu khơng thì …
Thêm số đốn vào dãy các số đã đốn

Cuối cùng: Khi thốt vịng lặp có nghĩa là đã đốn đúng. Dịng lệnh 14 đưa ra câu trả lời và kết thúc
chương trình,

bạn chú ý dùng phép tốn nối lồng nhiều lần mới được câu lệnh 14.
Một vài kinh nghiệm rút ra từ trị chơi đốn số Scratch







Chú ý khi sử dụng câu lệnh nếu .. thì … ở trên. nếu bạn thay bằng 3 câu lệnh nếu … thì … mà
khơng có câu lệnh nếu … thì … nếu khơng thì …, khi bạn nhập số đã nhập rồi cơ giáo sẽ “nói hai
lần” đó nghe
Rút ra kinh nghiệm sử dụng biến mảng trong scratch
Kĩ thuật “xuất dữ liệu” chính xác bằng cách lồng nhiều phép tốn

Xem video hướng dẫn viết trị chơi đốn số bằng Scratch
Bài 4: Vẽ lưới ơ vng
Em viết chương trình Scratch để vẽ trên màn hình hình ảnh lưới ơ vng, số lượng hàng cột và độ
dài cạnh hình vng được người dùng nhập vào khi chạy chương trình.
Chẳng hạn khi chạy chương trình người dùng nhập 5 hàng, 6 cột, độ dài cạnh hình vng là 40 thì
chương trình sẽ vẽ được hình sau:

Xem hướng dẫn lập trình Scratch vẽ lưới ơ vng
Phân tích bài tốn lưới ơ vng:



Nhân vật: Một chiếc bút chì
Lập trình cho nhân vật: Vẽ 1 ô vuông, các chấm tròn tại 4 đỉnh của ô vng. Lặp lại thao
tác đó căn cứ vào số hàng, số cột.


Tìm hiểu về tọa độ kích thước sân khấu trong scratch

Hình trên minh họa tọa độ kích thước sân khấu trong Scratch hoành độ từ -240 đến 240, tung độ từ
-180 đến 180.
Khi lập trình vẽ lưới ơ vng ta bắt buộc phải nắm vững được các tọa độ trên để có thể lập
trình được chính xác.
Xem video hướng dẫn
Các bước lập trình Scratch để vẽ lưới ơ vng
Bước 1: Xây dựng nhân vật
Chèn duy nhất một nhân vật bút chì (pencil), sân khấu tùy ý bạn, ở đây mình để sân khấu trắng cho
dễ nhìn


Bước 2: Lập trình cho bút chì
2.1. Xây dựng các biến:
Vào mục “Dữ liệu” -> “Tạo biến số” và tạo 4 biến sau:





a: Chứa độ dài cạnh hình vng
Cột: Số cột cần vẽ
Dòng: Số dòng cần vẽ
Hướng: Hướng vẽ

2.2. Viết chương trình con vẽ chấm trịn
Vào mục “Khác” -> “Tạo một mảnh ghép” đặt tên là “Trịn” sau đó kéo thả thành chương trình con
như sau:


Các bạn hãy tự ngẫm nghĩ xem tại sao lại viết như vậy và thử thay các số bằng các giá trị khác để
hiểu rõ hơn.


2.3. Viết chương trình con vẽ 1 hình vng có 4 chấm tròn tại 4 đỉnh

Các bạn để ý trong chương trình con này lại gọi chương trình con “Trịn”
Các bạn có thắc mắc là tại sao có 4 cạnh mà lại vẽ 5 lần không? là để chiếc bút chì quay lại vị trí
ban đầu để thuận tiện cho việc lặp lại vẽ các hình vng tiếp theo
Biến “hướng” chỉ có hai giá trị 1 hoặc -1 giúp điều chỉnh hướng vẽ các bạn phải xem hết phần sau
mới hiểu được.
2.4. Hồn thiện chương trình vẽ lưới ơ vng

Các bạn hãy tự thực hiện theo hình vẽ trên và suy nghĩ để hiểu hết các câu lệnh.
Xem video hướng dẫn từng bước vẽ lưới ô vuông Scratch
Bài 5: Mô phỏng Bi-a


Viết chương trình Scratch mơ tả đánh bóng kiểu trị chơi Bi-a như sau:

Màn hình ban đầu của chương trình như hình bên. Nhân vật chính của chương trình là quả bóng.
Trên màn hình thể hiện 1 hình chữ nhật màu đỏ.
Khi nháy chuột quả bóng bắt đầu chuyển động với vận tốc trung bình. Khi gặp cạnh hình chữ nhật
bóng sẽ bật lại theo đúng ngun tắc của trị chơi bi-a.

Bất cứ lúc nào em nháy chuột sẽ làm đổi hướng bóng: bóng sẽ chuyển động về hướng con trỏ
chuột. Khi gặp cạnh sẽ có 1 tiếng kêu nhỏ phát ra.
Em hãy viết chương trình mơ tả u cầu trên.
Chú ý: Khung hình chữ nhật đỏ có thể là hình ảnh nền sân khấu, có thể là 1 nhân vật Scratch, có

thể là hình vẽ do chính quả bóng vẽ ra khi chạy chương trình.
Xem: Lập trình mơ phỏng trái bi-a với Scratch
Phân tích bài tốn Lập trình mơ phỏng trái bi-a với Scratch
Trước khi giải quyết bài toán tơi đã mất nhiều thời gian để phân tích và tìm hiếu hướng chuyển động
trên màn hình Scratch, các bạn hãy quan sát hình sau:

Trên đây là sơ đồ kích thước màn hình Scratch đồng thời cũng thể hiện hướng ln.
Cái khó của bài tốn là đoạn mã khi chạm vào cạnh bên thì bật lại, bởi nếu dùng cảm biến màu sắc
thì sẽ xảy ra các tình huống sau:
1. Nếu banh chạm vào cạnh bên mà đó là hai cạnh ngang thì sẽ có hai trường hợp:

Nếu hướng dương: trái banh sẽ phải xoay về hướng mới = 180 độ – hướng cũ

Nếu hướng âm: trái banh sẽ phải xoay về hướng mới = -180 độ – hướng cũ
2. Nếu banh chạm vào hai cạnh đứng thì trái banh sẽ phải đối hướng mới = – (hướng cũ)
Vậy phải làm sao biết khi nào banh chạm thanh ngang và khi nào banh chạm thanh dọc? Bài toán
sẽ được giải quyết nếu vẽ thanh ngang và thanh dọc khác màu nhau. Tuy nhiên trong đề ta thấy
hình chữ nhật vẽ bằng 1 màu. Vậy phải làm sao đây đây là vấn đề tơi vẫn chưa biết cách giải
quyết!
Tất nhiên có cách giải quyết là mình vẽ và lập trình theo tọa độ của hình chữ nhật nhưng quả thật
tơi khơng hề thích cách này
Sau đây là cách giải quyết tạm bài tốn của tơi:
Các bước Lập trình mơ phỏng trái bi-a với Scratch
Bước 1: Lập trình vẽ bàn bi-a (hình chữ nhật)
Tơi tạo một khối mới mang tên “Hình chữ nhật” và lập trình như hình dưới.
Bước 2: Lập trình cho vi chuyển động
Tạo khối “Di chuyển’ và lập trình giống hình dưới


Bước 3: Cuối cùng là chương trình chính gọi hai chương trình con trên.

Và đây là sản phẩm, bạn hãy thử đi (ở đây tôi cho trái bi-a chuyển động khơng ngừng, bạn có thể
sửa lại để trái bi-a chuyển động một hồi và dừng lại)
Bài 6. Vẽ cây hoa tròn bằng Scratch
Em hãy viết 1 thủ tục trong chương trình Scratch để có thể vẽ được các hình cây với hoa trịn như
sau:

Thủ tục cần có tên Vẽ cây hoa trịn và có ít nhất 1 tham số để có thể vẽ được các hình trên và dễ
dàng mở rộng.
Xem Cách vẽ cây hoa trịn bằng lập trình kéo thả Scratch
Bài tốn vẽ cây hoa trịn bằng lập trình kéo thả Scratch:

Yêu cầu: Người dùng nhập phím 1, 2, 3 để vẽ lần lượt các hình trên, nhấn ESC để thốt chương trình


Khi tơi viết bài này tơi mới tìm hiểu Scratch nên vẽ quá phức tạp. Giờ đây vẽ hoa tròn q đơn giản vì vậy bạn
hãy xem video sau. Cịn bài viết phía dưới để tham khảo thơi nha
Các bước lập trình vẽ cây hoa trịn bằng Scratch
Ta sẽ dùng một thủ tục (chương trình con) để vẽ cây hoa 1 bơng thứ nhất, sau đó sử dụng thủ tục
này để vẽ cây hoa thứ hai và thứ 3, có thể mở rộng để vẽ những cây hoa phức tạp hơn.
Bước 1: Lập chương trình con vẽ 1 cây hoa trịn
Tơi đang loay hoay để tìm cách vẽ đường trịn, nghe thì có vẻ như đơn giản nhưng khi đi vào thực
hiện tơi thấy nẩy sinh rất nhiều tình huống.
Lúc đầu tơi sử dụng thủ tục vẽ đường trịn như sau:

Quả thực là dùng cách xoay này vẫn ra hình trịn thật nhưng tơi tìm cách quản lý tâm và bán kính
theo cách vẽ này mãi mà khơng được, mà nếu quản lý khơng được thì sẽ rất khó để phát triển
thành các hình phức tạp hơn.
Vì vậy tơi quyết định phải quay lại tìm cách vẽ đường trịn bằng scratch để làm sao quản lý được
tâm và bán kính, và thật thú vị vẽ đường tròn chẳng qua là vẽ đa giác đều và tôi cũng đã phải bổ
sung bài tập vẽ đa giác đều và hình trịn vào đầu dự án 50 bài tập lập trình scratch từ cơ bản đến

nâng cao.
Bây giờ thì ổn rồi ta tiến hành vẽ cây hoa tròn thứ nhất như sau:


Thủ tục vẽ đường trịn thì các bạn đã làm quen rồi. Cịn thủ tục vẽ hoa trịn 1 có các tham số như
sau:





x, y: Tọa độ chân của bơng hoa
Bán kính: bán kính đường trịn hoa
Góc: Góc nghiêng của các hoa
Cán: Độ dài của cán

Với các tham số như vậy ta dễ dàng quản lý cách vẽ hoa cũng như phát triển sang cách vẽ hoa tròn
thứ 2
Bước 2: Lập thủ tục vẽ cây hoa tròn thứ 2
Cây hoa trịn thứ hai có nhiều đối tượng giống nhau được vẽ lặp lại chỉ thay đổi một số tham số, vì
vậy mình sẽ làm các thủ tục vẽ từ ngọn đến rễ, mình thích cách dùng các thủ tục vì nó giúp mình
giải quyết bài tốn từng phần một và rèn luyện tư duy chia để trị.


Đầu tiên là vẽ chùm 2 bông hoa

Ta cũng tạo thủ tục có tên là “chum 2 hoa” bao gồm các tham sơ như hình trên, các bạn thấy tham
số nhiều q phải khơng, nếu khơng thích các bạn có thể cho bớt lại, nhưng để vậy mình thấy
dễ điều khiển hơn.
Tiếp theo là vẽ chùm gồm 4 bơng hoa


Mình lại thêm một thủ tục bao gồm các tham số trên (lần này mình giảm bớt các tham số của thủ
tục)


Cuối cùng là thủ tục hồn thiện cây hoa trịn thứ 2

Lần này mình giảm bớt tham số lại bởi có vẻ như các tham số trong chương trình có sự trùng nhau
nên chương trình chạy khơng theo ý muốn.
Bước 3: Thủ tục vẽ cây hoa tròn thứ 3
Cái này các bạn hãy tự phát triển nhé, mình tin nếu các bạn thực hiện đến cây thứ 2 thì cây thứ 3
khơng hề khó
Kinh nghiệm rút ra trong khi vẽ cây hoa trịn bằng Scratch




Hãy chia nhỏ bài tốn, giải quyết từng phần một bằng cách viết các thủ tục kế thừa nhau.
Chẳng hạn trong chương trình trên mình thực hiện như sau: “Đường tròn” -> hoa tròn 1 -> chùm
2
hoa
->
chùm
4
hoa
->
cây
hoa
2
Làm như vậy rèn cho mình cách viết chương trình mang tính kế thừa và tư duy chia để trị rất tốt

Nên có các tham số trong thủ tục để dễ điều khiển thủ tục theo ý mình, tuy nhiên khơng nên
q nhiều có thể gây rối khi có q nhiều thủ tục lồng nhau.

Vậy là mình đã vừa học vừa chia sẻ với các bạn cách giải quyết bài tốn vẽ cây hoa trịn bằng
Scratch rồi nhé. Cách giải quyết của mình sau khi làm xong tự thấy nó hơi dài các bạn nào có cách
giải quyết hay hơn xin vui lòng chia sẻ bằng cách comment bên dưới.
Bài 7: Viết chương trình Scratch kiểm tra một số có phải là số ngun tố khơng
u cầu:

Tạo nhân vật một bạn HS, khi chương trình chạy bạn sẽ nói “Bạn hãy nhập vào một số
nguyên tố, mình sẽ kiểm tra xem số đó có phải là số ngun tố khơng”

Sau khi người dùng nhập và một số nguyên sẽ thông báo kết quả ra màn hình
Xem: Hướng dẫn viết chương trình kiểm tra số nguyên tố bằng Scratch


Cách viết chương trình con trong Scratch
Chương trình con hay thủ tục hay trong Scratch gọi là “Mảnh ghép”. Để tạo nó rất đơn giản bạn chỉ
cần chọn: “Thêm” -> “Tạo một mảnh ghép” vậy là bên màn hình lập trình xuất hiện một biểu
tượng bắt đầu chương trình, nếu muốn thêm tham số các bạn vào “Lựa chọn” và thêm các tham
số, đặt tên cho tham số, quá đơn giản phải khơng nào.

Hình minh họa cách tạo chương trình con trong Scratch có chứa các tham số
Chương trình con có thể được gọi lại nhiều lần trong các chương trình con hay chương trình chính.
Việc sử dụng thủ tục giúp chúng ta chia nhỏ bài toán, giải quyết từng phần hết sức đơn giản, nếu
muốn giỏi lập trình Scratch bắt buộc bạn phải thành thạo cách sử dụng chương trình con này nhé.
Minh họa cách sử dụng chương trình con qua chương trình kiểm tra số nguyên tố
Nội dung bài tập như sau: Viết chương trình yêu cầu người dùng nhập vào một số nguyên và
kiểm tra số nguyên đó có là phải là số ngun tố hay khơng
Nếu đọc thấy khó hiểu bạn có thể xem Video hướng dẫn viết chương trình kiểm tra số nguyên tố

bằng Scratch
Bước 1: Tạo nhân vật cô giáo hoặc một ai khác
Bước 2: Tạo các biến sau:
Biến “i”: Để duyệt kiểm tra cho vòng lặp
Biến “yes/no”: Nhận hai giá trị 1 hoặc 0 để lưu kết quả kiểm tra, nếu là 1 thì số nhập vào là số
nguyên tố
Biến “đếm”: Dùng để đếm các ước của số nhập vào.
Bước 3: Tạo chương trình con kiểm tra số nguyên tố
Nội dung của chương trình con: Kiểm tra a có phải là số ngun tố không bằng cách đếm số biến
của a nếu a nhỏ hơn 2 hoặc có nhiều hơn 2 ước thì “yes/no” = 0, ngược lại “yes/no” = 1.
Đầu tiên là tạo một mảng ghép theo các bước như hình sau:


Kéo thả và lập trình cho thủ tục “số nguyên tố” như hình sau:

Thủ tục này thì đơn giản chắc bạn nào cũng hiểu phải không nào
Tiếp theo là nội dung chương trình chính:


Ok như vậy là xong rồi đó, các bạn thấy trong chương trình chính có dịng lệnh gọi lại chương trình
con “số nguyên tố” và “trả lời” (số nhập vào) sẽ được chuyền cho tham số a.
Ghi chú: Khi bạn nhập một số thập phân, hoặc một chuỗi kí tự thì chương trình vẫn chạy và cho kết
quả khơng đúng, các bạn hãy tìm cách kiểm tra dữ liệu vào xem có hợp lệ khơng xem sao, quả thật
là mình vẫn chưa tìm được cách giải quyết được. Lại phải học tập tiếp mới chia sẻ được.
Bài 8. Viết trò chơi chọn màu đúng
Viết chương trình Scratch mơ phỏng chương trình, trị chơi Chọn màu đúng dành cho các em nhỏ
mẫu giáo như sau:

Chương trình có 2 nhân vật chính là Cơ Mai và Hình trịn. Nhân vật hình trịn do em tự thiết kế và
có tối thiểu 10 trang phục với màu sắc khác nhau, ví dụ các màu có thể vẽ: đỏ, vàng, nâu, cam,

xanh lá cây, xanh da trời, xanh thẫm, đen, tím, hồng.

Khi chơi, Cơ Mai sẽ đưa ra câu hỏi, ví dụ: Em hãy nháy lên hình trịn màu xanh lá cây. Bên
dưới sẽ hiển thị 3 hình trịn với các màu sắc khác nhau được sinh ngẫu nhiên từ danh sách các
màu của nhân vật Hình trịn. Câu hỏi được sinh với đáp án ngẫu nhiên.

Người chơi nháy chuột lên hình trịn có màu tương ứng. Cô giáo sẽ lập tức thông báo “Bạn đã
chọn đúng” nếu làm đúng hoặc “Bạn chọn sai rồi” nếu làm sai. Chương trình sẽ nghỉ 2 giây là lại
tiếp tục sinh câu hỏi mới.
Xem: Hướng dẫn viết trò chơi chọn màu đúng bằng scratch
Ý tưởng thuật tốn trị chơi chọn màu đúng bằng scratch



Mình sẽ dùng dữ liệu kiểu “Danh sách” nó giống như một biến mảng trong các ngơn ngữ lập
trình khác để lưu danh sách các màu.
Do mình bồi dưỡng HSG Pascal đã quen hay dùng kĩ thuật đánh dấu mảng trong lựa chọn nên
mình
quyết định
sử
dụng

thuật
này
vào
Scratch
xem
sao.
Bởi trong chương trình sẽ phải chọn ra 3 màu ngẫu nhiên trong danh sách các màu nên mình sẽ
dùng một biến mảng “Danh sách” khác có cùng số phần tử với biến danh sách lưu các màu, giá

trị là 0 hoặc 1 ứng với hai trạng thái chưa chọn và đã chọn.

Thơi mình chỉ nêu qua ý tưởng như thế, cịn lại các bạn xem tiếp chia sẻ phía dưới sẽ dễ hiểu hơn
Các bước dùng Scratch viết trò chơi chọn màu cho các em mẫu giáo


Bước 1: Xây dựng nhân vật
Như yêu cầu của đề mình xây dựng hai nhân vật chính là Cơ Mai và Hình trịn.

Nhân vật Cơ Mai thì các bạn lấy trong thư viện và cứ để nguyên hình dạng như vậy.
Riêng nhân vật hình trịn các bạn tự vẽ hình trịn sau đó nhân bản để tạo 10 trang phục, đổ màu 10
trang phục khác nhau ứng với 10 màu bạn chọn
Bước 2: Từng bước lập trình cho hai đối tượng
1. Xây dựng bảng màu
Đầu tiên ta tạo một biến mảng (Danh sách) đặt tên là “Bảng màu” sau đó viết một thủ tục xây
dựng bảng màu trong đối tượng Cô Mai như sau:

Nếu bạn chưa biết cách tạo thủ tục (chương trình con) vui lịng đọc lại bài viết: Cách tạo thủ tục
trong Scratch
Lưu ý: Thứ tự các màu bạn phải xây dựng đúng thứ tự các màu trong đối tượng “hình trịn”


Chạy thử và cho hiện bảng màu ra màn hình bạn sẽ thấy kết quả như trên.
2. Tiến hành đánh dấu 3 màu ngẫu nhiên
À trong chương trình này bạn cần lưu ý là đưa ra 3 trái bóng có 3 màu ngẫu nhiên trong bảng màu
nhưng cũng phải thỏa mãn hai điều kiện sau:



1 màu Cơ Mai đố

3 màu phải khác nhau

Đúng khơng các bạn, nếu khơng thì chương trình dễ viết nhưng sẽ rất dở
Bây giờ ta tạo một danh sách (mảng) đặt tên là “đánh dấu” và tiến hành lập trình tạo ra mảng đánh
dấu trong đối tượng cô giáo như sau:

Ý nghĩa các lệnh lần lượt như sau:




Bạn phải tạo một mảng gép đặt tên “đánh dấu 3 số ngẫu nhiên”
Vòng lặp giúp tạo ra số phần tử dúng bằng số phần tử trong “danh sách màu” các phần
tử đều là 0 (chưa chọn được màu nào)
Đặt phần tử thứ “màu hỏi” (đây là biến lưu số thứ tự màu mà cô giáo hỏi, bạn sẽ gặp lại sau)
là 1 (chọn màu cô giáo đố)




Các lệnh tiếp theo giúp ta chọn đủ 2 màu khác và trong 3 màu khơng có bất kì màu nào
trung nhau

Sau khi lập trình xong chạy thử bạn sẽ được kết quả dạng như sau:

Ok và bây giờ là đoạn chương trình chính viết cho nhân vật Cơ giáo như sau:

Tại sao lại có thơng báo chơi lại, thơng báo này giúp lặp lại chương trình tí nữa mình sẽ giải thích rõ
hơn.
Vây là mình đã hồn thành lập trình cho nhân vật Cơ giáo, bây giờ sẽ là phân lập trình cho hình trịn

3. Lập trình cho đối tượng hình trịn
Mình đã loay hoay tìm giải pháp để lập trình cho hình trịn mất rất nhiều cơng sức. Lúc đầu đọc đề
tốn mình thấy chỉ có hai nhân vật đường trịn và cơ giáo, nhưng trong chương trình khi chạy lại
xuất hiện 3 hình trịn vì vậy mình đã sử dụng việc nhân bản đường tròn bằng lệnh “tạo bản sao”
trong quá trình chạy chương trình, tuy nhiên mình loay hoay mãi mà vẫn khơng tìm ra cách
lấy được màu mà người chơi chọn, câu “Chương trình có 2 nhân vật chính” trong đề bài đã “cứu
mình”
Và bây giờ mình chọn giải pháp “nhân bản thêm hai đối tượng hình trịn” để có 3 đối tượng hình
trịn như sau:


À trước khi bạn nhân bản bạn hãy lập trình cho hình trịn 1 cái đã, nếu đã chót nhân bản rồi thì
xóa đi để viết xong code thì nhân bản lại cho đỡ mất thời gian nhé

Nhân bản sang đường tròn 2 và sửa lại code một chút để thành như sau:

Và cuối cùng là nhân bản sang tròn 3 và chỉnh sửa thành:


Rối q phải khơng các bạn mình xin giải tích tổng quan cả chương trình như sau:
Sau khi nhân vật cô giáo đưa ra câu hỏi (hệ thống đã chọn được 3 màu ngẫu nhiên)
-> Chuyển sang đường tròn 1 (bằng cặp lệnh: “Thơng báo sang trịn 1” ở cuối code trong cô giáo và
“khi tôi nhận được thông báo sang trịn 1” ở đầu code trong hình trịn 1
-> Trịn 1 xử lí xong -> trịn 2 -> trịn 3 (kết thúc) -> Kết luận -> chơi lại
Chọn 1, chọn 2, chọn 3: là 3 biến trung gian giúp lưu lại số chỉ màu mà chúng hiển thị ra màn hình
Đoạn lệnh “Khi đối tượng này được nhắp vào” trong cả 3 hình trịn, giúp đặt biến “lựa chọn” là kết
quả mà người chơi đoán bằng cách nhắp chuột để chọn. Cuối khối lệnh là “Thông báo kết luận”
Và bây giờ là code khi gặp thơng báo “kết luận”

Nó có nhiệm vụ kiểm tra xem người dùng chọn có đúng với cô đưa ra không, cuối cùng là thông báo

“chơi lại” để chương trình đưa ra câu hỏi tiếp theo.
Ok vậy là xong rồi nhé, mệt quá!, nếu thấy có ích cho bạn đừng tiếc một comment, chia sẻ bài
viết đến các bạn khác nhé. Chúc các bạn thành cơng và có nhiều sáng tạo hơn khi lập trình Scratch.
Bài 9: Trị chơi chim bay có ngày gặp ma
Trị chơi Chim bay có các màn hình ban đầu và trong thời gian chơi như 2 hình sau:







Chương trình có 3 nhân vật chính: chim, trái cây và ma trắng. Bấm phím cách để bắt đầu
chơi. Ban đầu người chơi được ngay 10 điểm.
Chim sẽ luôn vỗ cánh và bay. Em điều khiển chim bay bằng các phím lên, phải, trái. Khi bấm
phím phải, trái, chim sẽ quay về hướng phải, trái và bay 1 đoạn ngắn. Khi bấm phím lên, chim sẽ
cố gắng bay lên. Tuy nhiên do cánh chim quá nặng nên chim sẽ luôn bị hút rơi xuống. Nếu rơi
xuống mặt đất, điểm số sẽ luôn bị trừ đi 1 điểm trong suốt thời gian ở mặt đất. Do vậy người chơi
cần điều khiển nhanh để chim bay lên.
Trên màn hình sẽ xuất hiện ngẫu nhiên các trái cây và ma trắng, chuyển động từ trái sang
phải hoặc từ phải sang trái màn hình. Trái cây xuất hiện nhiều hơn và chuyển động nhanh hơn,
ma trắng xuất hiện ít hơn và chuyển động chậm hơn.
Nếu gặp ngơi sao, người chơi được thưởng 50 điểm.


Nếu gặp ma trắng, lập tức điểm số bị đặt bằng 0, chim rơi xuống đất và trò chơi kết thúc.
Có 1 biến nhớ thời gian ln hiện trên màn hình và sẽ chạy khi bắt đầu chơi. Sau đúng 1 phút
(60 giây), trò chơi kết thúc.
Để chơi trò chơi này, người chơi cần khéo léo điều khiển con chim sao cho đạt nhiều điểm nhất khi
kết thúc chương trình, tránh va chạm với con ma trắng.

Em hãy viết chương trình Scratch mơ tả chương trình, trị chơi trên.
Xem: Chia sẻ cách lập trình trị chơi chim bay bằng scratch




Bước 1: Tạo nhân vật cho trò chơi chim bay ăn trái cây tránh ma bằng scratch
Bài tốn có 3 đối tượng cần tạo, nhân vật chính là chú chim (Parrot) do người chơi điều khiển, hai
nhân vật còn lại là con ma (Ghost2) và trái cây (apple)

Trái cây mình tạo 3 hình dạng táo, chuối, và chùm gì khơng biết nữa, các bạn có thể tạo thêm nhiều
loại trái nữa cho chương trình thêm thú vị.
Bước 2: Lập trình cho các đối tượng
2.1. Đối tượng chim ta cần lập trình các hành động sau
Lập trình cho biến thời gian để tính thời gian chơi theo đơn vị là giây:

Lập trình cho biến điểm, đầu tiên được 10 điểm, ăn được trái cây 10 điểm, nếu chạm đất cứ 0,3
giây -1 điểm gặp ma còn 0 điểm và kết thúc.


Lập trình khai báo ban đầu: vị trí xuất hiện ban đầu, đặt hướng xoay trái – phải để hình dáng ma và
trái cây không bị xoay ngược, chim luôn tự động rơi xuống phía dưới

Lập trình điều khiển chim bằng các phím mũi tên:

Và cuối cùng là lập trình khi chim va chạm với táo và ma

Các bạn thấy hầu hết các khối lệnh đều bắt đầu bằng “Khi nhấn phím khoảng cách” như vậy khi
nhấn phím khoảng cách thì tất cả các khối lệnh này đồng thời thực hiện, mình thích cách bỏ riêng
mỗi hành động ra một khối riêng như vậy cho dễ lập trình.

2.2. Lập trình cho trái cây
Ở đây mình lập trình cho trái cây, tạo bản sao sau mỗi 1 giây và mình chỉ giới hạn cho sinh tối đa
trên màn hình là 10 trái cây, các bạn có thể thay đổi nếu thích, các trái cây sẽ xuất hiện ngẫu nhiên
phía biên trên màn hình và chuyển động xuống dưới cũng theo một góc ngẫu nhiên, khi gặp hai
biên bên hay chạm đất hay gặp chim thì biến mất.


×