﻿1
00:00:04,480 --> 00:00:05,530
‫สวัสดีและยินดีต้อนรับ.

2
00:00:05,530 --> 00:00:12,040
‫ในการบรรยายนี้ เราจะจำกัดจำนวนกระสุนที่เรามีจริง ๆ เพื่อที่ว่าเมื่อเราใช้มันจนหมด

3
00:00:12,040 --> 00:00:16,170
‫เราจะไม่เกิดขีปนาวุธอีกต่อไป

4
00:00:16,390 --> 00:00:22,270
‫ฉันหมดกระสุนแล้วและยังได้รับข้อความว่ากระสุนหมด ฉันไม่สามารถวางไข่ได้อีกต่อไป

5
00:00:22,270 --> 00:00:24,700
‫มาดูกันว่าเราทำอย่างไร

6
00:00:25,540 --> 00:00:34,930
‫สิ่งที่เราต้องการจะเกิดขึ้นในอุดมคติคือเมื่อกระสุนของเราเหลือศูนย์ เราไม่สามารถสร้างขีปนาวุธใหม่ได้อีกต่อไป

7
00:00:34,930 --> 00:00:42,760
‫แต่เราจะควบคุมการไหลของโค้ดของเราผ่านค่าในตัวแปรได้อย่างไร?

8
00:00:42,760 --> 00:00:47,170
‫วิธีแก้ปัญหาของปริศนานี้คือสิ่งที่เรียกว่าโหนดสาขา

9
00:00:47,170 --> 00:00:54,490
‫ดังนั้นสาขา ให้เราตรวจสอบว่ามีบางอย่างจริงหรือไม่แล้วจึงดำเนินการบางอย่างตามผลลัพธ์

10
00:00:54,490 --> 00:01:00,790
‫ดังนั้นคุณอาจมีโหนดสาขาที่มีลักษณะเช่นนี้ว่า ถ้าฉันหิว สภาวะคือ

11
00:01:00,790 --> 00:01:04,660
‫ฉันหิว ก็กินอาหารขยะในขณะที่ภรรยาไม่ดู

12
00:01:04,660 --> 00:01:08,470
‫และถ้านั่นไม่เป็นความจริง ก็ให้เล่นวิดีโอเกมต่อไป

13
00:01:08,470 --> 00:01:15,040
‫ดังนั้นโหนดสาขาเหล่านี้จึงอนุญาตให้เราทำสิ่งหนึ่งในกรณีที่เงื่อนไขเป็นจริงและอีกสิ่งหนึ่งหากเงื่อนไขเป็นเท็จ

14
00:01:15,040 --> 00:01:18,010
‫ตัวเลือกใดตัวเลือกหนึ่งเหล่านี้ไม่สามารถทำอะไรได้เลย

15
00:01:18,010 --> 00:01:23,080
‫ดังนั้นคุณสามารถเชื่อมต่อโหนดเท็จหรือเชื่อมต่อโหนดจริงเท่านั้น

16
00:01:23,110 --> 00:01:25,570
‫อย่างใดอย่างหนึ่งเหล่านี้จะทำงาน

17
00:01:25,570 --> 00:01:27,550
‫แล้วคุณจะจำไว้

18
00:01:27,550 --> 00:01:35,050
‫หรือคุณอาจจำได้ว่าสีแดงเกี่ยวข้องกับตัวแปรประเภทบูลีนที่ไม่เป็นจริง

19
00:01:35,050 --> 00:01:37,660
‫ดังนั้นเรามาเตือนตัวเองว่าวัวคืออะไร?

20
00:01:38,080 --> 00:01:44,320
‫bull ย่อมาจาก boolean และมีหลายประเภทที่สามารถเก็บค่าหนึ่งในสองค่าได้ทั้งจริงหรือเท็จ

21
00:01:44,320 --> 00:01:45,700
‫ใช่หรือไม่ใช่

22
00:01:45,790 --> 00:01:49,390
‫มักใช้กับคำสั่ง if หรือสาขา

23
00:01:49,390 --> 00:01:53,590
‫ในอนาคตเราจะใช้ C++ เราจะเรียก Branch if statement

24
00:01:53,590 --> 00:01:56,200
‫แต่สิ่งเดียวกัน แนวคิดเดียวกัน

