﻿1
00:00:04,550 --> 00:00:05,810
‫أهلا ومرحبا.

2
00:00:05,810 --> 00:00:11,330
‫في هذه المحاضرة ، سنبدأ في إضافة المزيد من الوظائف إلى شجرة سلوكنا عن

3
00:00:11,330 --> 00:00:17,210
‫طريق إضافة مهمة مخصصة ، قيمة السبورة الواضحة هذه ، سنجعلها مخصصة بالكامل

4
00:00:17,210 --> 00:00:18,200
‫في C ++.

5
00:00:18,230 --> 00:00:20,240
‫دعنا نتعمق ونرى كيف نفعل ذلك.

6
00:00:21,280 --> 00:00:21,490
‫تمام.

7
00:00:21,490 --> 00:00:28,780
‫لذا أرغب في توسيع نطاق سلوك شجرة السلوك هذه حتى نتمكن من التحقيق فيها.

8
00:00:28,780 --> 00:00:33,040
‫وبمجرد أن ننتهي من التحقيق ، ننتقل إلى العودة إلى المنزل.

9
00:00:33,040 --> 00:00:40,240
‫لذلك سأقوم بإضافة القليل من الحركة للمهمة هنا بعد ذلك ، والتي تعيدنا إلى موقع البداية.

10
00:00:40,630 --> 00:00:47,140
‫وما يتعين علينا القيام به من أجل الوصول إلى هناك هو أن يكون لدينا فكرة عما إذا كنا قد قمنا بالفعل

11
00:00:47,140 --> 00:00:49,150
‫بزيارة آخر موقع لعب معروف.

12
00:00:49,210 --> 00:00:54,490
‫والطريقة التي سأفعل بها ذلك هي تحديدًا آخر موقع معروف للاعب بمجرد أن نحقق فيه الآن

13
00:00:54,490 --> 00:00:57,820
‫، إذا لم يكن لدينا حاليًا طريقة للقيام بذلك.

14
00:00:57,820 --> 00:01:00,910
‫لكن أولاً وقبل كل شيء ، لنقم بإنشاء المصمم.

15
00:01:00,910 --> 00:01:09,190
‫لذا أضف مصممًا للتحقيق في Blackboard الذي سيذهب وأعد تسميته ، وقد تحقق على

16
00:01:09,190 --> 00:01:16,630
‫هذا النحو ، وسيتحقق هذا مما إذا كان آخر موقع معروف قد تم تعيينه.

17
00:01:16,750 --> 00:01:23,080
‫وهذا يعني أننا بحاجة إلى نوع من العقدة التي تسمح لنا بإلغاء ضبط مفتاح السبورة.

18
00:01:23,740 --> 00:01:25,300
‫الآن هذا غير موجود بالفعل.

19
00:01:25,300 --> 00:01:26,650
‫لقد ظننت أنها كذلك ، لكنها لا تفعل ذلك.

20
00:01:26,650 --> 00:01:31,360
‫لذا فهذه فرصة رائعة بالنسبة لي لأوضح لك كيف يمكننا إنشاء مهمة مخصصة.

21
00:01:31,360 --> 00:01:37,150
‫الآن ، يمكنك فعل ذلك بسهولة شديدة باستخدام Blueprint ، أو سأريكم الطريقة الأصعب قليلاً ، ولكن

22
00:01:37,150 --> 00:01:41,050
‫تلك التي تمنحك الكثير من القوة ، وهي القيام بذلك من خلال C ++.

23
00:01:41,440 --> 00:01:48,970
‫لذلك سننتقل إلى متصفح المحتوى الرئيسي لدينا ، ونذهب لإضافة جديد وانتقل إلى فئة C ++ جديدة وسنريد

24
00:01:48,970 --> 00:01:51,640
‫إظهار مربع اختيار جميع الفئات.

25
00:01:51,640 --> 00:01:56,950
‫ثم نبحث عن Beat Task وهناك الكثير من الخيارات هنا.

26
00:01:56,950 --> 00:02:03,760
‫يمكنك أن ترى الكثير منها في الواقع تلك المهام المضمنة مثل إحداث ضوضاء أو هناك انتقال إلى هنا

27
00:02:03,760 --> 00:02:04,900
‫أو الانتظار.

