﻿1
00:00:04,450 --> 00:00:05,320
‫สวัสดีและยินดีต้อนรับ.

2
00:00:05,320 --> 00:00:11,200
‫ในการบรรยายนี้ เราจะเรียนรู้เกี่ยวกับตัวดำเนินการบูลีนเพื่อให้เราสามารถสร้างข้อความที่ซับซ้อนซึ่งต้องใช้บูลีนหลายตัวให้เป็นจริง

3
00:00:11,200 --> 00:00:23,470
‫เช่น ให้กอบลินยอมรับก็ต่อเมื่อแท็กถูกต้องและไม่ถูกจับ

4
00:00:23,470 --> 00:00:29,020
‫เมื่อฉันปล่อยกอบลิน คุณจะเห็นว่าผนังตอบสนองเฉพาะจุดนั้นเท่านั้น

5
00:00:29,020 --> 00:00:31,030
‫มาดูกันว่ามันทำงานอย่างไร

6
00:00:31,990 --> 00:00:42,040
‫ดังนั้น ตามหลักการแล้วเราต้องการให้องค์ประกอบทริกเกอร์ของเราเพิกเฉยหรือไม่รับบทบาทที่ยอมรับได้ซึ่งกำลังถูกจับตัวอยู่

7
00:00:42,040 --> 00:00:48,820
‫เพื่อเปลี่ยนสิ่งนี้ ฉันจะลงไปที่การใช้งานนักแสดงที่ยอมรับได้ของเราในองค์ประกอบทริกเกอร์ CP และคุณสามารถดูได้ในคำสั่ง

8
00:00:48,850 --> 00:00:57,550
‫if ของเราที่เรากำลังบอกว่า ให้นักแสดงถ้ามันมีแท็กที่ยอมรับได้ และนั่นก็เท่านั้น สิ่งที่เรากำลังทำ

9
00:00:57,700 --> 00:01:01,750
‫แต่สิ่งที่ผมอยากจะทำคือทำให้สิ่งนี้มีเงื่อนไขสองอย่าง

10
00:01:01,750 --> 00:01:04,960
‫เราจะรวมค่าบูลีนสองค่าได้อย่างไร

11
00:01:04,960 --> 00:01:06,280
‫มีสองตัวเลือก

12
00:01:06,280 --> 00:01:08,500
‫เรามีโอเปอเรเตอร์สำหรับสิ่งนี้

13
00:01:08,500 --> 00:01:12,940
‫หนึ่งในนั้นคือตัวดำเนินการ ampersand ampersand ซึ่งเราอ่านว่า

14
00:01:12,940 --> 00:01:20,020
‫และนี่หมายถึงโดยพื้นฐานแล้ว นี่จะรวมบูลีนสองตัวเข้าด้วยกัน เพื่อให้เป็นจริงก็ต่อเมื่อทั้งคู่เป็นจริง

15
00:01:20,350 --> 00:01:27,700
‫ถ้าเรามีจริงกับจริง, นั่นจะเท่ากับจริง

16
00:01:27,880 --> 00:01:32,950
‫โดยที่ถ้าข้อใดข้อหนึ่งเป็นเท็จ ดังนั้นหากตัวขวาเท็จ

17
00:01:32,950 --> 00:01:40,150
‫สิ่งนั้นทั้งหมดจะเป็นเท็จ เป็นต้น มีอีกตัวเลือกหนึ่งที่นี่ ซึ่งก็คือการใช้ตัวดำเนินการสองแท่งแบบนี้

18
00:01:40,150 --> 00:01:44,170
‫และตัวนี้จะอ่านเป็นหรือ

19
00:01:44,170 --> 00:01:49,780
‫และโดยพื้นฐานแล้ว นี่หมายความว่าหากข้อใดข้อหนึ่งในสองข้อนี้เป็นจริง ผลลัพธ์ก็จะเป็นจริง

20
00:01:49,780 --> 00:01:52,510
‫และถ้าทั้งสองอย่างเป็นจริง ผลลัพธ์ก็จะเป็นจริง

21
00:01:52,510 --> 00:01:57,430
‫แต่ถ้าทั้งคู่เป็นเท็จ ผลลัพธ์จะเป็นเท็จ

22
00:01:57,430 --> 00:02:00,520
‫นี่คือนิพจน์ทั่วไปบางส่วนที่เราใช้

