S U N C O D E . E D U . V N

Loading...

Bạn đã bao giờ mơ ước tạo ra một chương trình Scratch không chỉ chạy một cách máy móc mà còn có thể tương tác và đưa ra nhiều kết quả khác nhau? Đó chính là sức mạnh của những chương trình động, và chìa khóa để mở ra thế giới đó nằm ở các câu lệnh điều kiện. Bài viết này sẽ dẫn dắt bạn khám phá cách sử dụng những khối lệnh đặc biệt này để biến ý tưởng của bạn thành hiện thực sống động.

Giao diện Scratch với chú cá đang được điều khiển bằng chuột, sắp chạm vào nhân vật cá nóc.

Sức Mạnh Của Chương Trình Động: Từ Tĩnh Tại Đến Linh Hoạt

Trong thế giới lập trình Scratch, chúng ta thường bắt gặp hai loại chương trình. Loại thứ nhất là chương trình tĩnh. Với loại này, kết quả đầu ra đã được cố định từ trước. Mỗi lần bạn nhấn lá cờ xanh, mọi thứ diễn ra y hệt như lần trước – giống như một vở kịch đã được định sẵn kịch bản, không có sự thay đổi hay bất ngờ nào.

Ngược lại, chương trình động mới là nơi sự sáng tạo thực sự tỏa sáng. Những chương trình này có khả năng hành động và thay đổi mỗi khi chúng được chạy. Hành vi của chúng phụ thuộc vào các tình huống cụ thể, như sự tương tác từ người dùng, vị trí của các nhân vật, hay thậm chí là các giá trị ngẫu nhiên. Để xây dựng nên những chương trình linh hoạt như vậy, chúng ta cần đến một công cụ đắc lực: các khối câu lệnh điều kiện. Những khối lệnh này đóng vai trò như “bộ não” ra quyết định, hướng dẫn chương trình phản ứng thế nào trong các hoàn cảnh khác nhau.

Ví dụ, hãy tưởng tượng bạn có một chương trình đơn giản nơi một chú cá có thể được điều khiển bằng con trỏ chuột. Điều đó đã khá thú vị, nhưng sẽ thế nào nếu bạn muốn một hành động đặc biệt xảy ra khi chú cá này chạm vào một nhân vật khác, chẳng hạn như một chú cá nóc gai? Đây chính là lúc câu lệnh điều kiện phát huy tác dụng.

Làm Quen Với Các Khối Lệnh Điều Kiện Và Giá Trị Boolean

Khu vực danh mục "Control" (Điều khiển) trong Scratch, nơi chứa các khối lệnh điều kiện như "wait until" và "repeat until".

Để bắt đầu, hãy mở danh mục Control (Điều khiển) trong Scratch. Tại đây, bạn sẽ tìm thấy một số khối lệnh điều kiện cho phép bạn điều chỉnh luồng chương trình dựa trên các điều kiện cụ thể. Chúng là những khối lệnh bắt đầu bằng “wait until” (chờ cho đến khi) hoặc “repeat until” (lặp lại cho đến khi), và chúng sẽ kiểm tra xem một điều gì đó là đúng (true) hay sai (false).

Trong ví dụ về trò chơi con cá, chúng ta có thể thử sử dụng khối wait until. Ý tưởng là chương trình sẽ tạm dừng và chờ đợi cho đến khi một điều kiện nào đó được thỏa mãn. Nhưng làm thế nào để xác định điều kiện “chạm vào cá nóc”? Chúng ta cần đến danh mục Sensing (Cảm biến). Từ đây, hãy lấy khối touching [mouse-pointer]? và sử dụng menu thả xuống để chọn đối tượng “pufferfish” (cá nóc) thay vì con trỏ chuột.

Khối lệnh "touching [pufferfish]?" có hình lục giác kéo dài, đặc trưng của khối Boolean.

Điều quan trọng cần hiểu là các câu lệnh điều kiện luôn trả về một trong hai giá trị: True (Đúng) hoặc False (Sai). Trong trường hợp này:
– Nếu hai nhân vật không chạm nhau, khối touching [pufferfish]? sẽ báo cáo False.
– Nếu hai nhân vật chạm nhau, khối này sẽ báo cáo True.

Scratch cung cấp một loạt các điều kiện đa dạng để bạn lựa chọn và hoàn thiện câu lệnh điều kiện của mình. Những khối lệnh báo cáo giá trị True/False này được gọi là khối Boolean. Bạn có thể dễ dàng nhận diện chúng qua hình dạng lục giác kéo dài đặc trưng.

Phân Biệt “Wait Until” Và “Repeat Until” Qua Ví Dụ Thực Tế

Đoạn code sử dụng khối "wait until" kết hợp với khối "play sound".

Hãy cùng xem sự khác biệt giữa wait untilrepeat until qua một ví dụ trực quan. Đầu tiên, chúng ta lắp ráp khối wait until [touching pufferfish]? và đặt trước khối play sound. Khi chạy chương trình, điều gì sẽ xảy ra? Với wait until, chương trình sẽ kiên nhẫn chờ đợi cho đến khi điều kiện trở thành True (tức là con cá chạm vào cá nóc). Chỉ khi đó, âm thanh mới được phát ra. Nó giống như việc bạn đợi chuông reng thì mới mở cửa.

Đoạn code sử dụng khối "repeat until" để lặp lại việc phát âm thanh.