25
00:01:56,200 --> 00:02:01,870
‫และสามารถควบคุมได้ว่าจะมีอะไรเกิดขึ้นหรือไม่ และบางโหนดสามารถส่งคืนบูลีนได้

26
00:02:01,870 --> 00:02:04,360
‫ดังนั้นโหนดประเภทใดที่สามารถส่งคืนบูลีนได้?

27
00:02:04,360 --> 00:02:06,610
‫เราต้องการคำตอบแบบไหน?

28
00:02:06,610 --> 00:02:13,450
‫เมื่อไหร่ที่เราต้องการให้นักแสดงวางไข่เกิดขึ้น?

29
00:02:13,450 --> 00:02:16,600
‫เราต้องการสร้างโพรเจกไทล์ใหม่เมื่อใด

30
00:02:16,600 --> 00:02:24,100
‫เราต้องการสร้างโพรเจกไทล์ใหม่ก็ต่อเมื่อจำนวนกระสุนที่เรามีมากกว่าศูนย์

31
00:02:24,100 --> 00:02:32,140
‫โชคดีที่ถ้าคุณคลิกขวาในกราฟเหตุการณ์และค้นหาสิ่งที่มากกว่า ก็จะมีโหนดสำหรับสิ่งนั้น

32
00:02:32,170 --> 00:02:45,070
‫โอเปอเรเตอร์หรือโหนดประเภทนี้เรียกว่าการเปรียบเทียบเพราะใช้ค่าสองค่าและสร้างการเปรียบเทียบระหว่างกันและทำให้เรามีคำตอบบูลีน

33
00:02:45,070 --> 00:02:48,940
‫ยิ่งใหญ่คือตัวอย่างหนึ่ง น้อยกว่าคืออีกตัวอย่างหนึ่ง

34
00:02:48,940 --> 00:02:52,840
‫คุณยังเห็นค่านี้น้อยกว่าซึ่งหมายความว่าน้อยกว่าหรือเท่ากับ

35
00:02:52,870 --> 00:02:56,890
‫มันยังเท่ากัน นั่นคือ มันคืออันหนึ่งเช่นกัน

36
00:02:56,890 --> 00:02:58,570
‫เท่ากันหรือไม่เท่ากัน

37
00:02:58,570 --> 00:03:01,210
‫หากค่าสองค่าเหมือนกัน ให้คืนค่า จริง

38
00:03:01,240 --> 00:03:02,920
‫มิฉะนั้นจะคืนค่าเท็จ

39
00:03:02,920 --> 00:03:05,020
‫มาอัพเดทอภิธานศัพท์กันสักหน่อย

40
00:03:05,020 --> 00:03:09,460
‫เราได้ค้นพบว่ากิ่งก้านเป็นสิ่งที่ทำหรือไม่ได้ขึ้นอยู่กับวัว

41
00:03:09,460 --> 00:03:15,550
‫เราพบว่าบูลส์หรือบูลีนเป็นประเภทข้อมูลใช่ ไม่ใช่ และการเปรียบเทียบนั้นเป็นสิ่งที่น้อยกว่ามากกว่าเท่ากัน

42
00:03:15,550 --> 00:03:20,950
‫เป็นต้น ที่ส่งกลับบูลีนอย่างสำคัญ

43
00:03:20,950 --> 00:03:24,760
‫ลองใช้การเปรียบเทียบเหล่านี้กัน

44
00:03:24,760 --> 00:03:30,760
‫ฉันจะคลิกขวาและเพิ่มการเปรียบเทียบที่มากขึ้นในที่นี่

45
00:03:30,760 --> 00:03:37,120
‫จากนั้นฉันจะควบคุมการคลิกตัวแปรกระสุนแล้วลากไปที่โหนดแรกของโหนดเปรียบเทียบของเรา

46
00:03:37,120 --> 00:03:40,870
‫แล้วคุณจะเห็นว่าค่าดีฟอลต์ตรงนี้มากกว่าศูนย์จริงๆ

47
00:03:40,870 --> 00:03:42,340
‫นั่นคือสิ่งที่เราต้องการ

48
00:03:42,340 --> 00:03:51,790
‫เรามีโหนดที่ระบุว่ากระสุนมีค่ามากกว่าศูนย์และค่าที่ส่งกลับเป็นบูลีนที่บอกว่าใช่ถ้าเป็นและไม่ใช่หากไม่ใช่

