1 00:00:01,837 --> 00:00:04,384 Đây là hàm bạn có thể chưa biết: random. 2 00:00:04,384 --> 00:00:10,587 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. 3 00:00:10,587 --> 00:00:18,582 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. 4 00:00:18,582 --> 00:00:26,048 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ữ. 5 00:00:26,048 --> 00:00:30,585 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. 6 00:00:30,585 --> 00:00:34,162 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. 7 00:00:34,162 --> 00:00:38,685 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? 8 00:00:38,685 --> 00:00:48,393 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. 9 00:00:48,393 --> 00:00:52,158 Như vậy, tôi sẽ tiếp tục và tạo biến mới gọi là "integer" 10 00:00:52,158 --> 00:00:58,713 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. 11 00:00:58,713 --> 00:01:12,395 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. 12 00:01:12,395 --> 00:01:18,307 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. 13 00:01:18,307 --> 00:01:30,866 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. 14 00:01:30,866 --> 00:01:36,271 Như vậy, như thế này: Tôi lấy số này, đặt nó vào đây. 15 00:01:36,271 --> 00:01:41,543 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. 16 00:01:41,543 --> 00:01:47,597 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. 17 00:01:47,597 --> 00:01:55,248 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. 18 00:01:55,248 --> 00:01:58,824 Và nếu bạn lật số 1, bạn được 10 đô la. Trò chơi hay đấy, phải không? 19 00:01:58,824 --> 00:02:06,608 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é. 20 00:02:06,608 --> 00:02:17,654 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á. 21 00:02:17,654 --> 00:02:28,589 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. 22 00:02:28,589 --> 00:02:35,888 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. 23 00:02:35,888 --> 00:02:39,093 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ễ. 24 00:02:39,093 --> 00:02:53,631 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. 25 00:02:53,631 --> 00:03:06,302 Và sau đó nếu "integer" === 1, ta có một hàm fill khác và tạo màu vàng. 26 00:03:06,302 --> 00:03:16,108 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 đó. 27 00:03:16,108 --> 00:03:19,042 Như vậy, điều đó có nghĩa là câu lệnh này sẽ đúng 28 00:03:19,042 --> 00:03:21,460 Hoặc câu lệnh này sẽ 29 00:03:21,460 --> 00:03:22,554 Luôn luôn đúng. 30 00:03:22,554 --> 00:03:27,650 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. 31 00:03:27,650 --> 00:03:35,928 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. 32 00:03:35,928 --> 00:03:40,789 Vậy bạn có thấy ta không cần đề cập tới "integer" === 1 trong vế thứ 2 không? 33 00:03:40,789 --> 00:03:45,255 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. 34 00:03:45,255 --> 00:03:48,263 Và trong lập trình, cách ta nói "khác" (otherwise) chính là "else". 35 00:03:48,263 --> 00:03:53,521 Như vậy, hãy xem lại: Ta sẽ thay thế if-condition thứ hai này bằng từ "else" 36 00:03:53,521 --> 00:03:59,872 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. 37 00:03:59,872 --> 00:04:03,221 Nếu không, hãy chạy code trong các dấu ngoặc này. 38 00:04:03,237 --> 00:04:10,490 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. 39 00:04:10,490 --> 00:04:15,551 Bạn không thể có khối "else" trừ khi bạn có khối "if" trước. Bạn hiểu chứ? 40 00:04:15,551 --> 00:04:27,071 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 đó. 41 00:04:27,071 --> 00:04:32,900 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. 42 00:04:32,900 --> 00:04:34,738 Nhưng nếu ta có nhiều hơn thì sao? 43 00:04:34,738 --> 00:04:40,948 Đ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? 44 00:04:40,948 --> 00:00:00,000 Duh duh duh! Sẽ còn tiếp ở phần sau..