Skip to content

osamahashed/Mini-Ludo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 

Repository files navigation

🎲 Mini Ludo - لعبة اللودو المصغرة

لعبة لوحية مصغرة للعبين عبر الشبكة المحلية مع نظام محادثة مدمج.

📋 وصف اللعبة

Mini Ludo هي نسخة مبسطة من لعبة اللودو الكلاسيكية، مصممة للعب بين لاعبين عبر الشبكة المحلية. تتميز اللعبة بواجهة رسومية بسيطة وجميلة مع نظام محادثة يسمح للاعبين بالتواصل أثناء اللعب.

قواعد اللعبة:

  • المسار: 20 خانة مرقمة من 0 إلى 19
  • اللاعبون: لاعبان (الخادم = اللاعب 1، العميل = اللاعب 2)
  • البداية: كل لاعب يبدأ من الخانة 0
  • النرد: يعطي أرقام من 1 إلى 6
  • الحركة: اللاعب يتحرك بعدد خانات النرد
  • الفوز: أول لاعب يصل للخانة 19 يفوز
  • قاعدة التجاوز: إذا تجاوز الرقم الخانة 19، يبقى اللاعب في مكانه

🚀 متطلبات التشغيل

متطلبات النظام:

  • Python 3.8 أو أحدث
  • نظام التشغيل: Windows, macOS, أو Linux
  • اتصال بالشبكة المحلية (LAN/Wi-Fi)

المكتبات المطلوبة:

pip install -r requirements.txt

📦 التثبيت والإعداد

1. تحميل المشروع:

git clone [repository-url]
cd mini-ludo

2. تثبيت المتطلبات:

pip install -r requirements.txt

3. التأكد من تثبيت Kivy:

إذا واجهت مشاكل في تثبيت Kivy، يمكنك استخدام:

pip install kivy[base] kivymd

🎮 كيفية اللعب

تشغيل الخادم (اللاعب 1):

  1. تشغيل الخادم:

    python server.py
  2. بدء الخادم:

    • اضغط على زر "ابدأ الخادم"
    • ستظهر رسالة تأكيد وIP الخادم
    • انتظر حتى يتصل اللاعب الثاني
  3. اللعب:

    • عندما يكون دورك، اضغط "رمي النرد"
    • تابع حركة قطعتك على اللوحة
    • استخدم نظام المحادثة للتواصل مع اللاعب الآخر

تشغيل العميل (اللاعب 2):

  1. تشغيل العميل:

    python client.py
  2. الاتصال بالخادم:

    • أدخل IP الخادم في الحقل المخصص
    • اضغط "اتصال"
    • انتظر رسالة تأكيد الاتصال
  3. اللعب:

    • عندما يكون دورك، اضغط "رمي النرد"
    • تابع حركة قطعتك على اللوحة
    • استخدم نظام المحادثة للتواصل

🎨 واجهة المستخدم

واجهة الخادم (Tkinter):

  • معلومات الخادم: عرض IP المحلي وحالة الاتصال
  • أزرار التحكم: ابدأ الخادم، رمي النرد، لعبة جديدة
  • لوحة اللعبة: عرض المسار مع مواقع اللاعبين بألوان مختلفة
  • نظام المحادثة: نافذة عرض الرسائل وحقل الإدخال
  • معلومات اللعبة: عرض الدور الحالي ونتيجة النرد

واجهة العميل (Kivy):

  • منطقة الاتصال: حقل IP وزر الاتصال
  • أزرار التحكم: رمي النرد، لعبة جديدة
  • لوحة اللعبة: عرض مرئي جميل للمسار والقطع
  • نظام المحادثة: واجهة تفاعلية للمحادثة
  • نوافذ منبثقة: رسائل الفوز/الخسارة

🎯 المميزات

مميزات اللعبة:

  • ✅ لعب عبر الشبكة المحلية
  • ✅ واجهات رسومية جميلة ومختلفة
  • ✅ نظام محادثة مدمج
  • ✅ دعم اللغة العربية
  • ✅ ألوان مميزة للاعبين
  • ✅ رسائل واضحة للحالة
  • ✅ إمكانية بدء لعبة جديدة
  • ✅ معالجة أخطاء الشبكة

الألوان المستخدمة:

  • 🔵 الأزرق: اللاعب 1 (الخادم)
  • 🔴 الأحمر: اللاعب 2 (العميل)
  • 🟣 البنفسجي: عندما يكون اللاعبان في نفس الخانة

🔧 حل المشاكل الشائعة

مشكلة الاتصال:

خطأ: فشل الاتصال بالخادم

الحلول:

  • تأكد من تشغيل الخادم أولاً
  • تحقق من IP الخادم الصحيح
  • تأكد من أن الجهازين على نفس الشبكة
  • تحقق من إعدادات الجدار الناري (Firewall)

مشكلة Kivy:

خطأ: ModuleNotFoundError: No module named 'kivy'

الحل:

pip install --upgrade pip
pip install kivy kivymd

مشكلة الخطوط العربية:

إذا لم تظهر النصوص العربية بشكل صحيح:

  • تأكد من وجود خطوط عربية على النظام
  • قم بإعادة تشغيل التطبيق

📡 بروتوكول التواصل

رسائل الخادم → العميل:

{
  "type": "game_update",
  "positions": {"P1": 5, "P2": 3},
  "current_player": "P2",
  "dice_result": 4,
  "game_status": "ongoing",
  "winner": null
}

رسائل العميل → الخادم:

{
  "type": "roll_dice"
}

رسائل المحادثة:

{
  "type": "chat_message",
  "sender": "P1",
  "message": "مرحبا، بالتوفيق!"
}

🔒 الأمان والخصوصية

  • اللعبة تعمل على الشبكة المحلية فقط
  • لا يتم حفظ أي بيانات شخصية
  • رسائل المحادثة لا يتم حفظها
  • الاتصال مشفر بـ TCP

🎪 تطوير المشروع

إضافة مميزات جديدة:

  • أصوات للعبة
  • حفظ الإحصائيات
  • دعم أكثر من لاعبين
  • مستويات صعوبة مختلفة

هيكل المشروع:

mini-ludo/
├── server.py          # خادم اللعبة
├── client.py          # عميل اللعبة
├── requirements.txt   # المتطلبات
└── README.md         # هذا الملف

📞 الدعم والمساعدة

إذا واجهت أي مشاكل أو لديك اقتراحات:

  • تحقق من قسم "حل المشاكل الشائعة"
  • تأكد من تثبيت جميع المتطلبات
  • تحقق من إعدادات الشبكة

📄 الترخيص

هذا المشروع مفتوح المصدر ومتاح للاستخدام والتطوير.


استمتع باللعب! 🎲🎉

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors