الجولات على الشبكة ومتجهات الاتجاه
التحرك باستخدام dx وdy والبقاء ضمن الحدود
الجولات على الشبكة ومتجهات الاتجاه درس مجاني في Competitive Programming Academy على CoddyKit. هذا هو الدرس 2 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Competitive Programming Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Competitive Programming Academy 4 دروس في المجموع.
المشي على شبكة
تجري كثير من عمليات المحاكاة على شبكة من الصفوف والأعمدة. يبدأ رمز في مكان ما ويتحرك خليةً خليةً باتباع الاتجاهات. 🗺️
تتبّع الصف والعمود
احتفظ بموضعك على هيئة زوج (r, c). يحدد الصف السطر من الأعلى إلى الأسفل، ويحدد العمود الموضع من اليسار إلى اليمين.
r, c = 0, 0متجهات الاتجاه
مثّل كل حركة بمتجه (dr, dc). تؤدي إضافته إلى موضعك إلى نقلك خلية واحدة في ذلك الاتجاه، من دون الحاجة إلى سلاسل من شروط if.
dr, dc = 0, 1 # move rightالجيران الأربعة
خزّن الحركات الأربع في مصفوفات حتى تتمكن من التكرار عليها. هذا هو النمط القياسي: أعلى وأسفل ويسار ويمين.
DR = [-1, 1, 0, 0]
DC = [0, 0, -1, 1]خذ خطوة واحدة
للتحرك، ما عليك سوى إضافة المتجه المختار إلى خليتك الحالية. ويعمل السطران نفسهما مع أي اتجاه من الاتجاهات الأربعة.
r += DR[k]
c += DC[k]ابقَ داخل الحدود
قبل التحرك، تحقق من أن الخلية داخل الشبكة. تمتد الصفوف من 0 إلى R-1 والأعمدة من 0 إلى C-1؛ وأي قيمة أخرى تكون خارج اللوحة.
if 0 <= r < R and 0 <= c < C:
passالأقطار عند السماح بها
تسمح بعض المسائل بالحركات القطرية أيضًا. أضف متجهات الزوايا الأربع لتكوين مجموعة جيران ذات ثمانية اتجاهات.
DR8 = [-1,-1,-1,0,0,1,1,1]
DC8 = [-1,0,1,-1,1,-1,0,1]الانعطاف يسارًا أو يمينًا
بالنسبة إلى روبوت ينعطف، أدر فهرس اتجاهه بدلًا من كتابة حالات متعددة. يحافظ modulo على دورانه عبر الاتجاهات الأربعة.
facing = (facing + 1) % 4 # turn rightالخلايا المحجوبة والجدران
تحقق من قيمة الشبكة قبل التحرك. إذا كانت الخلية جدارًا، فتجاوزها أو توقف، تمامًا كما تصف القواعد.
if grid[r][c] == '#':
continueالشبكات ذات الالتفاف
إذا كانت الشبكة تلتف، فاستخدم modulo للإحداثيات بالنسبة إلى الحجم، بحيث تتصل الحافة اليمنى بالحافة اليسرى بسلاسة.
r = (r + dr) % R
c = (c + dc) % Cلماذا تتفوق المتجهات
تستبدل متجهات الاتجاه كتل if-else المتشابكة بحلقة واحدة مرتبة. ويعني انخفاض التفرعات أخطاء أقل تحت ضغط المسابقات.
فحص سريع
تمشي على شبكة باستخدام متجهات الاتجاه، ويجب أن تبقى داخل اللوحة.
مراجعة
احتفظ بالموضع على هيئة (r, c)، وتحرك بإضافة متجهات الاتجاه، وكرّر على الجيران الأربعة، وتحقق دائمًا من الحدود قبل أن تخطو. 🚀
الأسئلة الشائعة
هل درس «الجولات على الشبكة ومتجهات الاتجاه» مجاني؟
نعم — نص درس «الجولات على الشبكة ومتجهات الاتجاه» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Competitive Programming Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Competitive Programming Academy 4 دروس في المجموع.
ماذا ستتعلم في «الجولات على الشبكة ومتجهات الاتجاه»؟
التحرك باستخدام dx وdy والبقاء ضمن الحدود تتمرن على Competitive Programming Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Competitive Programming Academy؟
لا تُشترط خبرة سابقة. Competitive Programming Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 4.
كم من الوقت يستغرق درس «الجولات على الشبكة ومتجهات الاتجاه»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Competitive Programming Academy هذا؟
نعم. كل درس في Competitive Programming Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- نمذجة الحالة والتقدم خطوة إلى الأمام
- الجولات على الشبكة ومتجهات الاتجاه
- اكتشاف الدورات في المحاكاة
- ترويض الحالات الطرفية المراوغة