Nâng cao · Mức B · Bài 1

Điều khiển bốn hướng và biên

Mục tiêu: Điều khiển mèo bằng bốn phím mũi tên trong một vòng lặp: đi mượt, đi chéo được; ra mép phải thì hiện lại ở mép trái.

Em sẽ học gì

  • Nội dung trong bài: kiểm tra trạng thái phím liên tục trong vòng lặp, để nhân vật đi mượt và đi chéo được.
  • Xử lý biên: ra khỏi mép bên này thì hiện lại ở mép bên kia.
Kết quả cần đạt
Kết quả cần đạt: bấm cờ xanh để chạy thử.
130

Bài làm như sau. Ở cấp Cơ bản ta dùng bốn khối Khi bấm phím: giữ phím thì mèo khựng một nhịp rồi mới chạy, và không đi chéo được. Nhắc lại: sân khấu rộng từ âm 240 đến 240 theo chiều ngang x, và từ âm 180 đến 180 theo chiều dọc y. Điểm chính giữa sân khấu có x bằng 0, y bằng 0.

Bước 1

Việc cần làm: về giữa sân khấu, rồi lặp mãi: phím mũi tên nào đang được bấm thì đi 5 bước theo hướng đó.

230

Chọn nhóm Sự kiện, kéo khối: Khi bấm vào cờ xanh,

Bước 2
330

Chọn nhóm Chuyển động, gắn khối đi tới điểm x y: mặc định x bằng 0, y bằng 0, là giữa sân khấu.

Bước 3
430

Khối vòng lặp mãi mãi, tên là liên tục, trong nhóm Điều khiển.

Bước 4
530

Bên trong, khối điều kiện nếu,

Bước 5
630

điều kiện là khối phím được bấm, trong nhóm Cảm biến, chọn mũi tên phải.

Bước 6
730

Khi đó, khối thay đổi x một lượng, trong nhóm Chuyển động, gõ 5: sang phải 5 bước.

Giải thích: Khối phím được bấm cho kết quả đúng khi phím đó đang được giữ. Vòng lặp hỏi lại khối này liên tục.

Bước 7
830
Chạy thử

Thử ngay: bấm cờ xanh rồi giữ phím mũi tên phải: mèo trượt đều sang phải, không khựng.

Bước 8
930

Bấm nút đỏ để dừng.

Bước 9
1030

Thêm khối nếu thứ hai, gắn dưới khối nếu thứ nhất,

Bước 10
1130

điều kiện: khối phím được bấm, chọn mũi tên trái.

Bước 11
1230

khối thay đổi x một lượng, gõ âm 5: sang trái.

Bước 12
1330

Khối nếu thứ ba,

Bước 13
1430

điều kiện: khối phím được bấm, chọn mũi tên lên.

Bước 14
1530

lần này là khối thay đổi y một lượng, gõ 5: đi lên.

Bước 15
1630

Khối nếu thứ tư,

Bước 16
1730

điều kiện: khối phím được bấm, chọn mũi tên xuống.

Bước 17
1830

khối thay đổi y một lượng, gõ âm 5: đi xuống. Ta vừa làm: một vòng lặp, bốn khối nếu. Mỗi vòng lặp kiểm tra cả bốn phím, phím nào đang giữ thì đi theo hướng đó.

Bước 18
1930
Chạy thử

Chạy thử: bấm cờ xanh, lần lượt giữ phải, lên, trái, xuống: mèo đi mượt theo cả bốn hướng. Giữ hai phím cùng lúc, phải và lên: mèo đi chéo, vì trong một vòng lặp cả hai khối nếu đều đúng. Nhưng giữ phím phải thật lâu thì mèo đi ra ngoài mép sân khấu, gần như mất hút. Ta phải xử lý biên.

Bước 19
2030

Bấm nút đỏ để dừng. Xử lý biên: x lớn hơn 220, tức là quá mép phải, thì đưa mèo về mép trái, x bằng âm 220. Và ngược lại.

Bước 20
2130

Thêm khối nếu thứ năm, gắn dưới khối nếu thứ tư,

Bước 21
2230

điều kiện là phép so sánh lớn hơn, trong nhóm Các phép toán: bên phải gõ 220,

Bước 22
2330

bên trái thả khối tọa độ x, trong nhóm Chuyển động: mèo đã quá mép phải.

Bước 23
2430

Khi đó, khối đặt x bằng, gõ âm 220: mèo hiện lại ở mép trái.

Bước 24
2530

Khối nếu thứ sáu, cho mép trái,

Bước 25
2630

điều kiện là phép so sánh nhỏ hơn, bên phải gõ âm 220,

Bước 26
2730

bên trái thả khối tọa độ x.

Bước 27
2830

Khi đó, khối đặt x bằng, gõ 220: mèo hiện lại ở mép phải. Ta vừa làm: x lớn hơn 220 thì đặt x bằng âm 220, x nhỏ hơn âm 220 thì đặt x bằng 220.

Bước 28
2930
Chạy thử

Chạy thử: bấm cờ xanh rồi giữ phím phải: tới mép phải, mèo hiện lại ở mép trái và đi tiếp. Giữ phím trái: tới mép trái thì hiện lại ở mép phải. Mèo đi vòng quanh sân khấu.

Bước 29
3030

Bấm nút đỏ để dừng.

Bước 30

Các khối mới trong bài

  • Khối phím được bấm: đúng khi phím đó đang được giữ, vòng lặp hỏi lại liên tụ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: hai cách nhận phím. Sự kiện Khi bấm phím chạy một lần mỗi lần bấm. Kiểm tra trạng thái trong vòng lặp thì hỏi liên tục, nên mượt hơn.
  • Các khối nếu nối tiếp nhau là các điều kiện độc lập: nhiều điều kiện có thể cùng đúng, nhờ vậy mới đi chéo được.
  • Điều kiện biên: luôn kiểm tra khi giá trị vượt giới hạn, rồi xử lý.

Bài tập

Bài tập: xử lý nốt mép trên và mép dưới với tọa độ y. Rồi thêm phím cách để mèo nhảy lên 30 bước và rơi xuống lại.

Đèn giao thông Trò chơi đoán số
ZaloCộng đồng hỗ trợ lập trình ScratchCộng đồng hỗ trợ