مطوّر C# لبناء مكتبة قوانين لعبة بلوت سعودية (Core DLL) + Test Harness — MVP-0

تفاصيل المشروع

أبحث عن مطوّر C# لتنفيذ المرحلة الأولى من مشروع لعبة بلوت سعودية للكمبيوتر.

المطلوب بناء مكتبة قوانين (Core Library) مستقلة تمامًا عن Unity بصيغة .NET Standard 2.1 DLL، مع تطبيق Console Test Harness يثبت صحة المنطق والنتائج.

هذه المرحلة منطق فقط: بدون واجهة، بدون Unity، بدون رسوميات، بدون أونلاين.

نطاق MVP-0 (الحكم/الترامب داخل الأكلات فقط)

المطلوب تنفيذه

الورق والتوزيع

ورق بلوت 32 ورقة

خلط/توزيع حتمي عبر Seed (نفس Seed = نفس النتائج دائمًا)

توزيع 3-2-3 لأربعة لاعبين

تمثيل اللاعبين/الفرق/الدور (Turn Order)

محرك الأكلات (Trick Engine)

التحقق من قانونية اللعب:

متابعة الزات (النوع) إذا متوفر

تطبيق قواعد الحكم (الترامب) عند عدم توفر الزات

الأكلة = 4 لعبات بالترتيب ثم تحديد الفائز وتحديث الدور

تحديد الفائز بالأكلة وفق القواعد

توضيح مهم: المقصود بـ MVP-0 هنا هو محرك الأكلات بالحكم داخل اللعب فقط، وليس تنفيذ نظام المشتري/الاختيار الكامل في هذه المرحلة.

GameState + Replay

GameState قابل للحفظ والتحميل بصيغة JSON مقروء

سجل أحداث (Replay Log) بصيغة JSON مقروء يسجل: Seed + كل حركة + نتيجة كل أكلة

إعادة تشغيل Replay تعطي نفس النتائج حرفيًا

Test Harness (Console)

أوامر تشغيل واضحة من سطر الأوامر مثل:

simulate (تشغيل Seeds)

replay (إعادة تشغيل من Log)

validate (PASS/FAIL للاختبارات)

يطبع Logs وملفات Output قابلة للمقارنة

خارج النطاق (غير مطلوب الآن)

الصن بالكامل

نظام المشتري/الاختيار الكامل + السكّة

المشاريع (سرا/خمسين/مية/400/بلوت)

حساب النقاط (152) والغبن والمضاعفات

ذكاء اصطناعي

أونلاين / غرف / متجر

أي واجهة Unity أو UI

شروط معمارية إلزامية (Architecture Contract)

Core = .NET Standard 2.1 DLL مستقل (ممنوع أي UnityEngine)

نقطة دخول واحدة للمحرك (API واضحة)

RuleSet Interface جاهز للتوسع لاحقًا (حتى لو تطبيق واحد الآن)

ممنوع تشتيت فروقات الأنماط بـ if/else خارج RuleSet

RNG حتمي عبر Seed

ممنوع أي مصدر غير حتمي: DateTime.Now / Guid.NewGuid() / Random() بدون Seed أو أي اعتماد على الجهاز/الوقت

كل ملفات الـState والـLog تكون JSON مقروء في هذه المرحلة

التسليمات المطلوبة

Solution كاملة تشمل:

Baloot.Core (DLL)

Baloot.TestHarness (Console)

README.md (أوامر تشغيل Copy/Paste)

مجلد Scenarios/ (Seeds + Tests + Expected Outputs)

فيديو 30–60 ثانية يوضح تشغيل simulate وreplay وvalidate من سطر الأوامر + إرفاق ملفات الـOutput الناتجة

معايير القبول (مختصر واضح)

Determinism: ملف Seeds يحتوي ≥ 20 Seed وتشغيله 3 مرات يعطي نفس الـOutput حرفيًا

اختبارات: ≥ 10 حالات قانونية لعب + ≥ 10 حالات فائز أكلة (PASS/FAIL)

