Lập trình mô phỏng trái bi-a với Scratch

Nội dung bài toán lập trình mô phỏng trái bi-a với Scratch: Một chiếc bàn bi-a hình chữ nhật trên đó có một trái bi-a. Khi nháy chuột quả bóng sẽ chuyển động về phía con chuột, trái bi a khi chạm vào cạnh bàn thì bật lại.

Đây là bài số 4 trong: 50 bài tập lập trình Scratch

Phân tích bài toá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 luôn.

Cái khó của bài toá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 toá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ạn thấy có vẻ như hình chữ nhật là cùng một màu, nhưng thật ra không phải như vậy, hai cạnh ngay màu đỏ và hai cạnh đứng màu nhạt hơn đó. Bạn nào có cách giải quyết triệt để bài toán vui lòng comment chúng ta cùng chia sẻ.

Xin chào và hẹn các bạn trong bài sau!

FIle Word hướng dẫn

3 Comments

  1. Có cách giải khác nha ad. Ad có thể tạo ra 4 nhân vật khác làm thánh bàn bi-a. Tạo mã cho bóng khi đạp vào các nhân vật đó rồi bật lại là được

Trả lời

Email của bạn sẽ không được hiển thị công khai.

Check Also
Close
Back to top button