Lập Trình Game Luyện Trí Nhớ Bằng Scratch (A-Z): Tự Tay Xây Dựng Game Trí Tuệ!
Giới Thiệu
Bạn đã sẵn sàng cho thử thách lập trình Scratch siêu thú vị này chưa? Game Luyện Trí Nhớ (Memory Game) là dự án hoàn hảo để bạn nắm vững các kỹ thuật như quản lý Danh sách (Lists) và tạo Bản sao (Cloning).
Dare2Share sẽ hướng dẫn bạn từng bước để tự tay xây dựng trò chơi này. Hãy cùng bắt đầu!
Phần 1: Thiết Lập Dự Án, Giao Diện Menu và Khởi Tạo Bàn Chơi Ngẫu Nhiên
Phần này bao gồm việc chuẩn bị dữ liệu nguồn, tạo hiệu ứng chuyển cảnh cho Menu, và quan trọng nhất là tạo ra danh sách 14 thẻ hình ngẫu nhiên cho ván chơi.
1. Chuẩn Bị Dự Án và Giao Diện
A. Thiết Lập Sân Khấu (Stage)
- Tải lên 3 phông nền: Menu, Gameboard, và Endcard.
- Quản lý hiển thị điểm: Sử dụng khối
forevervàif/elseđể chỉ hiện các biến điểm số (số cặp hình đúng,số lần di chuyển, v.v.) khi phông nền làGameboard. - Thiết lập Khởi động:
When green flag clicked->switch backdrop to [Menu].When I receive [Bắt đầu chơi game]->switch backdrop to [Gameboard]vàset [Kết thúc game] to [False].
B. Thẻ Hình Giới Thiệu (Intro Card) và Nút Chơi Game (Play Button)
Đây là các bước tạo hiệu ứng chuyển cảnh mượt mà:
| Đối tượng | Khối Lệnh Chính | Mục đích |
| Thẻ Hình Giới Thiệu | Khối Xòe thẻ ra và Thu thẻ lại | Tạo hiệu ứng mở/gom thẻ khi vào/thoát Menu. |
| Nút Chơi Game | When backdrop switches to [Menu] -> Fade In (Hiện dần) | Tạo hiệu ứng nút hiện dần và đặt set [cho phép click nút Chơi Game] to [True] sau khi hiệu ứng kết thúc. |
| Xử lý Click | When this sprite clicked -> if [cho phép click nút Chơi Game] = [True] | Phát tín hiệu Đã click nút chơi game, và cuối cùng dẫn đến tín hiệu Bắt đầu chơi game được phát đi. |
2. Chuẩn Bị và Tạo Danh Sách Thẻ Hình Ngẫu Nhiên
Bước này diễn ra trong đối tượng Thẻ Hình (Game Card).
A. Khởi Tạo Dữ Liệu Nguồn (Khi Bấm Cờ Xanh)
When green flag clicked:set size to [40]vàset ghost effect to [100](Ẩn thẻ gốc).delete all of [Danh sách các hình].- Thêm tên 13 hình ảnh (
banana,cat,lion, v.v.) vàoDanh sách các hình(Kho dữ liệu nguồn).
B. Tạo Danh Sách Xuất Hiện (Khi Bắt Đầu Chơi Game)
Khối lệnh này là trọng tâm của Phần 1, tạo ra danh sách 14 thẻ ngẫu nhiên.
| Khối Lệnh | Ý nghĩa |
When I receive [Bắt đầu chơi game] | Kích hoạt khởi tạo bàn chơi. |
delete all of [Danh sách hình xuất hiện] | Dọn dẹp danh sách sẽ chứa 14 thẻ. |
repeat [7] | Lặp 7 lần để chọn 7 hình khác nhau. |
set [Hình ngẫu nhiên] to [pick random 1 to (length of (Danh sách các hình))] | Chọn Index ngẫu nhiên của một hình trong danh sách nguồn. |
repeat [2] -> add [item (Hình ngẫu nhiên) of (Danh sách các hình)] to [Danh sách hình xuất hiện] | Thêm tên hình đã chọn hai lần vào Danh sách hình xuất hiện (tạo một cặp). |
delete [Hình ngẫu nhiên] of [Danh sách các hình] | Xóa hình đó khỏi danh sách nguồn để không chọn lại, đảm bảo 7 hình là khác nhau. |
Reset Biến: Đặt lại các biến điểm và lựa chọn (số lần di chuyển, hình được chọn 1, v.v.) về giá trị khởi tạo. |
Phần 2: Lập Trình Logic Chơi Game, Ghép Cặp và Kết Thúc
Phần này tập trung vào logic tương tác giữa 14 thẻ bài và cách game xử lý khi người chơi lật, so sánh và xóa thẻ.
1. Tạo Bản Sao và Gán Hình Ngẫu Nhiên
- Tiếp theo khối lệnh
When I receive [Bắt đầu chơi game](Phần Thẻ Hình):- Tạo Bản Sao:
repeat [14]->change [Thứ tự thẻ hình] by [1]->create clone of [myself].
- Tạo Bản Sao:
- Thiết lập từng Thẻ Bài (Khi bắt đầu là bản sao):
When I start as a clone- Mỗi bản sao tự gán
mã số thẻ hình(ID) vàthẻ hìnhbằng cách chọn ngẫu nhiên một hình từDanh sách hình xuất hiện(danh sách này rỗng dần sau mỗi lần thẻ chọn). switch costume to [back]và sắp xếp vị trí X/Y dựa trênmã số thẻ hình.
2. Xử lý Logic Lật Thẻ (Khi Bấm vào Thẻ)
When this sprite clicked- Lật thẻ lên:
switch costume to [thẻ hình]. - Lần 1 (Thẻ 1):
if [hình được chọn 1] = [NA]-> Lưu[thẻ hình]vàohình được chọn 1và lưu ID vàoMã số bản sao hiện tại. - Lần 2 (Thẻ 2):
else->if not ([Mã số bản sao hiện tại] = [mã số thẻ hình])-> Lưu[thẻ hình]vàohình được chọn 2và tăng[số lần di chuyển]lên 1.
3. Xử lý So Sánh Cặp (Logic Thẻ Đúng/Sai)
Hai khối lệnh chạy song song trong forever (Phần Thẻ Hình):
| Logic So Sánh | Điều kiện | Hành động |
| Thẻ Sai (Lật Úp) | if not ([hình được chọn 1] = [hình được chọn 2]) | wait [0.5] secs -> switch costume to [back] (Lật úp) -> Reset hình được chọn 1/2 về NA. |
| Thẻ Đúng (Kích hoạt Xóa) | if [hình được chọn 1] = [hình được chọn 2] | set [xóa bản sao] to [True] -> Reset hình được chọn 1/2 về NA. |
4. Hoàn Thành Game (Xóa Thẻ và Kết Thúc)
- Logic Tự Xóa Thẻ: Trong khối
When I start as a clone…forever:- Khi
[xóa bản sao] = [True]và thẻ đang lật ngửa: Thẻ tự giảm[tổng số bản sao]. - Khi đủ 2 thẻ đã tự giảm: tăng
[số cặp hình đúng]lên 1, giảm[số cặp hình còn lại]đi 1, vàdelete this clone(tự xóa).
- Khi
- Kiểm tra Thắng Cuộc (Trong Sân Khấu):
repeat until [Kết thúc game = True]if [số cặp hình đúng] = [7]-> Lưu[số lần di chuyển]vào biến[kết thúc game_số lần di chuyển]->set [Kết thúc game] to [True].
- Hiển thị Kết quả: Sân khấu chuyển sang phông nền
Endcardvà hiển thị biến[kết thúc game_số lần di chuyển].
Kết Luận
Chúc mừng bạn đã hoàn thành dự án Game Luyện Trí Nhớ bằng Scratch! Bạn đã nắm vững các kỹ thuật lập trình nâng cao trong game. Hãy chia sẻ thành quả này và tiếp tục theo dõi Dare2Share để khám phá thêm nhiều dự án thú vị khác nhé!