Save/Load يعمل بدون أخطاء

Replay يعطي نفس النتائج حرفيًا

وثائق القواعد

وثائق تفصيلية جاهزة تصف كل قاعدة وحالة خاصة — تُسلّم بعد الاتفاق وتُعتبر المرجع الحاكم.

أي نقطة غير واضحة يجب السؤال عنها قبل التنفيذ، ولا يُسمح بالافتراض.

المطلوب من المتقدم (إلزامي للفرز)

اكتب (MVP-0) في أول سطر من عرضك

أرسل مثال عمل C# سابق يوضح بنية مشروع نظيفة (رابط/Repo/شرح/لقطات — أو Repo خاص عند الطلب)

اشرح باختصار: كيف ستبني RuleSet Interface بحيث نضيف أنماط لعب لاحقًا بدون إعادة كتابة؟

اذكر المدة المتوقعة لتنفيذ MVP-0 فقط

أي عرض بدون البنود أعلاه سيتم تجاهله.

المدة

المدة المتوقعة: 2 – 4 أسابيع

ملاحظة:

لا أبحث عن حل سريع أو كود غير قابل للاختبار. إذا لم تكن مرتاحًا لمفهوم Deterministic RNG + Replay + Test Harness فهذا المشروع غير مناسب.

حالة المشروع
مفتوح
تاريخ النشر
الميزانية
$1000.00 - $2500.00
مدة التنفيذ
30 يوما
المهارات

صاحب المشروع
يزيد ا.
تاريخ التسجيل
معدل التوظيف
المشاريع المفتوحة 1
مشاريع قيد التنفيذ 0
التواصلات الجارية 3

تقدم للمشروع

العروض المقدمة

مرحبا، أنا مطور C# لدي خبرة عملية في بناء منطق الألعاب داخل Unity وتنظيم المشاريع بطريقة نظيفة وقابلة للاختبار. قمت سابقا بتطوير تطبيق AR متكامل على Android باس...

(MVP-0) مرحبا يزيد، قرأت الشروط بدقة، ويسعدني العمل مع عميل يضع معايير هندسية مثل الـ Deterministic RNG والـ Testability قبل كتابة الكود. بصفتي C# Software Engi...

(MVP-0) مرحبا، أود التقديم لتنفيذ المرحلة الأولى من مشروع لعبة بلوت سعودية (MVP-0). مثال عمل سابق , بنية مشروع C# نظيف: لدي خبرة في بناء مشاريع C# منظمة وقابلة ...

MVP-0 السلام عليكم، أنا عبدالله زكي، مهندس برمجيات خريج جامعة بيكنت بإسطنبول. اطلعت على وصف المشروع بالكامل، واضح إنك شخص يفهم البرمجة ويعرف وش يبي بالضبط. اشتغ...

قبولك لهذا العرض يعتبر اتفاقاً بينك وبين المستقل وسيبقى موقع مستقل وسيطاً بينكما حتى تسليم المشروع. لن تتمكن من تغيير العرض أو إلغائه لاحقًا لذلك تأكد من اختيارك للعرض المناسب باتّباع النصائح التالية:

  • راجع صفحة حساب المستقل الذي اخترته واطّلع على أعماله السابقة
  • إن كانت هناك تفاصيل غير مذكورة في المشروع، فتواصل مع المستقل وأخبره بها أولًا
  • بإمكانك أن تتواصل مع المستقل وتسأله عن أية أمور تحتاجها
  • احرص دائمًا على إبقاء التواصل مع المستقل داخل الموقع قدر الإمكان وذلك لضمان حقوقك
  • لا تتردد من التواصل معنا ان احتجت لأي مساعدة، نحن نحب مساعدتك!

المستقل غير متاح لاستلام مشاريع، يمكنك ارسال تنبيه له لقبول العرض وإعادة المحاولة بعد بضعة ساعات، أو اختيار عرضاً من مستقل آخر.