23
00:02:00,520 --> 00:02:11,980
‫อีกสิ่งหนึ่งที่เราใช้คือเครื่องหมายอัศเจรีย์ และโดยทั่วไปแล้ว เครื่องหมายอัศเจรีย์จะกลับค่าบูลีนที่เรามีและเราอ่านว่าไม่

24
00:02:11,980 --> 00:02:19,990
‫คุณสามารถมีค่าเท็จได้ แต่เนื่องจากผมใส่ปมไว้ข้างหน้า ค่าทั้งหมดนี้ พจน์นี้จึงกลายเป็นจริง

25
00:02:19,990 --> 00:02:27,700
‫และถ้าผมสั่งเป็นเท็จ ก็เพราะอย่างน้อยหนึ่งในนั้นเป็นจริง ผลลัพธ์ก็จะเป็นจริง

26
00:02:28,300 --> 00:02:36,310
‫สิ่งที่เราอยากทำที่นี่คือโดยพื้นฐานแล้วเราต้องการบอกว่าถ้ามันมีแท็กนักแสดง นั่นคือแท็กการกระทำที่ยอมรับได้

27
00:02:36,310 --> 00:02:40,210
‫แต่มันไม่มี

28
00:02:40,210 --> 00:02:46,300
‫ดังนั้นในกรณีนี้และไม่ได้แท็กนักแสดงจึงเป็นที่ยอมรับได้

29
00:02:46,300 --> 00:02:47,980
‫ความท้าทายมากมายสำหรับคุณ

30
00:02:47,980 --> 00:02:52,300
‫คุณจะใช้โอเปอเรเตอร์สามตัวที่ฉันเพิ่งอธิบายไปว่าอย่างไร

31
00:02:52,300 --> 00:02:57,280
‫คุณไม่จำเป็นต้องใช้ทั้งหมด แต่คุณจะใช้อันไหนและคุณจะเขียนคำสั่ง if

32
00:02:57,280 --> 00:02:58,060
‫นี้อย่างไร

33
00:03:00,110 --> 00:03:00,350
‫ตกลง.

34
00:03:00,380 --> 00:03:03,380
‫ฉันจะใส่สิ่งนี้ลงในตัวแปรบูลีนเพื่อให้ชัดเจนมาก

35
00:03:03,380 --> 00:03:17,870
‫ดังนั้นคุณได้บูลที่มีแท็กที่ยอมรับได้จะเท่ากับนักแสดงที่มีแท็กที่ยอมรับได้เช่นนั้นและใส่เครื่องหมายอัฒภาคที่ท้ายบรรทัด

36
00:03:17,870 --> 00:03:27,770
‫ทีนี้บูลอีกอันจะเป็นไม่ว่าจะถูกคว้าหรือไม่ และเราจะได้สิ่งนี้โดยไปที่ นักแสดง ลูกศร นักแสดง นักแสดงมีแท็ก

37
00:03:27,950 --> 00:03:35,240
‫และกรณีนี้ ก็แค่จะถูกคว้าอย่างนั้น เราจึงพูดได้ว่าไม่ว่าจะคว้าหรือไม่บนพื้นฐานนี้แล้วใน

38
00:03:35,240 --> 00:03:44,420
‫ถ้าสิ่งที่เราต้องการจะพูดคือมี tag ที่ยอมรับได้ และนั่นคือ ampersand ampers and not that's an

39
00:03:44,420 --> 00:03:54,560
‫exclamation point is grabed like so that read right well if you read out an ampersand and the exclamation point

40
00:03:54,560 --> 00:04:05,770
‫as and not so if suitable has suitable tag and ไม่โดนจับแล้วเราคืนพระเอกคนนี้

41
00:04:05,780 --> 00:04:08,240
‫ลองรวบรวมและดูว่าทำงานได้หรือไม่

42
00:04:08,240 --> 00:04:10,130
‫เลยลองกดเล่นดู

43
00:04:10,160 --> 00:04:15,140
‫เราจะคว้าการ์กอยล์ของเราแล้ววิ่งไปที่บริเวณไกปืน

44
00:04:15,230 --> 00:04:20,600
‫คุณจะเห็นว่าฉันกำลังใส่กอบลินเข้าไป แต่ไม่มีอะไรเกิดขึ้นเพราะฉันยังไม่ได้ปล่อยมันออกมา

