Giờ hãy nói về các điều kiện phức tạp hơn mà ta có thể kiểm tra trong chương trình.
Để minh họa, tôi đã thiết lập khung vẽ trông như một trò chơi cũ đã từng chơi
Foursquare.
Có bốn hình vuông (nó có một cái tên hay) và bạn đứng trong một hình vuông rồi đưa bóng của bạn vào trong các hình vuông khác.
Vậy, ngay bây giờ tôi sẽ vẽ một hình elip tại vị trí con trỏ, như vậy nó giống như một quả bóng
Những gì tôi muốn làm là làm nổi bật hình vuông mà quả bóng đang ở, bằng cách vẽ một hình chữ nhật màu trắng trên nó.
Tôi biết mình cần một mệnh đề IF để làm điều đó, bởi tôi chỉ muốn làm điều đó mỗi khi vượt qua hình chữ nhật đó
Được rồi, vậy hãy bắt đầu bằng cách vẽ hình chữ nhật.
Tôi chỉ cần copy trực tiếp từ đó, nhưng tô cho nó một màu khác, màu trắng chẳng hạn.
Tốt rồi. Giờ, hãy bọc nó trong khối lệnh IF
Bạn thấy đấy, nó tự động điền dấu ngoặc nhọn, nên ta phải di chuyển vào bên trong.
Ok. Vậy khi nào ta muốn hiển thị hình chữ nhật đó?
Chà, ta biết ta muốn làm điều đó khi mouseX nhỏ hơn 200 (mouseX < 200)
Nó đã chạy, nhưng sau đó nếu tôi đi xuống đây, nó vẫn đang hiển thị.
Nên tôi cũng cần kiểm tra mouseY nữa.
Chà, làm cách nào để kiểm tra Cả 2 điều đó?
Đó là lý do tại sao ta có toán tử "VÀ"
Vậy, toán tử And được sử dụng khi ta muốn kiểm tra nhiều điều kiện.
Vậy, ta chỉ cần viết && và sau đó viết điều kiện tiếp theo, "mouseY < 200"
Nó không sáng còn ở đây nữa và nó ở đây! YAYY
Hãy thực hiện với hình vuông tiếp theo, chỉ để chứng minh rằng nó hoạt động.
Được rồi, ta chỉ cần thay đổi một số chỗ.
Thay vào đó hãy lấy hình chữ nhật này, và rõ ràng cần thay đổi điều kiện để nó không sáng lên nữa.
Vậy, lần này, mouseX cần lớn hơn 200 và mouseY vẫn nhỏ hơn 200
Đẹp quá, nhìn kìa!
Được rồi, bây giờ, trong Foursquare, bất cứ khi nào bóng chạm vào các cạnh, bạn biết đấy, những đường này nằm ở giữa và các góc
ta luôn thông báo "EdgeBall"
Vậy, tôi cũng muốn làm điều đó ở đây. Hãy bắt đầu bằng cách viết "EDGE BALLL".
Và hãy viết ở giữa và tô chữ màu đỏ.
Vậy, tôi chỉ muốn nó xảy ra nếu chạm vào cạnh.
Vậy, ta sẽ thêm if
Và chuyển đoạn code này vào bên trong nó
Khi nào tôi muốn nó xảy ra?
Ồ, có các cạnh ở giữa, nên ở giữa là khi mouseX == 200
Được rồi để xem. Tôi có nhận được Edge Ball không ..
Chúng tới rồi! EDGE BALL
OK. Hừm. Vậy, nó hoạt động trong đường kẻ giữa này, ở đây
Nhưng tôi cũng muốn nó hoạt động tại đường kẻ này ở đây nữa.
Vậy, trong trường hợp đó, tôi muốn mouseY == 200, vì đó là đường kẻ giữa.
Ok Hãy xem, nó không hoạt động. Chẳng có gì hoạt động cả.
Ow, có 1 thứ chạy được, tại chính giữa tâm điểm.
Vâng, đó là bởi ta đã sử dụng toán tử VÀ, vì vậy nó sẽ chỉ thực hiện nếu cả hai điều kiện này là đúng, và nó sẽ chỉ xảy ra ở tâm điểm.
Vậy, những gì tôi thực sự muốn nói là, EITHER (HOẶC) một trong những điều này đúng
Vậy, ta sử dụng toán tử OR
Vậy, toán tử OR trông như thế này: "||"
Ta gọi chúng là ký tự sổ dọc (pipe symbols), và có lẽ bạn chưa bao giờ sử dụng chúng
Bạn phải nhìn nó trên bàn phím, nó thường ở phía trên bên phải
Hy vọng rằng bạn thực sự thấy có nó trên bàn phím.
Ổn rồi? Tuyệt, vậy bây giờ hãy xem nó hoạt động hay không ..
Được rồi, nó hoạt động ở đó, ở đó và sau đó hoạt động ở đó .. đẹp đấy ..
ta có thể tiếp tục thêm nhiều điều kiện ở đây
Như vậy với cả AND và OR, bạn có thể có nhiều thứ như mình muốn
Nếu cần kiểm tra 60 điều kiện khác nhau, ta hoàn toàn có thể làm điều đó, phải không?
Bởi ta chưa quan tâm tới các cạnh nên
giả sử nếu mouseX nhỏ hơn 3
Vậy, đó phải là ... xem nào, cạnh bé xíu nằm ở đó
Rất tốt
Hoặc mouseX lớn hơn 397 (mouseX> 397)
Xem nào .. đẹp quá!
Vậy, ta tiếp tục áp dụng điều đó với tất cả các cạnh
Như vậy, vâng! Với AND (&&) và OR (||) giờ bạn có thể thấy cách ta xây dựng các điều kiện phức tạp hơn nhiều trong các chương trìnhh.
Và điều đó thật tốt, bởi thế giới quả là nơi phức tạp.