Máy tính cầm tay
Mục tiêu: Làm máy tính cầm tay: bấm phím trên sân khấu để gõ số, cộng, trừ, nhân, chia, phím bằng hiện kết quả, phím C xoá.
Em sẽ học gì
- Nội dung trong bài: mỗi phím là một bản sao, xếp thành lưới 16 phím bằng hai vòng lặp lồng nhau.
- Mỗi phím tự biết mình là phím gì nhờ tên trang phục, và chạy khi được bấm.
- Ghép số bằng khối kết hợp: bấm 1 rồi bấm 2 thành 12.
- Phím chỉ báo tin cho sân khấu, sân khấu nhớ số thứ nhất, phép tính, rồi tính kết quả.

Ta bắt đầu với một dự án trống. Hình ảnh đã có sẵn thành các file. Phông nền là thân máy tính có khung màn hình, và nhân vật Phim có 16 trang phục, mỗi trang phục là một phím. Bấm nút chọn phông nền ở góc dưới bên phải, chọn Tải phông nền lên, rồi chọn file nen.

Quay lại thẻ Code. Bấm nút chọn nhân vật, chọn Tải nhân vật lên, rồi chọn file phim: nhân vật Phim, đã có sẵn tên.

Mở thẻ Trang phục để xem các phím. Mỗi trang phục là một phím. Tên trang phục chính là chữ trên phím: 7, 8, 9; phép chia tên là hai chấm, phép nhân tên là chữ x.

Quay lại thẻ Code.

Bắt đầu với nhân vật Phim.

Việc cần làm: ẩn; lặp 4 hàng × 4 phím: tạo bản sao, đổi trang phục, sang phải; hết hàng xuống dưới.
Sơ đồ: ẩn, tới chỗ phím đầu tiên, trang phục 7. Chưa đủ 4 hàng: x về đầu hàng; chưa đủ 4 phím: tạo bản sao, trang phục kế tiếp, x tăng 60. Đủ 4 phím thì y giảm 56, xuống hàng dưới, cho tới khi đủ 4 hàng.

Chọn nhóm Sự kiện, kéo khối Khi bấm vào cờ xanh: chương trình chạy khi bấm cờ xanh,

Nhóm Hiển thị, khối ẩn: phím gốc không hiện, chỉ các bản sao hiện,

Nhóm Chuyển động, khối đi tới điểm x y, x bằng âm 90, y bằng 66: chỗ phím đầu tiên, góc trên bên trái.

Nhóm Hiển thị, khối đổi trang phục thành, chọn 7: phím đầu tiên là phím 7.
Giải thích: Phím gốc ẩn đi: nó chỉ là cái khuôn, 16 phím ta thấy là 16 bản sao của nó.

Nhóm Điều khiển, khối lặp lại, gõ 4: vòng ngoài, mỗi lần một hàng.

Bên trong, khối đặt x bằng, âm 90: về đầu hàng.
Giải thích: Vòng ngoài lặp 4 lần, mỗi lần làm một hàng phím.

Khối lặp lại thứ hai, gắn dưới khối đặt x, gõ 4: vòng trong, mỗi lần một phím.

Bên trong, khối tạo bản sao của bản thân tôi: in một phím ở chỗ đang đứng,

khối trang phục kế tiếp: phím sau có chữ khác,

khối thay đổi x một lượng, gõ 60: sang phải một phím.
Giải thích: Bản sao sinh ra giống hệt nhân vật gốc lúc đó: cùng chỗ, cùng trang phục. Đổi trang phục sau khi tạo thì phím sau mang chữ khác.

Sau vòng trong, vẫn trong vòng ngoài: khối thay đổi y một lượng, âm 56: xuống hàng dưới. Ta vừa làm: hai vòng lặp lồng nhau tạo 4 hàng, mỗi hàng 4 phím, mỗi phím một trang phục theo thứ tự.
Giải thích: Vòng trong xếp xong 4 phím của một hàng thì phím gốc lùi xuống 56 bước, chuẩn bị cho hàng mới.

Kéo khối Khi tôi bắt đầu là một bản sao, nhóm Điều khiển: chạy riêng trong từng bản sao,

gắn khối hiện: bản sao hiện ra.
Giải thích: Phím gốc ẩn nên bản sao sinh ra cũng ẩn theo: mỗi bản sao phải tự hiện ra.

Chạy thử: bấm cờ xanh. 16 phím hiện ra, xếp thành 4 hàng, đúng như máy tính.

Tạo biến: nhóm Biến số, bấm Tạo một biến, đặt tên là phim: phím vừa được bấm.

Việc cần làm: bấm vào phím: phim = tên trang phục, phát tin bam, phím tối đi một chút.
Nhóm Sự kiện, kéo khối Khi bấm vào nhân vật này,
Giải thích: Khối khi bấm vào nhân vật này chạy ở đúng bản sao bị bấm: bấm phím 7 thì chỉ bản sao phím 7 chạy.

