- الخادم (P1): Tkinter — يشغّل الفيزياء ويرسل الحالة 30fps.
- العميل (P2): Kivy — يرسم اللعبة ويحرّك مضربه ويرسل موقعه للخادم.
- العربية: تم إصلاح العرض عربيًا داخل العميل بدون أي مكتبات خارجية (shaper + bidi بسيط + اختيار خط من النظام).
python server.py- سيظهر IP المحلي ومنفذ 50008.
- تحريك مضرب P1: W/S أو ↑/↓.
- زر لعبة جديدة يعيد الضبط.
python client.py- أدخل IP الخادم واضغط اتصال.
- حرّك المضرب بالسحب على النصف الأيمن من منطقة اللعب، أو استخدم أزرار فوق/تحت.
- زر لعبة جديدة يطلب بدء جولة جديدة.
- بروتوكول TCP محلي (LAN).
- الخادم يُرسل الحالة 30fps، والعميل يرسل هدف موضع مضربه 30fps.
- Python 3.8+
- Tkinter (مرفق غالبًا مع Python الرسمي).
- Kivy مثبت على جهاز العميل (بدون حزم إضافية للعربية).
إن لم يظهر خط عربي جيد، غيّر مسار الخط داخل الدالة
_find_fontفيclient.pyإلى خط موجود لديك (Tahoma/Arial/Geeza/DejaVu/NotoNaskh...).
- النقاط حتى 10. تظهر رسالة الفائز عند انتهاء الجولة.
- الدردشة متاحة من الجانبين.
بالتوفيق! 🎉