تطبيق توليد وحل المتاهات باستخدام Java وJavaFX

تفاصيل العمل

قمت بتطوير تطبيق متكامل لإنشاء المتاهات (Maze Generation) وحلها (Maze Solving) باستخدام لغة Java وإطار العمل JavaFX. يتيح التطبيق للمستخدم إنشاء متاهات بأحجام مختلفة، اختيار خوارزمية التوليد المناسبة، ثم مشاهدة عملية حل المتاهة بشكل تفاعلي مع عرض بصري للخطوات التي تتخذها الخوارزميات.

نوع المشروع

هذا المشروع عبارة عن تطبيق تفاعلي تعليمي وخوارزمي يهدف إلى توضيح كيفية عمل خوارزميات توليد المتاهات وخوارزميات البحث والمسارات. يمكن استخدامه لأغراض تعليمية، بحثية، أو لعرض المفاهيم المتعلقة بالـ Algorithms وData Structures بطريقة مرئية.

الميزات الرئيسية للتطبيق

*دعم 11 خوارزمية لتوليد المتاهات مثل:

* Recursive Backtracker

* Kruskal

* Prim

* Aldous-Broder

* Wilson

* Hunt and Kill

* Growing Tree

* Recursive Division

* Eller

* Binary Tree

* Sidewinder

*دعم 5 خوارزميات لحل المتاهة:

* Depth First Search (DFS)

* Breadth First Search (BFS)

* A*

* Trémaux

* Best First Search

* إمكانية تحديد حجم المتاهة (العرض والارتفاع).

* إمكانية تحديد نقطة البداية والنهاية داخل المتاهة.

* عرض متحرك (Animation) لعملية توليد المتاهة وخطوات حلها.

* تمييز الخلايا التي يتم زيارتها أثناء البحث وإظهار **المسار النهائي للحل** بشكل واضح.

* واجهة تحكم تسمح للمستخدم بتغيير الخوارزميات بسهولة وتجربة أكثر من سيناريو.

عرض ثلاثي الأبعاد (3D)

تم ربط المتاهة مع Raycasting Engine قمت بتطويره لعرض المتاهة في بيئة ثلاثية الأبعاد تشبه الألعاب الكلاسيكية.

يوفر هذا الجزء:

* إمكانية التجول داخل المتاهة بنفسك باستخدام أزرار الحركة (W, A, S, D).

* التبديل بين العرض ثنائي الأبعاد و ثلاثي الأبعاد أثناء اللعب باستخدام زر TAB.

* تجربة تفاعلية تسمح للمستخدم بمحاولة حل المتاهة بنفسه.

طريقة التنفيذ

تم بناء المشروع باستخدام مبادئ البرمجة كائنية التوجه (OOP) لضمان تنظيم الكود وسهولة إضافة خوارزميات جديدة مستقبلاً.

كما تم كتابة اختبارات باستخدام JUnit للتحقق من صحة عمل الخوارزميات المختلفة وضمان استقرار التطبيق.

يعتمد التطبيق على:

* هيكلية واضحة للكود

* فصل منطق الخوارزميات عن واجهة المستخدم

* استخدام الرسوميات في JavaFX لعرض المتاهة والأنيميشن بشكل سلس

بطاقة العمل

اسم المستقل
عدد الإعجابات
0
عدد المشاهدات
2
تاريخ الإضافة
تاريخ الإنجاز
المهارات