45
00:04:20,600 --> 00:04:23,420
‫แล้วถ้าฉันลองเอาการ์กอยล์ลงมานี่ล่ะ?

46
00:04:23,450 --> 00:04:23,840
‫ไปเลย

47
00:04:23,840 --> 00:04:30,270
‫ทันทีที่ฉันปล่อยมัน มันจะเปิดใช้งาน คว้าการ์กอยล์ออกจากฉันแล้วมันก็หายไปกับพื้น

48
00:04:30,290 --> 00:04:38,000
‫ขณะนี้มีสถานที่สองสามแห่งใน Grab a CP ที่เรามีคำสั่ง if สองแห่ง ที่เราสามารถมีได้เพียงแห่งเดียว

49
00:04:38,000 --> 00:04:43,670
‫หากเราต้องการใช้ and หรือ และ ไม่ได้ดำเนินการ

50
00:04:43,670 --> 00:04:48,980
‫เคล็ดลับอย่างหนึ่งก็คือ เมื่อคุณทำสิ่งนี้ โดยที่เรากำลังตรวจสอบว่ามีบางอย่างที่ไม่ใช่ตัวชี้ค่าว่างหรือไม่

51
00:04:48,980 --> 00:04:55,280
‫อีกทางเลือกหนึ่งคือ คุณสามารถลบสิ่งนี้ที่ไม่เท่ากับตัวชี้ค่าว่างได้

52
00:04:55,280 --> 00:05:06,620
‫และถ้าคุณเพียงแค่บอกว่าถ้าแล้วใส่พอยน์เตอร์บางประเภทเป็นบูลีน ก็จะตรวจสอบโดยอัตโนมัติว่าไม่ใช่ตัวชี้ว่าง

53
00:05:06,620 --> 00:05:13,970
‫ในที่นี้มันบอกว่ามีที่จับฟิสิกส์ที่นี่หรือไม่ มันบอกว่าองค์ประกอบการคว้าพร้อมใช้งานหรือไม่

54
00:05:13,970 --> 00:05:16,460
‫จากนั้นเราก็สามารถใช้งานได้

55
00:05:16,460 --> 00:05:19,400
‫ฉันจึงอยากท้าให้คุณรวมคำสั่ง if ของคุณเข้าด้วยกัน

56
00:05:19,400 --> 00:05:22,340
‫ดังนั้นคุณจะรวมมันเข้าด้วยกันในองค์ประกอบติ๊ก

57
00:05:22,340 --> 00:05:28,190
‫ลองนึกดูว่าคุณต้องการใช้เครื่องหมายแอมเพอร์แซนด์ the และ OR หรือไม่ หรือว่าคุณต้องการใช้เครื่องหมายลบหรือปมหรือเครื่องหมายอัศเจรีย์

58
00:05:28,190 --> 00:05:37,710
‫จากนั้นนำมารวมเข้าด้วยกันในการเปิดตัวด้วย และทดสอบการทำงานของคุณและดูว่ายังใช้ได้อยู่หรือไม่ ทำงาน

59
00:05:37,730 --> 00:05:39,800
‫หยุดวิดีโอชั่วคราวและไปกันเลย

60
00:05:42,930 --> 00:05:43,380
‫ตกลง.

61
00:05:43,380 --> 00:05:44,070
‫ยินดีต้อนรับกลับ.

62
00:05:44,070 --> 00:05:57,600
‫เราจะใช้ประโยชน์จากสิ่งนี้เพราะโดยพื้นฐานแล้วสิ่งที่เราต้องการจะทำในการปล่อยคือเรากำลังบอกว่าเรามีที่จับทางฟิสิกส์ที่ถูกต้องและที่จับทางฟิสิกส์นั้นมีองค์ประกอบที่คว้าแล้วเราก็อยากทำร่างกาย

63
00:05:57,600 --> 00:06:00,240
‫ของคำสั่ง if นี้

64
00:06:00,240 --> 00:06:03,000
‫ดังนั้นมันจึงค่อนข้างง่ายที่จะเขียนแบบนั้น

65
00:06:03,000 --> 00:06:12,240
‫เราสามารถพูดได้ว่าถ้าอุปกรณ์จับฟิสิกส์และที่จับฟิสิกส์มีองค์ประกอบที่จับได้ เราก็สามารถทำสิ่งต่อไปนี้ได้