28
00:02:05,110 --> 00:02:08,950
‫الآن يمكنك الذهاب وإلقاء نظرة على C ++ لترى كيف يتم تنفيذها.

29
00:02:08,950 --> 00:02:13,720
‫هذا مفيد دائمًا ، لكن ما يهمنا هو ما الذي يجب أن نرثه؟

30
00:02:13,720 --> 00:02:17,200
‫ما الذي يجب أن نستخدمه كأساس لعقدة خاصة بنا؟

31
00:02:17,260 --> 00:02:19,030
‫الآن هناك خياران هنا.

32
00:02:19,030 --> 00:02:25,420
‫يمكنك اختيار أن يكون لديك عقدة مهمة كأساس لك ، أو يمكنك استخدام قاعدة السبورة.

33
00:02:25,420 --> 00:02:27,100
‫الآن ما الفرق بين الاثنين؟

34
00:02:27,560 --> 00:02:28,630
‫دعونا نلقي نظرة سريعة.

35
00:02:28,630 --> 00:02:31,930
‫لذا انتقل إلى استخدام قاعدة السبورة فعليًا.

36
00:02:31,930 --> 00:02:39,130
‫وما يعنيه ذلك هو أنه يحتوي على القائمة المنسدلة لمفتاح السبورة التي تسمح لنا باختيار مفتاح السبورة

37
00:02:39,130 --> 00:02:40,270
‫للعمل معه.

38
00:02:40,270 --> 00:02:45,940
‫هذا يعني أنه ليس علينا أن نثبت في مهمتنا مفاتيح السبورة التي نعمل معها ، وهو أمر رائع

39
00:02:45,940 --> 00:02:49,990
‫لأنه يسمح لنا بإعادة استخدام هذه المهام في مواقف مختلفة.

40
00:02:49,990 --> 00:02:55,690
‫لذلك إذا كنت بحاجة إلى مفتاح السبورة ، فإن قاعدة السبورة هي مفتاح رائع لاستخدامه ، وإلا فإنك تستخدم

41
00:02:55,690 --> 00:02:56,710
‫المفتاح الآخر.

42
00:02:56,710 --> 00:03:02,370
‫لذلك دعنا نذهب ونضيف جديدًا ونضيف فئة C ++ جديدة مرة أخرى ، ونعرض جميع الفئات ونحن

43
00:03:02,500 --> 00:03:06,910
‫نبحث عن مهمة الضرب مرة أخرى ونختار Blackboard Base بعد ذلك.

44
00:03:06,910 --> 00:03:15,850
‫سأقوم الآن بإعادة تسمية هذا إلى Beat Task و Underscore Clear Blackboard Value وسنمضي قدمًا

45
00:03:15,850 --> 00:03:18,400
‫وننشئ هذه الفئة هنا.

46
00:03:18,760 --> 00:03:20,470
‫الآن ، في البداية ، سوف يفشل هذا.

47
00:03:20,470 --> 00:03:23,440
‫لننقر فوق نعم ونرى رسالة الخطأ هنا.

48
00:03:23,710 --> 00:03:30,070
‫إنه يقول شيئًا عن Link ، والذي يرمز إلى Link ، رمز خارجي لم يتم حله ، بلاه ، بلاه ، بلاه.

49
00:03:30,100 --> 00:03:35,590
‫عادةً عندما يكون لديك هذا النوع من الخطأ من الرابط ، فهذا يعني أن لديك شيئًا

50
00:03:35,590 --> 00:03:43,030
‫ما في ملفات الرأس الخاصة بك لم يكن موجودًا في C ++ أو في هذه الحالة ، فهذا يعني أنه لا توجد وحدة نمطية متضمنة

51
00:03:43,030 --> 00:03:44,860
‫يعتمدون عليها.

52
00:03:44,860 --> 00:03:52,750
‫واستنادًا إلى أنواع الرموز التي تبحث عنها ، يمكنني أن أرى هنا واجهة مالك مهمة اللعب بالذكاء الاصطناعي.

53
00:03:53,020 --> 00:03:58,930
‫يبدو أنه يبحث عن شيء يتعلق بمهام اللعب وهذه وحدة في الواقع.

54
00:03:58,930 --> 00:04:05,770
‫لذلك إذا انتقلنا إلى كود Visual Studio الخاص بنا وفتحنا متصفح الملفات ، فسيتم فقط التمرير

