Maze Solver هو مشروع تفاعلي مبني باستخدام React، يعتمد على خوارزميات استكشاف الرسوم البيانية (Graph Traversal Algorithms) لحل المتاهات وعرض خطوات الحل بشكل مرئي. يهدف المشروع إلى توضيح آلية عمل الخوارزميات ومقارنة أدائها في سيناريوهات مختلفة.
الخوارزميات المدعومة
DFS (البحث بالعمق أولًا – Depth-First Search)
BFS (البحث بالعرض أولًا – Breadth-First Search)
خوارزمية Dijkstra
خوارزمية Bellman-Ford
BFS متعدد المصادر (Multiple Source BFS)
Dijkstra متعدد المصادر (Multiple Source Dijkstra)
خوارزمية A*
خوارزمية Greedy Search
المميزات
? وضع العرض (Show Mode)
تم تصميم هذا الوضع للعمل مع شبكات كبيرة وخلايا صغيرة، مما يتيح مشاهدة كيفية عمل الخوارزميات على نطاق واسع. يُعد هذا الوضع مثاليًا لملاحظة سلوك الخوارزميات في المتاهات المعقدة.
? الوضع التعليمي (Educational Mode)
يعتمد على شبكة أصغر وخلايا أكبر، ومخصص لأغراض تعليمية. يوفر تصورًا أوضح لخطوات الخوارزميات، مما يسهل فهم المبادئ الأساسية لحل المتاهات.
? شبكة ديناميكية (Dynamic Grid)
يتيح المشروع إنشاء شبكة مخصصة بالكامل بأحجام مختلفة تصل إلى 300 × 300 خلية. يمكن للمستخدم حل متاهات صغيرة أو خوض تحديات كبيرة حسب مستوى التعقيد المطلوب.
? الشبكات الموزونة (Weighted Grids)
يمكن إضافة أوزان للخلايا لملاحظة كيفية عمل خوارزميات Dijkstra وBellman-Ford في إيجاد أقصر مسار مع اختلاف التكاليف.
? أنماط الشبكات (Grid Patterns)
يدعم التطبيق مجموعة من أنماط الشبكات الموزونة لإنشاء متاهات فريدة، مثل:
الجهة اليسرى بأوزان كبيرة واليمنى بأوزان صغيرة
الجهة اليمنى بأوزان كبيرة واليسرى بأوزان صغيرة
النصف العلوي بأوزان كبيرة والسفلي بأوزان صغيرة
النصف السفلي بأوزان كبيرة والعلوي بأوزان صغيرة
الحواف بأوزان صغيرة
شبكة متماثلة (Symmetry Grid)
شبكة حلزونية (Spiral Grid)
? قسم السجلات (Logs Section)
يعرض هذا القسم معلومات تفصيلية عن أداء كل خوارزمية عند تشغيلها، مثل:
اسم الخوارزمية
التعقيد الزمني
عدد الخلايا التي تم استكشافها أثناء البحث
يساعد هذا القسم على تحليل أداء الخوارزميات ومقارنتها لاختيار الأنسب حسب شكل وتعقيد المتاهة.
? مولّد المتاهات (Maze Generator)
يمكن للمستخدم إنشاء متاهات تلقائيًا باستخدام مولدات متاهات عشوائية أو تعتمد على الاستدعاء الذاتي (Recursive).