Bây giờ, hãy thử thay thế bằng khối repeat until [touching pufferfish]? và đặt khối play sound bên trong vòng lặp này. Hiệu ứng hoàn toàn ngược lại! Chương trình sẽ liên tục lặp lại việc phát âm thanh cho đến khi điều kiện trở thành True (cá chạm cá nóc). Nó giống như một hồi chuông báo động kêu liên tục cho đến khi bạn tắt nó đi. Sự tương phản này giúp chúng ta hiểu rõ:
Wait until: Dừng lại và chờ điều kiện xảy ra.
Repeat until: Lặp lại một hành động cho đến khi điều kiện xảy ra.

Nâng Cấp Tương Tác: Kết Hợp Với Vòng Lặp “Forever” Và Câu Lệnh “If”

Nhân vật con cá thay đổi costume và hiện bong bóng suy nghĩ "Ouch!" khi chạm vào cá nóc.

Để tạo ra tương tác phong phú hơn, chúng ta có thể kết hợp nhiều yếu tố. Giả sử chúng ta muốn chú cá của mình thay đổi trang phục (costume) và nghĩ “Ouch!” mỗi khi chạm phải cá nóc. Chúng ta có thể sử dụng khối wait until kết hợp với các khối switch costumethink. Tuy nhiên, khi chạy thử, bạn có thể nhận thấy một vấn đề: sau lần chạm đầu tiên, nếu cá tiếp tục chạm vào cá nóc, thông báo “Ouch!” không xuất hiện nữa. Tại sao lại vậy?

Toàn bộ mã lệnh được đặt bên trong một khối "forever" (mãi mãi).

Lý do là vì chương trình chỉ kiểm tra điều kiện một lần duy nhất. Sau khi điều kiện được thỏa mãn và mã lệnh bên trong đã chạy xong, nó sẽ dừng lại. Giải pháp là đặt toàn bộ ngăn xếp mã lệnh này vào bên trong một vòng lặp forever (mãi mãi). Bằng cách này, chương trình sẽ liên tục kiểm tra điều kiện. Mỗi lần cá chạm vào cá nóc, bạn sẽ thấy “Ouch!” xuất hiện, vì nó luôn trong trạng thái sẵn sàng kiểm tra.

Nhưng nếu chúng ta muốn nhân vật chuyển về trang phục ban đầu ngay khi nó không chạm vào cá nóc nữa thì sao? Vị trí đặt khối lệnh switch costume là rất quan trọng.
– Nếu đặt bên trong vòng lặp forever (sau khối kiểm tra), chương trình sẽ liên tục chuyển về trang phục gốc, rồi ngay lập tức kiểm tra xem có đang chạm không. Nếu có, nó sẽ hiện trang phục “Ouch!”. Quá trình này diễn ra quá nhanh đến mắt thường không thể nhận thấy sự chuyển đổi.
– Nếu thêm một khối wait nhỏ trước khi kiểm tra, bạn sẽ thấy rõ hiệu ứng nhấp nháy giữa hai trang phục.

Sử dụng câu lệnh "if then else" để xử lý hai trường hợp: chạm và không chạm.

Trong lập trình, thường có nhiều cách để đạt được cùng một mục tiêu. Thay vì dùng wait until, chúng ta có thể sử dụng câu lệnh if then else (nếu-thì-ngược lại). Cấu trúc này hoàn hảo cho tình huống có hai khả năng rõ ràng:
Nếu (if) đang chạm cá nóc thì (then) chuyển sang costume “Ouch!” và nghĩ “Ouch!”.
Ngược lại (else) (tức là không chạm) thì chuyển về costume cá bình thường.

Hiệu ứng chuyển đổi costume ngay lập tức khi cá rời khỏi cá nóc, nhờ câu lệnh "if then else".

Với cấu trúc if then else được đặt trong vòng lặp forever, chương trình sẽ phản ứng tức thì. Bạn sẽ thấy trang phục chuyển đổi ngay lập tức khi cá chạm vào hoặc rời khỏi cá nóc, tạo nên một tương tác mượt mà và trực quan hơn rất nhiều.

Kết Luận: Thử Nghiệm Và Sáng Tạo Không Giới Hạn

Câu lệnh điều kiện chính là trái tim của mọi chương trình tương tác trong Scratch. Từ những khối cơ bản như wait until, repeat until đến những cấu trúc mạnh mẽ hơn như if then else, chúng mở ra vô số khả năng để bạn biến các dự án của mình từ tĩnh tại trở nên sống động và đầy bất ngờ. Bài học quan trọng nhất không chỉ là ghi nhớ cách sử dụng từng khối lệnh, mà là tinh thần tự mày mò và thử nghiệm. Hãy đặt ra những câu hỏi “Điều gì sẽ xảy ra nếu…?” và dùng code để kiểm chứng.

Bạn có thể thử thách bản thân bằng cách:
– Thêm code cho nhân vật cá nóc để nó cũng có phản ứng khi bị chạm.
– Tạo ra các điều kiện phức tạp hơn bằng cách lồng ghép (nesting) nhiều câu lệnh if vào nhau.
– Kết hợp điều kiện với các khối lệnh ngẫu nhiên để tạo ra trải nghiệm mỗi lần chơi mỗi khác.

Hãy bắt đầu từ những dự án nhỏ, quan sát kỹ cách mỗi khối lệnh hoạt động, và dần dần, bạn sẽ có đủ tự tin để xây dựng nên những trò chơi, câu chuyện tương tác phức tạp của riêng mình. Thế giới lập trình sáng tạo đang chờ đợi bạn khám phá!

Leave A Comment