55
00:04:05,770 --> 00:04:07,300
‫لأعلى إلى مشروعي.

56
00:04:07,300 --> 00:04:09,850
‫ثم تحت مصدر إطلاق نار بسيط.

57
00:04:09,850 --> 00:04:14,230
‫يجب أن يكون هناك مطلق نار بسيط بناء X أو أيًا كان اسم مشروعك ، قم ببناء.

58
00:04:15,040 --> 00:04:21,190
‫وهنا ، إذا منحتنا مساحة أكبر قليلاً ، يمكنك أن ترى أن لدينا هذه التبعيات

59
00:04:21,190 --> 00:04:29,740
‫العامة ، وأسماء الوحدات واسم الوحدة التي نريد إضافتها إلى هذه القائمة سيكون بمثابة لعبة.

60
00:04:30,890 --> 00:04:37,430
‫المهام مع S وإذا مضينا قدمًا وأضفنا ذلك وعدنا وجمعنا الآن ، نأمل أن يتم تجميع كل

61
00:04:37,430 --> 00:04:40,070
‫شيء بنجاح لأي سبب من الأسباب.

62
00:04:40,070 --> 00:04:44,680
‫لا تتم إضافة هذا تلقائيًا عند تجاوز مهمة تمهيد.

63
00:04:44,690 --> 00:04:48,740
‫الآن بمجرد الانتهاء من ذلك ، دعنا نذهب ونلقي نظرة على ما تم إنشاؤه هنا.

64
00:04:49,040 --> 00:04:57,590
‫يجب أن يكون لدينا فئة جديدة ، وهي مهمتنا التجريبية ، وتؤكد على قيمة السبورة الواضحة وهي فارغة جدًا

65
00:04:57,590 --> 00:04:59,210
‫في الوقت الحالي.

66
00:04:59,270 --> 00:05:05,150
‫الآن ما أريد فعله هو إذا أضفنا هذا إلى شجرة سلوكنا في الوقت الحالي ، فسيكون

67
00:05:05,150 --> 00:05:06,320
‫لها اسم قبيح.

68
00:05:06,320 --> 00:05:10,160
‫لذلك نريد اسمًا بشريًا لطيفًا يمكن قراءته لهذه المهمة.

69
00:05:10,160 --> 00:05:14,720
‫والطريقة التي سنقوم بها هي عن طريق إضافة مُنشئ وتعيين خاصية.

70
00:05:14,720 --> 00:05:17,570
‫لذلك دعونا ننشئ مُنشئ عام هنا.

71
00:05:17,900 --> 00:05:21,620
‫يحمل المُنشئ دائمًا نفس اسم الفصل حتى نتمكن من نسخ ذلك.

72
00:05:21,750 --> 00:05:26,720
‫لا تحتاج إلى أخذ أي فاصلة منقوطة للوسيطات في النهاية ثم دعونا ننشئ

73
00:05:26,720 --> 00:05:28,190
‫التنفيذ في C ++.

74
00:05:28,520 --> 00:05:34,160
‫ويحتاج التنفيذ فقط إلى تعيين متغير يسمى اسم العقدة.

75
00:05:34,160 --> 00:05:40,820
‫لذلك إذا قمت بتعيين اسم العقدة ثم استخدمت سلسلة ، فإن السلسلة التي قمنا بتعيينها ستكون اسم العقدة.

76
00:05:40,820 --> 00:05:43,220
‫لذلك ستكون سبورة واضحة.

77
00:05:44,210 --> 00:05:48,730
‫القيمة فقط مع المسافات ويجب أن تكون الأحرف الكبيرة الصحيحة لطيفة وسهلة.

78
00:05:48,740 --> 00:05:54,240
‫الآن ، الشيء الوحيد الذي نسيت القيام به في وقت التسجيل هو إحاطة هذا بواسطة ماكرو النص.

79
00:05:54,260 --> 00:05:58,880
‫الآن يجب أن تمضي قدمًا وتفعل ذلك في شفرتك ، لكنك سترى ذلك في الكود الخاص بي.

80
00:05:58,880 --> 00:06:05,180
‫سيستمر الأمر على هذا النحو ، ويجب أن نكون قادرين على تجميع ذلك الآن.

