Đây là hàm bạn có thể chưa biết: random.
Nó nhận hai tham số: giới hạn dưới và giới hạn trên, và trả ra một số ngẫu nhiên nằm trong hai giới hạn.
Như vậy, ở đây giá trị biến này sẽ ở đâu đó giữa 0 và 1. Sau đó ta sẽ vẽ số đó vào khung vẽ bằng hàm text này.
Hai tham số cuối cùng là dành cho tọa độ x và y của chữ. Ta sử dụng textSize và fill để thiết lập màu và đổ màu cho chữ.
Như vậy, nếu nhấn chạy lại một vài lần, bạn có thể thấy các số ngẫu nhiên được tạo ra.
Và bạn sẽ thấy rằng độ chính xác của những số này lên đến 3 chữ số thập phân.
Như vậy, câu hỏi là: Chuyện gì sẽ xảy ra nếu ta chỉ muốn tạo giá trị 0 hoặc 1?
Chà, ta có thể sử dụng hàm khác gọi là round và hàm này có thể nhận vào số thập phân, và làm tròn nó thành số nguyên gần nhất.
Như vậy, tôi sẽ tiếp tục và tạo biến mới gọi là "integer"
và chỉ định cho nó bất cứ giá trị làm tròn nào. Và ta cũng có thể vẽ "integer" đó lên màn hình bằng hàm text, rất tiện lợi.
Như vậy, text "integer" ... ta gán nó, có thể là 160 và 350. Tốt rồi. Như vậy, ta thấy nó làm tròn 0,2314 xuống thành 0.
Và nếu ta đưa vào một giá trị nào đó như 4.6, nó sẽ làm tròn lên thành 5. Ngon.
Như vậy, nếu muốn giá trị ngẫu nhiên 0 hoặc 1, ta có thể lấy số thập phân ngẫu nhiên trong khoảng từ 0 đến 1 và đưa nó vào hàm round.
Như vậy, như thế này: Tôi lấy số này, đặt nó vào đây.
Và giờ bạn có thể thấy rằng bất cứ khi nào ta tạo ra một số nhỏ hơn 0,5, nó sẽ được làm tròn xuống 0.
còn nếu tạo ra một số lớn hơn hoặc bằng 0,5, nó sẽ được làm tròn thành 1.
Và có lẽ bạn bắt đầu thấy ta đang có trò tung đồng xu ở đây. Nếu bạn lật số 0, được đưa cho 1 đô la.
Và nếu bạn lật số 1, bạn được 10 đô la. Trò chơi hay đấy, phải không?
Trên thực tế, hãy tiếp tục minh họa trò chơi tung đồng xu này với đồng tiền thực nào đó bằng việc vẽ những hình elip nhàm chán nhé.
Giống như thế này: Tôi sẽ vẽ một hình elip ở giữa khung vẽ và đó sẽ là đồng xu. Ôi, nó đè lên chữ, hãy nâng lên một chút. Tuyệt quá.
Và, tôi có ý tưởng này: Nếu lật trúng số 0, tôi sẽ hiển thị mặt màu tím của đồng xu, như vậy để làm cho đồng xu có màu tím, ta có thể chỉ cần tô màu tím nào đó lên.
Và nếu lật được 1, tôi sẽ hiển thị ... umm ... mặt vàng của đồng xu. Như vậy, nó sẽ là một đồng xu có 2 mặt tím và vàng.
Và may mắn thay, với kiến thức ấn tượng của ta về if-statement (mệnh đề if), điều này là siêu dễ.
Như vậy, ta chỉ cần gõ if "integer" === 0, hãy nhớ rằng ta sử dụng ba dấu bằng (===) để kiểm tra giá trị bằng nhau, sau đó phủ đầy hình elíp bằng màu tím.
Và sau đó nếu "integer" === 1, ta có một hàm fill khác và tạo màu vàng.
Tuyệt quá. Và nó chạy rồi! Woo hoo! Nhưng hãy dành 1 giây suy nghĩ. Số nguyên ở đây sẽ chỉ là 0 hoặc 1, phải không? Ta đã thiết kế nó theo cách đó.
Như vậy, điều đó có nghĩa là câu lệnh này sẽ đúng
Hoặc câu lệnh này sẽ
Luôn luôn đúng.
Ta đã tính đến mọi trường hợp có thể xảy ra ở đây, nghĩa là ta có thể bắt đầu suy nghĩ về quyết định tạo ra một chút khác biệt.
Nghĩa là, nếu "integer" bằng 0, ta sẽ tô màu tím, nếu không, tô màu vàng.
Vậy bạn có thấy ta không cần đề cập tới "integer" === 1 trong vế thứ 2 không?
Tất cả những gì ta phải làm là if "integer" === 0, hãy làm điều này; nếu không, làm điều kia.
Và trong lập trình, cách ta nói "khác" (otherwise) chính là "else".
Như vậy, hãy xem lại: Ta sẽ thay thế if-condition thứ hai này bằng từ "else"
Và điều này có nghĩa là nếu những gì bên trong cặp dấu ngoặc đơn này là đúng, thì hãy chạy code trong các dấu ngoặc này.
Nếu không, hãy chạy code trong các dấu ngoặc này.
Và đôi khi ta thậm chí sẽ đặt "else" trên cùng một dòng với khung đóng đó chỉ để nhắc nhở bản thân rằng hai khối mã này liên quan rất rất mật thiết.
Bạn không thể có khối "else" trừ khi bạn có khối "if" trước. Bạn hiểu chứ?
Và điều này cũng giúp bạn nhớ rằng: không đặt bất kỳ lệnh gì vào giữa 2 khối như "var y = 0", điều đó sẽ phá vỡ mọi thứ! Đừng làm điều đó.
Tuyệt quá. Như vậy, bây giờ ta biết rằng if-else thực sự tốt khi cần quyết định giữa hai điều có thể làm.
Nhưng nếu ta có nhiều hơn thì sao?
Điều gì xảy ra nếu ta tạo một số nguyên giữa 0 và 2 và dẫn tới ba khả năng: 0, 1 hoặc 2? Rồi thì sao nữa?
Duh duh duh! Sẽ còn tiếp ở phần sau..