Nhóm Biến số, khối đặt biến thành, chọn phim,

ô giá trị thả khối trang phục, nhóm Hiển thị, chọn tên thay cho số: tên trang phục là chữ của phím.
Giải thích: Khối trang phục tên cho biết tên trang phục đang mặc. Mỗi phím mặc một trang phục, nên tên đó chính là chữ của phím.

Nhóm Sự kiện, khối phát tin, Tin nhắn mới, tên là bam: báo cho sân khấu có phím được bấm.
Giải thích: Phát tin bam báo cho sân khấu biết có phím vừa được bấm. Sân khấu đọc biến phim để biết là phím nào.

Nhóm Hiển thị, khối đặt hiệu ứng bằng, chọn độ sáng, gõ âm 40: phím tối đi,

khối đợi, gõ 0.15 giây,

rồi khối bỏ các hiệu ứng đồ hoạ: phím sáng lại. Ta vừa làm: bấm vào phím nào thì biến phim nhớ chữ của phím đó, phát tin bam, và phím nháy tối một chút.
Giải thích: Phím tối đi 0,15 giây rồi sáng lại, trông như phím bị ấn xuống: người bấm biết máy đã nhận phím.

Chạy thử: bấm cờ xanh, bấm phím 7: ô phim hiện 7, phím tối đi rồi sáng lại. Bấm phím nhân: phim là x. Bấm C: phim là C.

Giờ đến phần tính toán. Chọn Sân khấu ở góc dưới bên phải. Tạo các biến. Biến manhinh: số đang hiện trên màn hình máy tính, biến so1: số thứ nhất của phép tính, biến phep: phép tính đã chọn, và biến moi: bằng 1 khi sắp gõ một số mới. Ô manhinh trên sân khấu: bấm chuột phải, chọn chế độ đọc lớn, rồi kéo ô vào khung màn hình của máy tính.

Việc cần làm: cờ xanh thì màn hình về 0, moi = 1.
Kéo khối Khi bấm vào cờ xanh,

khối đặt biến thành, chọn manhinh, giữ số 0,

thêm khối đặt biến thành, chọn moi, gõ 1.
Giải thích: Biến moi bằng 1 nghĩa là: phím số bấm tiếp theo bắt đầu một số mới, thay cho số đang hiện.

Việc cần làm: nhận bam: phím số thì ghép vào màn hình; phép tính thì nhớ; = thì tính; C thì xoá.
Sơ đồ khi nhận tin bam. Phím số: ghép vào số trên màn hình. Phím cộng trừ nhân chia: nhớ số thứ nhất và phép tính. Phím bằng: báo tính kết quả. Phím C: màn hình về 0.

Kéo khối Khi nhận tin, nhóm Sự kiện, chọn bam: chạy mỗi khi có phím được bấm. Phần tính để ở sân khấu: chỉ có một sân khấu nên mỗi lần bấm tính một lần. Để trong phím thì 16 bản sao cùng nhận tin, tính 16 lần.

Nhóm Điều khiển, khối nếu thì,

điều kiện là khối chứa ký tự, nhóm Các phép toán,

ô sau thả biến phim, ô trước gõ 0 1 2 3 4 5 6 7 8 9: phim là một chữ số.
Giải thích: Khối chứa ký tự đúng khi chữ phim nằm trong chuỗi 0 1 2 đến 9, tức là phím vừa bấm là phím số.

Bên trong, khối nếu thì, nếu không thì,

điều kiện bằng, bên phải gõ 1,

bên trái biến moi: đang bắt đầu số mới.

Khi đó, khối đặt biến thành, chọn manhinh,

thả biến phim: số mới là chữ số vừa bấm,

khối đặt biến thành, chọn moi, giữ số 0: đã gõ xong chữ số đầu.

Nhánh nếu không thì: khối đặt biến thành, chọn manhinh,

ô giá trị thả khối kết hợp, nhóm Các phép toán,

ô sau biến phim,

ô trước biến manhinh. Ta vừa làm: phím số thì bắt đầu số mới, hoặc ghép thêm chữ số vào sau số đang có.
Giải thích: Nếu moi bằng 1 thì chữ số vừa bấm thay cho số cũ, rồi moi về 0. Nếu không, chữ số được ghép vào sau số đang có.
Giải thích: Khối kết hợp nối hai chữ thành một: manhinh đang là 1, bấm 2 thì kết hợp thành 12, chứ không cộng thành 3.

Chạy thử: bấm cờ xanh, bấm 1, 2, 3: màn hình hiện 1, rồi 12, rồi 123.