66
00:06:12,240 --> 00:06:18,600
‫เพื่อให้เราสามารถลบการ return ก่อนกำหนด if statement และทำให้โค้ดสั้นลงเล็กน้อย

67
00:06:18,870 --> 00:06:26,400
‫ตอนนี้ สายตานกอินทรีในหมู่พวกคุณอาจกังวลว่า เฮ้ เรากำลังอ้างถึงการจัดการทางฟิสิกส์นี้ภายในคำสั่ง

68
00:06:26,400 --> 00:06:32,340
‫if เพื่อประเมินว่าคำสั่งนี้และคำสั่งควรใช้งานได้หรือไม่

69
00:06:32,760 --> 00:06:38,550
‫ตอนนี้มีคุณลักษณะของและจะประเมินสิ่งทางด้านซ้ายก่อน

70
00:06:38,550 --> 00:06:43,920
‫และถ้าสิ่งนั้นเป็นเท็จ มันจะไม่ประเมินสิ่งทางด้านขวาด้วยซ้ำ

71
00:06:43,920 --> 00:06:44,820
‫มันไม่จำเป็นต้อง

72
00:06:44,850 --> 00:06:47,580
‫มันรู้อยู่แล้วว่าผลลัพธ์จะเป็นเท็จ

73
00:06:47,580 --> 00:06:50,130
‫ไม่จำเป็นต้องประเมินอะไรเพิ่มเติม

74
00:06:50,130 --> 00:07:01,500
‫นั่นหมายความว่าปลอดภัยที่จะทำสิ่งนี้โดยที่ผลลัพธ์ทางด้านขวาในการคำนวณ จะปลอดภัยที่จะทำเมื่อผลลัพธ์ทางด้านซ้ายเป็นจริงเท่านั้น

75
00:07:01,890 --> 00:07:06,810
‫และนี่เป็นคุณสมบัติที่สะดวกมาก และคุณจะเห็นว่ามีการใช้สิ่งนี้ค่อนข้างมากเมื่อคุณใช้พอยน์เตอร์ ซึ่งก่อนอื่นคุณจะต้องตรวจสอบพอยน์เตอร์

76
00:07:06,810 --> 00:07:10,320
‫จากนั้นคุณจะมีเครื่องหมายแอมเพอร์แซนด์

77
00:07:10,320 --> 00:07:13,860
‫เครื่องหมาย และจากนั้น คุณจะใช้ตัวชี้ทางด้านขวามือ

78
00:07:13,860 --> 00:07:18,660
‫แต่ได้โปรด ได้โปรด ได้โปรดอย่าพยายามสลับสองตัวนี้ตามลำดับ

79
00:07:18,660 --> 00:07:22,950
‫มันจะไม่ทำงานในทางกลับกันและคุณจะเกิดปัญหา

80
00:07:22,950 --> 00:07:28,080
‫ไปที่องค์ประกอบติ๊กที่เรากำลังทำสิ่งเดียวกัน

81
00:07:28,080 --> 00:07:30,720
‫เราต้องการตรวจสอบว่ามีส่วนประกอบที่คว้ามาหรือไม่

82
00:07:30,720 --> 00:07:37,200
‫สิ่งที่เราทำได้บนนี้คือ เราสามารถจัดการฟิสิกส์และจัดการฟิสิกส์ได้

83
00:07:37,470 --> 00:07:38,940
‫ลูกศรคว้าส่วนประกอบ

84
00:07:38,940 --> 00:07:44,430
‫เราไม่ต้องการค่าที่ไม่เท่ากับตัวชี้ null เพื่อให้มันเรียบร้อย จากนั้นเราสามารถดำเนินการต่อและลบคำสั่ง

85
00:07:44,430 --> 00:07:50,430
‫if ด้วยการส่งคืน และเพียงแค่ลดบรรทัดของโค้ดลง รักษาความชัดเจนให้สูงขึ้นอีกเล็กน้อย

86
00:07:50,460 --> 00:07:50,970
‫สิ่งที่ดี

87
00:07:50,970 --> 00:07:57,480
‫ดังนั้นในการบรรยายครั้งนี้ เราได้เห็นวิธีการใช้ตัวดำเนินการ and or and not ใน C++

88
00:07:57,480 --> 00:07:58,980
‫เจอกันใหม่ตอนหน้าค่ะ

