حل للعبة اللغز المعروفة باسم "8-Puzzle" باستخدام خوارزمية A* (A-star)، ويوفر واجهة رسومية باستخدام مكتبة Tkinter في Python. إليك ملخص لوظائف وأهداف الكود:
1. **الفئة Puzzle**:
- تُمثل حالة اللعبة في كل لحظة بوضعية لوحة معينة، مكونة من مصفوفة 3x3.
- تحتوي على دوال لحساب تقييم الهيورستيك (المسافة المانهاتن) وللتحقق مما إذا كانت اللوحة الحالية تمثل الحالة الهدف.
2. **دالة الحركة (`move_function`)**:
- تولد جميع الحركات الممكنة للقطع في اللوحة، مثل الحركة للأعلى، الأسفل، اليمين، واليسار.
3. **دالة أفضل قيمة F (`best_fvalue`)**:
- تبحث في قائمة الألواح المفتوحة للعثور على اللوحة التي لديها أقل قيمة F، والتي تمثل التقييم الكامل (المسافة المنهاتن + عدد الخطوات).
4. **خوارزمية A* (`AStar`)**:
- تبدأ من لوحة بداية معينة وتستخدم خوارزمية A* لحساب المسار الأمثل إلى الحالة الهدف.
- تستخدم قائمة مفتوحة لتخزين اللواح المرشحة للاستكشاف وقائمة مغلقة لتخزين اللواح التي تمت استكشافها بالفعل.
- تقوم بتوليد الحركات الممكنة، وحساب تكلفة كل حركة، وإضافة اللواح الجديدة إلى قائمة الألواح المفتوحة بناءً على تقييمها.
5. **الفئة PuzzleGUI**:
- توفر واجهة رسومية لعرض وتفاعل المستخدم مع لوحة اللغز.
- تحتوي على أزرار لتحريك القطع وحل اللغز وإعادة تعيين اللوحة إلى الحالة الابتدائية.
بشكل عام، الهدف من الكود هو توفير حل تفاعلي للعبة اللغز 8-Puzzle باستخدام خوارزمية ذكاء اصطناعي A*، وعرضها للمستخدم بواسطة واجهة مستخدم بسيطة باستخدام Tkinter.
اسم المستقل | محمد ع. |
عدد الإعجابات | 0 |
عدد المشاهدات | 10 |
تاريخ الإضافة |