[Script Info] Title: [Events] Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text Dialogue: 0,0:00:01.87,0:00:03.82,Default,,0000,0000,0000,, Đây là nơi ta vừa dừng lại ở trò chơi lật đồng xu. Dialogue: 0,0:00:03.82,0:00:06.60,Default,,0000,0000,0000,, Ta đã bắt đầu bằng cách tạo một số ngẫu nhiên trong khoảng từ 0 đến 1, Dialogue: 0,0:00:06.60,0:00:08.88,Default,,0000,0000,0000,, và sau đó làm tròn số đó đến số nguyên gần nhất. Dialogue: 0,0:00:08.88,0:00:12.21,Default,,0000,0000,0000,, Vậy, nó đã cho ta một số: 0 hoặc 1. Dialogue: 0,0:00:12.21,0:00:18.91,Default,,0000,0000,0000,, Sau đó ta đã minh họa đồng tiền thật bằng hình elip màu tím hoặc vàng, tùy thuộc vào giá trị nhận được. Dialogue: 0,0:00:18.91,0:00:20.99,Default,,0000,0000,0000,, Và đây là code thực hiện điều đó. Dialogue: 0,0:00:20.99,0:00:25.82,Default,,0000,0000,0000,, Ta đã nói nếu số nguyên bằng 0, viết code tô màu tím, nếu không, tô màu vàng. Dialogue: 0,0:00:25.82,0:00:27.92,Default,,0000,0000,0000,, Và sau đó ta kéo đồng xu xuống đây. Dialogue: 0,0:00:27.92,0:00:32.46,Default,,0000,0000,0000,, Nhưng giờ tôi đã quyết rằng thực sự đồng xu của chúng ta có 3 mặt. Đúng vậy, một đồng tiền 3 mặt. Dialogue: 0,0:00:32.46,0:00:34.19,Default,,0000,0000,0000,, Vậy, hãy thêm mặt thứ ba. Dialogue: 0,0:00:34.19,0:00:37.11,Default,,0000,0000,0000,, Ta sẽ bắt đầu bằng cách tạo một số trong khoảng từ 0 đến 2, Dialogue: 0,0:00:37.11,0:00:41.53,Default,,0000,0000,0000,, Để sau khi ta làm tròn số đó, nó sẽ cho một số nguyên: 0, 1 hoặc 2. Dialogue: 0,0:00:41.53,0:00:45.61,Default,,0000,0000,0000,, Nhưng nếu ta nhìn vào code vẽ, thì chỉ có 2 trường hợp ở đây. Dialogue: 0,0:00:45.61,0:00:48.82,Default,,0000,0000,0000,, Nếu số nguyên bằng 0, tô màu tím, nếu không, tô màu vàng. Dialogue: 0,0:00:48.82,0:00:51.88,Default,,0000,0000,0000,, Nhưng bây giờ, nếu khác 0 có thể là 1 hoặc 2. Dialogue: 0,0:00:51.88,0:00:54.93,Default,,0000,0000,0000,, Nhưng chờ đã, nếu làm điều tương tự như ta làm trước đây, Dialogue: 0,0:00:54.93,0:00:57.40,Default,,0000,0000,0000,, nhưng đặt bên trong khối else này thì sao? Vậy, ta viết: Dialogue: 0,0:00:57.40,0:01:04.93,Default,,0000,0000,0000,, nếu số này bằng 1 thì tô vàng, như trước, Dialogue: 0,0:01:04.93,0:01:11.40,Default,,0000,0000,0000,, nếu không, ta sẽ tô màu đỏ. Màu đỏ đẹp đấy. Dialogue: 0,0:01:11.40,0:01:15.48,Default,,0000,0000,0000,, Điều này có nghĩa là gì, nếu số nguyên bằng 0, tô màu tím, Dialogue: 0,0:01:15.48,0:01:18.98,Default,,0000,0000,0000,, nếu không, là 1, ta sẽ tô màu vàng; Dialogue: 0,0:01:18.98,0:01:24.61,Default,,0000,0000,0000,, còn nếu là 0, thì không phải 1, hẳn là 2, ta sẽ tô màu đỏ. Dialogue: 0,0:01:24.61,0:01:28.57,Default,,0000,0000,0000,, Tôi nhấn chạy lại nhiều lần. Nó chạy rồi! Woohoo! Dialogue: 0,0:01:28.57,0:01:31.54,Default,,0000,0000,0000,, Vậy, ta muốn thêm nhiều mặt cho đồng tiền, Dialogue: 0,0:01:31.54,0:01:37.99,Default,,0000,0000,0000,, Tôi có thể kéo lên đây, biến nó thành từ 0 đến 3, sau đó vào trong khối else này và thêm nhiều if-else nữa và cứ tiếp tục như thế, v.v. Dialogue: 0,0:01:37.99,0:01:40.16,Default,,0000,0000,0000,, cho đến khi có các khối lồng nhau. Dialogue: 0,0:01:40.16,0:01:44.70,Default,,0000,0000,0000,, Và sau đó tôi mới nhận ra rằng code này thật tệ! Ý tôi là nó thật thô thiển! Dialogue: 0,0:01:44.70,0:01:48.35,Default,,0000,0000,0000,, Code phải dễ đọc và đẹp, không tệ nhất có thể. Dialogue: 0,0:01:48.35,0:01:50.07,Default,,0000,0000,0000,, Và đây là những gì ta sẽ làm: Dialogue: 0,0:01:50.07,0:01:55.68,Default,,0000,0000,0000,, Bất cứ khi nào ta chỉ có một câu lệnh if hoặc câu lệnh if-else nằm trong một khối else, Dialogue: 0,0:01:55.68,0:01:58.31,Default,,0000,0000,0000,, nghĩa là ta không làm gì khác bên ngoài những khối này, Dialogue: 0,0:01:58.31,0:02:04.49,Default,,0000,0000,0000,, ta không thiết lập màu nét vẽ (stroke), cũng không có lệnh if, không gì nữa cả. Dialogue: 0,0:02:04.49,0:02:08.44,Default,,0000,0000,0000,, Tất cả những gì ta có là một câu lệnh if, có thể đi kèm một khối else. Dialogue: 0,0:02:08.44,0:02:13.16,Default,,0000,0000,0000,, Ta thực sự có thể kết hợp điều kiện này với dòng trước đó và viết: Dialogue: 0,0:02:13.16,0:02:17.07,Default,,0000,0000,0000,, else if integer bằng 1, thì tô màu vàng. Dialogue: 0,0:02:17.07,0:02:21.94,Default,,0000,0000,0000,, Và khối else cuối cùng không lồng vào bất cứ khối nào, chỉ nằm ở cuối mà thôi. Dialogue: 0,0:02:21.94,0:02:27.07,Default,,0000,0000,0000,, Tuyệt quá! Giờ điều này có nghĩa gì, nếu integer bằng 0, tô màu tím, Dialogue: 0,0:02:27.07,0:02:30.24,Default,,0000,0000,0000,, còn nếu bằng 1, thì tô màu vàng, Dialogue: 0,0:02:30.24,0:02:34.48,Default,,0000,0000,0000,, còn nếu cả hai đều sai, thì tô màu đỏ. Dialogue: 0,0:02:34.48,0:02:37.74,Default,,0000,0000,0000,, Nhấn chạy lại nhiều lần, ta có thể thấy nó vẫn chạy. Dialogue: 0,0:02:37.74,0:02:41.82,Default,,0000,0000,0000,, Tuyệt quá! Và điều thú vị là, ta có thể bao nhiêu khối else if tùy thích, Dialogue: 0,0:02:41.82,0:02:44.70,Default,,0000,0000,0000,, điều này giúp ta thực sự dễ dàng thêm nhiều mặt vào đồng xu. Dialogue: 0,0:02:44.70,0:02:48.01,Default,,0000,0000,0000,, Hãy làm điều đó ngay bây giờ. Ta sẽ tạo ra một số từ 0 đến 3, Dialogue: 0,0:02:48.01,0:02:56.06,Default,,0000,0000,0000,, và sau đó chỉ cần thêm một khối else nói rằng nếu integer bằng 2 Dialogue: 0,0:02:56.14,0:02:59.66,Default,,0000,0000,0000,, ta sẽ tô màu ... cũng là màu đỏ trước để ta có thể giữ màu đỏ. Dialogue: 0,0:02:59.66,0:03:02.66,Default,,0000,0000,0000,, Và sau đó, khối else cuối cùng này dành cho khi integer bằng 3, Dialogue: 0,0:03:02.66,0:03:08.97,Default,,0000,0000,0000,, nó sẽ tô màu xanh dương. Tuyệt quá! Dialogue: 0,0:03:08.97,0:03:12.82,Default,,0000,0000,0000,, Được rồi. Vậy, để làm điều này, ta luôn phải bắt đầu bằng một câu lệnh if, Dialogue: 0,0:03:12.82,0:03:16.91,Default,,0000,0000,0000,, và sau đó bạn có thể có bao nhiêu else-if tùy ý, Dialogue: 0,0:03:16.91,0:03:18.70,Default,,0000,0000,0000,, và sau đó cái cuối cùng này có hay không cũng được. Dialogue: 0,0:03:18.70,0:03:21.90,Default,,0000,0000,0000,, Ta thực sự không nhất thiết cần nó, và sau đó có thể tất cả những điều kiện này sai, Dialogue: 0,0:03:21.90,0:03:23.72,Default,,0000,0000,0000,, nên không có khối nào trong số này được thực thi. Dialogue: 0,0:03:23.72,0:03:30.48,Default,,0000,0000,0000,, Nhưng miễn là ta có điều kiện ở đó, thì chính xác một trong những khối này sẽ được chạy. Dialogue: 0,0:03:30.48,0:03:37.02,Default,,0000,0000,0000,, Ngon chưa? Giờ nó không thực sự quan trọng việc bạn có if else-if else-if else, Dialogue: 0,0:03:37.02,0:03:45.51,Default,,0000,0000,0000,, hay chỉ sử dụng các câu lệnh if đơn giản cũ rích như ta có lúc đầu, vì vậy nếu integer bằng 3. Dialogue: 0,0:03:45.51,0:03:50.73,Default,,0000,0000,0000,, Và đó là do integer không thể bằng 0, và sau đó là 1, 2 hoặc 3. Dialogue: 0,0:03:50.73,0:03:54.22,Default,,0000,0000,0000,, Tuyệt quá. Vậy, những điều kiện này là để loại trừ lẫn nhau. Dialogue: 0,0:03:54.22,0:03:56.61,Default,,0000,0000,0000,, Chỉ một trong những khối này sẽ được chạy. Dialogue: 0,0:03:56.61,0:03:58.28,Default,,0000,0000,0000,, Nhưng không phải lúc nào cũng như vậy. Dialogue: 0,0:03:58.28,0:04:01.64,Default,,0000,0000,0000,, Điều gì sẽ xảy ra nếu ta cố gắng tạo ra một trò chơi như thế này mà không làm tròn thành số nguyên? Dialogue: 0,0:04:01.64,0:04:04.48,Default,,0000,0000,0000,, Vậy, tôi sẽ bỏ phần này, chỗ ta làm tròn, Dialogue: 0,0:04:04.48,0:04:06.64,Default,,0000,0000,0000,, và phần khác chỗ ta vẽ nó lên màn hình. Dialogue: 0,0:04:06.64,0:04:09.28,Default,,0000,0000,0000,, Và hãy tạo ra một số quy tắc mới cho trò chơi. Dialogue: 0,0:04:09.28,0:04:12.64,Default,,0000,0000,0000,, Tôi vẫn đang tạo một số từ 0 đến 3, Dialogue: 0,0:04:12.64,0:04:15.32,Default,,0000,0000,0000,, đặt thêm một số dấu tick vào số dòng. Dialogue: 0,0:04:15.32,0:04:23.38,Default,,0000,0000,0000,, Vậy, giải sử số rơi vào khoảng từ 0 đến 1, ta sẽ tô màu tím. Dialogue: 0,0:04:23.38,0:04:26.15,Default,,0000,0000,0000,, Ồ, nó không giống 'p' tí nào cả. Bạn hiểu ý tưởng rồi đấy. OK. Dialogue: 0,0:04:26.15,0:04:30.50,Default,,0000,0000,0000,, Và sau đó nếu từ 1 đến 2, ta có thể tô màu vàng. Dialogue: 0,0:04:30.50,0:04:35.53,Default,,0000,0000,0000,, Và nếu nó nằm trong khoảng từ 2 đến 3, ta sẽ tô màu đỏ. Dialogue: 0,0:04:35.53,0:04:38.65,Default,,0000,0000,0000,, Tuyệt quá. Vậy, hãy xem làm thế nào ta có thể làm điều đó với if và else-if. Dialogue: 0,0:04:38.65,0:04:43.54,Default,,0000,0000,0000,, Vậy, tôi có thể bắt đầu bằng cách nói nếu number nhỏ hơn 1, Dialogue: 0,0:04:43.54,0:04:51.44,Default,,0000,0000,0000,, nên nếu nó nhỏ hơn 1 và tôi biết nó nằm trong khoảng từ 0 đến 3, thì nó phải nằm trong phạm vi này, Dialogue: 0,0:04:51.44,0:04:54.16,Default,,0000,0000,0000,, tôi sẽ tô màu tím. Dialogue: 0,0:04:54.16,0:05:06.70,Default,,0000,0000,0000,, Mặt khác, nếu number nhỏ hơn 2, tôi có thể tô màu vàng. . . . 255. . . Dialogue: 0,0:05:06.70,0:05:13.26,Default,,0000,0000,0000,, Và nếu không, tôi sẽ tô màu đỏ. Dialogue: 0,0:05:13.26,0:05:15.60,Default,,0000,0000,0000,, Tuyệt quá! Và nó hoạt động đúng như mong muốn. Dialogue: 0,0:05:15.60,0:05:19.31,Default,,0000,0000,0000,, Vậy, nếu number nhỏ hơn 1, thì một lần nữa, nó nằm trong phạm vi này. Dialogue: 0,0:05:19.31,0:05:23.60,Default,,0000,0000,0000,, Còn nếu nó lớn hơn hoặc bằng 1, nhưng nó cũng nhỏ hơn 2, Dialogue: 0,0:05:23.60,0:05:26.73,Default,,0000,0000,0000,, Vậy, nó nằm trong phạm vi này, ta sẽ tô màu vàng. Dialogue: 0,0:05:26.73,0:05:31.90,Default,,0000,0000,0000,, Còn nếu nó phải lớn hơn hoặc bằng 2, thì nó sẽ nằm trong phạm vi đó. Dialogue: 0,0:05:31.90,0:05:36.28,Default,,0000,0000,0000,, Và đây là trường hợp ta không thể nói nếu number nhỏ hơn 2, Dialogue: 0,0:05:36.28,0:05:39.65,Default,,0000,0000,0000,, và nếu number nhỏ hơn 3, Dialogue: 0,0:05:39.65,0:05:42.93,Default,,0000,0000,0000,, bởi vì nếu number nhỏ hơn 1, thì chắc chắn nó nhỏ hơn 2 Dialogue: 0,0:05:42.93,0:05:44.90,Default,,0000,0000,0000,, và nó cũng sẽ nhỏ hơn 3. Dialogue: 0,0:05:44.90,0:05:46.78,Default,,0000,0000,0000,, Vậy, đồng xu của ta sẽ luôn luôn có màu đỏ sau cùng. Dialogue: 0,0:05:46.78,0:00:00.00,Default,,0000,0000,0000,, Và đó là lý do tại sao trong trường hợp này, else-if thật sự hữu ích.