أهلا ومرحبا بكم في هذا البرنامج التعليمي.
تهانينا مرة أخرى على الانتهاء من الثلاثة.
انظر ، لقد صنعناها.
لقد صنعنا العقول ونقوم بتدريبهم.
لكن لا يزال يتعين علينا الآن إنشاء عامل اختبار ، والذي لن يقوم بتحديث النموذج على الإطلاق ، ولكنه
سيستخدم النموذج المشترك فقط لإجراء استكشافاته الخاصة.
وبالطبع ، في هذا الكود ، سنقوم بتسجيل بعض مقاطع الفيديو وستكون هذه مقاطع فيديو لعامل
الاختبار هذا وهو يلعب الاختراق بدرجة معينة.
لذلك دعنا نذهب من خلال هذا الرمز.
تم الانتهاء الأكثر أهمية.
لذا كما أخبرتك ، لن نقوم بترميزها سطراً بسطر ، لكنني أعتقد أنه من المهم أن تفهم
ما يحدث هنا.
لذلك ها نحن نذهب مع هذا الرمز.
في القسم الأول ، كما لاحظت ، نستورد المكتبات ثم نحدد وظيفة الاختبار هذه التي ستجعل
عامل الاختبار هذا إلى استكشافه الخاص ويلعب لعبة الاختراق.
لذا ها نحن ذا.
تأخذ وظيفة الاختبار هذه ثلاث حجج.
الأول هو الترتيب ، ولا يزال يتعين عليك مزامنة وكيل الاختبار كما فعلنا مع وكلاء التدريب.
ثم لدينا معاييرنا ، بالطبع ، لأننا سنحتاج إلى بعضها.
وبالطبع لدينا النموذج المشترك لأن عامل الاختبار هذا سيستخدم النموذج المشترك للقيام بالاستكشاف
الخاص به.
حسنًا ، ثم ندخل داخل الوظيفة في سطر الكود هذا ، وقمنا بمزامنة عامل الاختبار
تمامًا كما فعلنا من قبل.
ثم نستورد البيئة.
لذلك أذكر أنه في الكود الرئيسي ، والذي سيكون في البرنامج التعليمي التالي ، سيتم استبدال
نهاية الاسم هنا بالاختراق بصفر حتى نتمكن من الدخول في بيئة الاختراق صفر ولعب اللعبة.
ويعني الفيديو يساوي صحيحًا أننا سنحصل على مقاطع الفيديو الخاصة باختراق خط الأنابيب.
يعني هذا السطر من التعليمات البرمجية بشكل إجمالي أننا نشغل بيئة واحدة بالفيديو.
ثم في السطر التالي من الكود ، قمنا بمزامنة هذه البيئة بالضبط نفس المبدأ كما هو الحال في وظيفة
مدربة.
ثم نحصل على نموذجنا ، وللقيام بذلك ، نقوم بإنشاء كائن من الفئة النشطة وإدخال شكل الإدخال
مع بيئتنا ، والملاحظة ، والفضاء ، والشكل صفر.
لذلك تمامًا مثل وظيفة القطار ومخرجاتنا ، وهي الإجراءات مع مساحة العمل.
لذلك بالضبط مثل ما قبل ذلك الحين شيء جديد هنا.
نظرًا لأننا انتهينا من التدريب ، لا نريد وضع النموذج في وضع القطار لأننا ببساطة
لا نريده أن يتدرب ، نريد وضعه في وضع VAL وهذا ما نفعله هنا بنموذج النقطة فال.
هذا فقط لوضع عامل الاختبار في الوضع الذي سيختبره بشكل أساسي ، ويختبر أدائه الذي يتم
تقييمه.
ثم هنا نحصل على حالات الإدخال الخاصة بنا والتي هي صور المدخلات من اللعبة ، والتي يتم إجراؤها في هذه المرحلة بواسطة
المصفوفات.
ثم هنا نقوم بتحويلها إلى مستشعرات شعلة.
هنا نبدأ بعض المكافآت.
هنا نقوم بالتهيئة إلى صحيح.
لذلك لا يزال مثل المرة السابقة ، ثم شيء جديد مرة أخرى.
نقدم متغير الوقت الثالث هذا مع وظيفة من وقت لآخر لقياس وقت العمليات الحسابية.
وذلك لأننا نريد الحصول على نقطة البداية هنا للإجراءات التي نستخدمها نوعًا عمليًا جدًا من الإشارات
التي تسمح بإضافة عنصر إلى قائمة الانتظار من اليمين أو من اليسار.
هذا عملي للغاية وسأعطيك الرابط المرجعي في الإصدار الموصى به من الكود.
لذا ستلقي نظرة على ماهية قائمة الانتظار هذه اليوم ، وهذا ما يتيح لنا القيام بذلك.
ثم نقوم بتهيئة طول الحلقة بصفر ، بالطبع ، وبعد ذلك سنزيد الحجم في حلقة
البئر هذه.
لذلك نستخدم نفس الحيلة هنا بينما تكون صحيحة وفي الحلقة نزيد طول الحلقة بمقدار واحد.
عندما تنتهي اللعبة ، عندما تنتهي اللعبة ، نعيد تحميل المجموعة الأخيرة من النموذج المشترك.
النموذج المشترك الذي تم تحديثه بواسطة النماذج الأخرى.
تذكر أنه هنا لم يعد يتم تحديث هذا النموذج المشترك.
ثم لا يزال ، إذا انتهت اللعبة ، وإذا انتهت اللعبة ، فنحن نلعب فيها.
نعيد تهيئة حالات الخلية ، ونرى x والحالات المخفية h x وإلا إذا لم تنته اللعبة ، حسنًا ، نحتفظ بنفس حالات الخلية
والحالات المخفية ، لكننا نتأكد من وجودها في متغير إجمالي بحيث يمكن
أن تكون تعلق على التدرج.
هذا شيء فعلناه بالفعل في وظيفة القطار ثم ما زلنا في الحلقة البرية.
وبعد تحديث حالات الخلية في الحالات المخفية بالطريقة الصحيحة ، اعتمادًا على الحالتين
هنا.
حسنًا ، ماذا سنفعل؟
نحصل على تنبؤات النموذج.
هذا هو بالضبط ما نفعله هنا بهذا السطر من التعليمات البرمجية.
لذلك نحصل على القيمة ، وهي ناتج الناقد ، وقيمة الإجراء ، وهي ناتج الممثل
، ثم الجزء العلوي ، كل الحالات المخفية ، h ، x وحالة الخلية ترى x.
ثم نقوم بإنشاء توزيع احتمالات الإجراءات التي لها قيمة إجراء قيم Q
هنا.
ونفعل ذلك باستخدام دالة max.
وبالطبع لا نحتاج إلى الحصول على احتمالات السجل هنا لأن هذا مخصص فقط لتدريب
وكيل الاختبار.
ستلعب فقط الإجراءات التي سنستخدمها فقط مثل الموت ، جسد أقصى ناعم للعبها.
لكننا لا نقوم بأي تدريب هنا ، لذلك لدينا فقط الدعامة.
ومن هذا المسبار نلعب الإجراء من خلال أخذ الحد الأقصى لهذه الاحتمالات مباشرة.
أي أنه يأخذ الإجراء الذي له أعلى احتمال.
والسبب هو أن عامل الاختبار لا يقوم بأي استكشاف.
تذكر أننا نريد ذلك.
لديك فرصة لالتقاط بعض الإجراءات ذات الاحتمالات المنخفضة عندما نريد القيام ببعض الاستكشاف لهذه
الإجراءات الأخرى ، كما تعلم ، لا نتخذ الإجراء الذي يحتوي على أعلى احتمالية في كل مرة.
لكن هنا عامل الاختبار لن يقوم بأي استكشاف.
وبالتالي ، هذا هو سبب قيامنا مباشرة بالإجراء الذي يحتوي على أقصى احتمال.
وبعد ذلك بمجرد أن نلعب الإجراء ، نصل إلى الحالة التالية ونحصل على المكافأة التالية ويتم تحديث ما إذا كانت
اللعبة قد انتهت أم لا.
لذلك حصلنا على كل هذا مع هذا السطر من التعليمات البرمجية من خلال تشغيل الإجراء بعد تحديده مع الحد الأقصى
هنا.
لذلك نحن نلعب العمل هنا ونحصل على الدولة ، نحصل على المكافأة ويتم تحديثها.
وبعد ذلك ، نظرًا لأننا حصلنا للتو على مكافأة جديدة ، فسنقوم بتحديث مجموع المكافأة ببساطة عن طريق إضافة هذه المكافأة
الجديدة.
وأخيرًا ، عندما تنتهي اللعبة.
لذا ، إذا تم ذلك يعني انتهاء اللعبة ، وعندما تنتهي منظمة العفو الدولية من لعب اللعبة
، حسنًا ، سنقوم بطباعة النتائج مع الوقت ، وتكافئ الحلقة طول الحلقة وهي المدة التي استغرقتها آخر استراحة
في اللعب خارج؟
وهذه هي الطريقة التي نطبع بها كل هذه المتغيرات باستخدام حيل الوقت هذه.
هذا هو الوقت المناسب.
ثم مكافأة البعض هي مجرد متغير لمجموع المكافآت وطول الحلقة هو المتغير
لطول الحلقة.
OC وبعد ذلك بمجرد طباعة جميع النتائج ، حسنًا ، نظرًا لأن اللعبة قد انتهت ونريد بدء لعبة جديدة
، فسنقوم بإعادة تهيئة كل شيء يمثل مجموع المكافأة إلى الصفر.
طول الحلقة إلى الصفر.
سنقوم بإعادة بدء جميع الإجراءات باستخدام هذه الوظيفة الواضحة.
أعد تعيين صور الإدخال التي تعرفها ، عن طريق إعادة تجميع كل الطوب معًا.
وأخيرًا ، نستخدم هذا الوقت الذي ينام 60 ثانية لأخذ استراحة لمدة دقيقة واحدة للسماح للوكلاء الآخرين بالتدرب
وأنه إذا انتهت اللعبة ، وفي النهاية لدينا هذا السطر الأخير من الكود الذي سيوفر لنا الحالة الجديدة ، ثم
يمكننا المضي قدما.
يمكننا الاستمرار في هذه اللعبة الجديدة.
لذا ها نحن ذا.
هذه هي وظيفة الاختبار ، والتي بفضلها سنرى مقاطع الفيديو في برنامج تعليمي واحد أو اثنين.
آمل أن نكون جميعًا معًا مثل آخر مرة لمشاهدة النتائج.
هذا معك ، أنا وكارول.
ذلك سيكون ممتعا.
وأنا أخبركم ، توقعوا رؤية نتائج جيدة.
لكن ضع في اعتبارك أن لعبة الاختراق هذه كانت صعبة للغاية.
اعتقدنا أنها كانت أبسط لعبة نلعبها أولاً ، لكن ليس على الإطلاق.
لقد تبين أنه أصعب بكثير من Doom ، ولهذا السبب وضعناه في الوحدة الأخيرة.
لكن على أي حال ، دعنا نجعل هذه الوظيفة الرئيسية في البرنامج التعليمي التالي لنقول أن هذه ليست هي الأكثر أهمية هنا.
الآن بعد أن تم تنفيذ a3c بالكامل.
لذلك لن نقوم بترميزها سطراً بسطر.
سأقوم بتوسيع الكود وسرعان ما سنصل إلى النتائج.
حتى ذلك الحين ، استمتع.
أنا.