Dưới khối nếu thứ nhất, thêm khối nếu thì,

điều kiện chứa ký tự,

ô sau biến phim, ô trước gõ cộng, trừ, chữ x, hai chấm: phim là một phép tính.

Khi đó, khối đặt biến thành, chọn so1,

thả biến manhinh: nhớ số thứ nhất,

khối đặt biến, chọn phep,

thả biến phim: nhớ phép tính,

và khối đặt biến, chọn moi, gõ 1: số tiếp theo là số thứ hai.
Giải thích: Bấm phép tính thì nhớ số đang hiện vào so1, nhớ phép vào phep, và moi bằng 1 để số thứ hai bắt đầu từ đầu.

Thêm khối nếu thì,

điều kiện bằng, bên phải gõ dấu bằng,

bên trái biến phim,

khi đó khối phát tin, tin nhắn mới tên là tinh: báo tính kết quả,

rồi khối đặt biến, chọn moi, gõ 1.
Giải thích: Bấm phím bằng thì phát tin tinh: một script riêng sẽ tính kết quả. Sau đó moi bằng 1 để gõ phép tính mới.

Thêm khối nếu thì cuối cùng,

điều kiện bằng, bên phải gõ chữ C hoa,

bên trái biến phim,

khi đó khối đặt biến thành, chọn manhinh, giữ số 0,

và khối đặt biến, chọn moi, gõ 1. Ta vừa làm: phép tính thì nhớ số thứ nhất và phép, phím bằng thì phát tin tinh, phím C thì xoá.
Giải thích: Bấm phím C thì màn hình về 0 và moi bằng 1: xoá hết, làm phép tính mới.

Việc cần làm: nhận tinh: theo phep, manhinh = so1 cộng / trừ / nhân / chia manhinh.
Sơ đồ khi nhận tin tinh: bốn khối nếu, mỗi phép tính một khối.

Kéo khối Khi nhận tin, chọn tinh.

Khối nếu thì,

điều kiện bằng, bên phải gõ dấu cộng,

bên trái biến phep,

thì khối đặt biến thành, chọn manhinh,

ô giá trị thả khối cộng, nhóm Các phép toán,

ô phải biến manhinh,

ô trái biến so1.
Giải thích: Nếu phép đã nhớ là phép cộng thì màn hình hiện so1 cộng với số đang hiện, tức là số thứ hai.

Thêm khối nếu thì,

điều kiện bằng, gõ dấu trừ,

bên trái biến phep,

thì khối đặt biến thành, chọn manhinh,

thả khối trừ,

ô phải biến manhinh,

ô trái biến so1.

Khối nếu thì,

điều kiện bằng, gõ chữ x: tên của phím nhân,

bên trái biến phep,

thì khối đặt biến thành, chọn manhinh,

thả khối nhân,

ô phải biến manhinh,

ô trái biến so1.

Khối nếu thì cuối,

điều kiện bằng, gõ hai chấm: tên của phím chia,

bên trái biến phep,

thì khối đặt biến thành, chọn manhinh,

thả khối chia,

ô phải biến manhinh,

ô trái biến so1. Ta vừa làm: theo phép đã nhớ, tính so1 với số đang hiện, rồi đưa kết quả lên màn hình.
Giải thích: Trừ và chia phải đúng thứ tự: so1 là số bấm trước, nằm ô trái; số đang hiện là số bấm sau, nằm ô phải.

Xong rồi! Chạy thử: bấm cờ xanh, bấm 1, 2, cộng, 7, bằng: màn hình hiện 19. Bấm 9, trừ, 15, bằng: âm 6. 8 nhân 25, bằng: 200. 7 chia 4, bằng: 1,75. Bấm C: màn hình về 0.

Các khối mới trong bài
- Khối khi bấm vào nhân vật này: chạy ở đúng bản sao được bấm.
- Khối trang phục tên: cho biết tên trang phục đang mặc.
- Khối kết hợp: nối hai chữ thành một: 1 và 2 thành 12.
- Khối chứa ký tự: đúng khi chữ sau nằm trong chữ trước.
Kỹ thuật lập trình đã học
- Về kỹ thuật lập trình, bài này ta học: mỗi phím là một bản sao, tên trang phục cho biết phím nào được bấm.
- Phím chỉ báo tin, sân khấu tính toán, mỗi lần bấm chỉ tính một lần.
- Ghép chữ số bằng khối kết hợp: 1 với 2 thành 12, chứ không cộng thành 3.
- Nhớ trạng thái bằng biến: so1, phep và moi cho máy biết đang làm tới đâu.
Bài tập
Bài tập mở rộng: thêm phím dấu chấm để gõ số thập phân; chia cho 0 thì màn hình hiện chữ Lỗi; và tính liên tiếp, như 2 cộng 3 cộng 4.