81
00:06:06,680 --> 00:06:09,170
‫رهيبة تم تجميعها بنجاح.

82
00:06:09,350 --> 00:06:12,170
‫لذلك أتحداك أن تضيف هذه العقدة الجديدة.

83
00:06:12,170 --> 00:06:17,050
‫لذا أضفه إلى نهاية سلوك التحقيق وتحقق فقط من اكتماله.

84
00:06:17,060 --> 00:06:21,470
‫بشكل أساسي ، يجب أن يكتمل تلقائيًا دون القيام بأي شيء على الإطلاق.

85
00:06:21,470 --> 00:06:22,790
‫لكن تأكد من صحة الاسم.

86
00:06:22,790 --> 00:06:26,270
‫تأكد من قدرتك على إضافته وسننظر في إضافة السلوك في المحاضرة التالية.

87
00:06:26,270 --> 00:06:27,560
‫لذا توقف مؤقتًا عن الفيديو وانطلق.

88
00:06:28,730 --> 00:06:29,120
‫تمام.

89
00:06:29,120 --> 00:06:29,680
‫مرحبًا بعودتك.

90
00:06:29,690 --> 00:06:35,660
‫فلننتقل إلى عدونا أ. أنا. وأضف في نهاية سلوك التحقيق.

91
00:06:35,660 --> 00:06:39,440
‫سنضيف قيمة السبورة الواضحة.

92
00:06:39,440 --> 00:06:41,450
‫يمكنك أن ترى أنه حصل على اسم جميل هناك.

93
00:06:41,450 --> 00:06:45,620
‫ويمكنك أيضًا ملاحظة أنه إذا انتقلت إلى جزء التفاصيل ، يمكنك تحديد مفتاح السبورة.

94
00:06:45,620 --> 00:06:47,990
‫سنقوم بتحديد آخر موقع معروف للاعب.

95
00:06:47,990 --> 00:06:53,240
‫على الرغم من أن ذلك لم يفعل أي شيء حتى الآن ، يمكنك أن ترى أن لدينا هذه الوظيفة لأننا

96
00:06:53,240 --> 00:06:58,260
‫ورثناها من Blackboard Base ودعنا نتحقق فقط من اكتمالها تلقائيًا.

97
00:06:58,260 --> 00:07:00,830
‫يجب أن تفعل وبعد ذلك يجب أن تمضي قدما.

98
00:07:00,830 --> 00:07:08,000
‫دعنا ننتقل إلى مهمة الوزن بعد ذلك حتى نتمكن من رؤية أنه يمر مباشرة أو يكتمل تلقائيًا.

99
00:07:08,090 --> 00:07:17,480
‫لذا سألعب ، سأذهب وأختبئ بالقرب من الزاوية بقدر ما أستطيع ، وبعد ذلك سأذهب وألقي

100
00:07:17,480 --> 00:07:23,090
‫نظرة على التحقيق الذي مر به وفي الواقع رآني.

101
00:07:23,090 --> 00:07:25,190
‫لذلك دعونا نذهب ونختبئ مرة أخرى.

102
00:07:25,220 --> 00:07:27,170
‫اذهب واختبئ قاب قوسين أو أدنى إذا استطعت.

103
00:07:28,610 --> 00:07:31,060
‫سأذهب وبعد ذلك سأذهب إلى.

104
00:07:31,070 --> 00:07:31,560
‫ها أنت ذا.

105
00:07:31,580 --> 00:07:35,690
‫لقد مر مباشرة من خلال قيمة السبورة الواضحة ، والتي يجب أن تعني أنها

106
00:07:35,690 --> 00:07:41,000
‫نجحت ، لأننا نعلم أنه إذا كان تسلسلًا وفشل ، فلا بد أنه سيتوقف ولن يزداد وزنه.

107
00:07:41,000 --> 00:07:42,950
‫هذا يعمل بشكل صحيح.

108
00:07:42,950 --> 00:07:48,530
‫القيمة الواضحة للعالم الأسود تعود بالنجاح على الفور وننتظر المحاضرة

109
00:07:48,530 --> 00:07:51,920
‫التالية ، سننظر في كيفية إضافة الوظائف.

110
00:07:51,920 --> 00:07:52,760
‫سأراك هناك.

