تطبيق ويب يتطلب جهازًا واحدًا لتشغيل خادم محلي. يمكن للاعبين بعد ذلك التسجيل وتسجيل الدخول والاتصال باللعبة الرئيسية. يمكن للاعبين بعد ذلك رؤية معلوماتهم على الجهاز الرئيسي (جهاز لعرض صفحة الفهرس لجميع المستخدمين) وكذلك على أجهزتهم الخاصة (يفضل جهاز محمول) وتقديم العطاءات ضد بعضهم البعض.
تم اختباره باستخدام:
PHP 7.0.8
مع PHPUnit 5.7.4
لتشغيل حالات الاختبارComposer 1.00-beta2
MySQL 5.7.4
Apache 2.4.18
سيفترض هذا أنك قمت بتنزيل/تشغيل جميع البرامج ولن تتمكن من استخدام Composer وPHPUnit
جميع المخططات موجودة في المخرج MySQL/
.
لإضافة المخطط (بافتراض أنك في الدليل الصحيح):
mysql < MySQL/schema.sql
يعتمد Chip Manager كثيرًا على ملف التكوين الخاص بك، المسمى config.ini
والذي يجب عليك إنشاؤه وتخزينه في الدليل الجذر
يبدو الهيكل الأساسي لملف التكوين مثل
[database]
username = username
password = password
server = server_address
database = database_name
[information]
address = local_address
logfile = log_file
يجب عليك استبدال كل من المتغيرات لتتناسب مع الإعداد الخاص بك.
ستدرج صفحة الفهرس كل من يلعب حاليًا (من خلال الحصول على حالة الاتصال الخاصة بهم) وستدرجهم جنبًا إلى جنب مع معلوماتهم الحالية (مثل عرضهم الحالي / إجمالي الرقائق).
يتعامل play.php
مع جانب العميل من اللعبة ويسمح للأشخاص باللعب عبر عميل ويب متوافق مع الأجهزة المحمولة. وهذا مشابه جدًا لتطبيق Android، لذا لا ينبغي أن يمثل التبديل بين كليهما مشكلة
ستكون الشاشة الرئيسية موجودة على طاولة اللعبة وستعرض صفحة index.php
.
سيستخدم اللاعبون بعد ذلك أجهزتهم الخاصة للوصول إلى الخادم الذي يقوم بتشغيل اللعبة، والتسجيل باستخدام register.php
، وتسجيل الدخول باستخدام login.php
ثم تتم إعادة توجيههم إلى play.php
حيث سيتمكنون من تقديم العطاءات والمشاركة في اللعبة.
عندما يقوم اللاعبون بتقديم العطاءات، سيتم عرض معلوماتهم على الشاشة الرئيسية. عندما يفوز أحد اللاعبين، سيؤدي النقر فوق "لقد فاز اللاعب" إلى نقل جميع شرائح العطاء إلى ذلك اللاعب.
إن مكالمات واجهة برمجة التطبيقات (API) مخصصة للتطبيقات الخارجية (مثل تطبيق Android) بالإضافة إلى استخدام بعض مهام اللعبة الأساسية.
يقوم كل ملف PHP بإرجاع 3 معلمات على شكل JSON:
اسم | وصف | حاضر دائما |
---|---|---|
خطأ | إذا كانت هناك رسالة خطأ، فسيتم إرجاع وصف السلسلة. وإلا سيتم إرجاع 0 | حقيقي |
نجاح | ما إذا كانت المعاملة ناجحة أم لا (0 أو 1) | حقيقي |
بيانات | البيانات التي تم إرجاعها. غالبًا ما يكون لها مستويات فرعية من JSON. | خطأ شنيع |
مكالمات API التي تؤثر على اللعبة قيد التقدم أو تحصل على معلومات حول اللعبة الحالية. يتم تخزينها في دليل api/game
.
احصل على جميع معرفات اللاعبين المتصلين في مصفوفة ضمن data['players']
.
احصل على جميع معلومات اللاعبين المتصلين بما في ذلك:
يتم تخزين معلومات اللاعب ضمن data['players']
.
يقوم بتسجيل الدخول إلى المشغل بناءً على تركيبة اسم المستخدم/كلمة المرور وتعيين المشغل على أنه متصل.
يتطلب معلمتين POST
:
username
- اسم المستخدم للاعب لتسجيل الدخولpassword
- كلمة المرور للتحقق من اللاعب لنعلم اللعبة أن اللاعب قد فاز باللعبة الحالية. سيحصلون على جميع الرقائق التي قدمها جميع اللاعبين.
يتطلب معلمة GET
أو POST
واحدة:
ID
- معرف اللاعبين الفائزين للتحقق، يتم إرجاع معرف اللاعب الفائز ضمن data['winner']
والمبلغ الذي فاز به اللاعب ضمن data['chips_won']
.
مكالمات API التي تؤثر على اللاعب. يتطلب ID
كمعلمة GET
أو POST
.
يضع عرضًا جديدًا للاعب.
يتطلب معلمة GET
أو POST
إضافية:
amount
- المبلغ الذي يريد اللاعب المراهنة به إرجاع جميع معلومات اللاعب ضمن data
يحصل على جميع المعلومات الحالية للمستخدمين.
يأخذ معلمة اختيارية إضافية:
needs_update
- إذا تم التعيين على 1
، فسيتم التحقق مما إذا كان المشغل يحتاج إلى التحديث قبل إرجاع المعلومات إرجاع جميع معلومات اللاعب ضمن data
إعادة تعيين عرض التسعير الحالي للاعب إلى 0
يتحقق مما إذا كان اللاعب بحاجة إلى التحديث. إذا كان الأمر كذلك، قم بإرجاع جميع معلومات اللاعب.
إرجاع ما إذا كان قد تم تحديث المشغل ضمن data['needs_update']
ومعلومات حول المشغل ضمن data['player']