49
00:03:51,790 --> 00:03:57,610
‫สิ่งที่เราอยากทำคือนำค่าส่งคืนบูล ลากออกจากค่านั้นแล้วค้นหาสาขา

50
00:03:57,610 --> 00:04:04,840
‫จากนั้นเราสามารถเพิ่มโหนดสาขาและเชื่อมต่อเงื่อนไขอินพุตกับบูลีนที่เราลากโดยอัตโนมัติ

51
00:04:04,840 --> 00:04:15,550
‫ตอนนี้ฉันจะลากเหตุการณ์สเปซบาร์ของฉันกลับและลากพินการเรียกใช้โหนดที่กดลงในอินพุตสำหรับสาขา

52
00:04:15,550 --> 00:04:18,070
‫นั่นคือการดำเนินการสาขาของเรา

53
00:04:18,070 --> 00:04:26,080
‫จากนั้นเราต้องการให้กิ่งไม้ถ้ามันเป็นจริง ไปข้างหน้าและวางไข่ของกระสุนปืน มิฉะนั้น มันจะไม่ทำอะไรเลย

54
00:04:26,080 --> 00:04:27,190
‫เลยลองทำดู

55
00:04:27,190 --> 00:04:33,310
‫ถ้าเรากดปุ่มเล่นแล้วเราวางไข่จำนวนมาก เราจะทำให้ค่าของกระสุนของเราลดลงเหลือศูนย์

56
00:04:33,310 --> 00:04:40,210
‫คุณจะเห็นได้ว่าตอนนี้ ไม่ว่าฉันจะกดสเปซบาร์มากแค่ไหน ฉันก็ไม่ได้รับกระสุนปืนอีกต่อไป

57
00:04:40,210 --> 00:04:43,930
‫ฉันเลยอยากจะท้าให้คุณพิมพ์กระสุนออกมา

58
00:04:43,930 --> 00:04:49,300
‫ดังนั้นให้ใช้สาขาเท็จเพื่อให้เราเพิ่มโหนดการพิมพ์ในนั้น

59
00:04:49,300 --> 00:04:54,310
‫และโดยพื้นฐานแล้วเมื่อเราหมดกระสุน ผมอยากให้คุณพิมพ์กระสุนออกมา

60
00:04:54,310 --> 00:04:57,040
‫ดังนั้นให้ทดสอบโค้ดของคุณและตรวจสอบว่าเกิดอะไรขึ้น

61
00:04:57,040 --> 00:04:59,200
‫หยุดวิดีโอชั่วคราวและไปกันเลย

62
00:05:02,320 --> 00:05:02,920
‫ตกลง.

63
00:05:02,920 --> 00:05:03,890
‫ยินดีต้อนรับกลับ.

64
00:05:03,910 --> 00:05:09,250
‫เรามีสาขาที่สองของโหนดสาขาของเรา

65
00:05:09,250 --> 00:05:13,600
‫ลองลากกลับมาเพื่อที่เราจะได้ไม่ข้ามเส้นกับพินการดำเนินการเหล่านี้

66
00:05:13,600 --> 00:05:18,220
‫และสาขาเท็จควรลงมาตรงนี้ เพื่อทำเป็นสตริงการพิมพ์

67
00:05:18,220 --> 00:05:23,950
‫และสายอักขระที่ฉันต้องการให้พิมพ์นั้นกำลังจะหมดกระสุนแล้ว

68
00:05:23,950 --> 00:05:31,450
‫ทีนี้ ถ้าเราเล่นต่อและยิงกระสุนปืนใหญ่ทั้ง 20 นัด คุณจะเห็นว่าทุกครั้งที่ฉันกดสเปซบาร์

69
00:05:31,450 --> 00:05:41,490
‫มันจะพิมพ์ข้อความว่าฉันกระสุนหมด ทำให้ผู้เล่นรู้ว่า เหตุใดจึงไม่มีลูกบอลวางไข่ในที่เกิดเหตุอีกต่อไป

70
00:05:41,500 --> 00:05:42,790
‫สำหรับการบรรยายครั้งนี้

71
00:05:42,790 --> 00:05:44,320
‫เจอกันใหม่ตอนหน้าค่ะ

