جدول المحتويات:

تطبيق الحفاظ على النتيجة في الكرة الحديدية / Jeu-de-Boules: 7 خطوات
تطبيق الحفاظ على النتيجة في الكرة الحديدية / Jeu-de-Boules: 7 خطوات

فيديو: تطبيق الحفاظ على النتيجة في الكرة الحديدية / Jeu-de-Boules: 7 خطوات

فيديو: تطبيق الحفاظ على النتيجة في الكرة الحديدية / Jeu-de-Boules: 7 خطوات
فيديو: اغرب ولادة ارنب ممكن تشوفها فحياتك #shorts 2024, يوليو
Anonim
تطبيق الحفاظ على النتيجة في الكرة الحديدية / Jeu-de-Boules
تطبيق الحفاظ على النتيجة في الكرة الحديدية / Jeu-de-Boules
تطبيق الحفاظ على النتيجة في الكرة الحديدية / Jeu-de-Boules
تطبيق الحفاظ على النتيجة في الكرة الحديدية / Jeu-de-Boules
تطبيق الحفاظ على النتيجة في الكرة الحديدية / Jeu-de-Boules
تطبيق الحفاظ على النتيجة في الكرة الحديدية / Jeu-de-Boules

هذا هو تطبيق حفظ درجات الكرة الحديدية (يشار إليه أحيانًا باسم Jeu de Boules) لنظام Android. يمكن استخدام هذا التطبيق كما هو ويعمل بكامل طاقته. أو يمكن استخدامه مع شاشة عرض Petanque Matrix [تعليمات منفصلة]. هذا الجزء من المشروع سهل لأنه لا يلزم وجود أجهزة ، فقط البرامج المجانية المتاحة.

اللوازم

  1. هاتف متوافق مع Android (يفضل)
  2. جهاز مزود بإمكانية الوصول إلى متصفح الإنترنت ، ويفضل أن يكون جهاز كمبيوتر به ماوس لأعمال الترميز والتصميم
  3. حساب لدى MIT App Inventor (مجاني)
  4. حزمة رسم بسيطة على سبيل المثال Pixlr أو Gimp (الكل مجاني)
  5. موقع مورد رمز ، على سبيل المثال أيقونات واجهة المستخدم المادية أو Material.io (جميعها مجانية)

البرمجيات والرمز المصدر:

يمكنك العثور على رابط لتطبيق Actual Petanque أسفل هذه الصفحة. هنا يمكنك أيضًا العثور على رابط إلى رمز المصدر الكامل (آسف لذلك ، لكن Instructables لا تسمح لي بتحميل ملف aia …).

الخطوة 1: علم التشريح والتنقل في التطبيق

علم التشريح والتنقل في التطبيق
علم التشريح والتنقل في التطبيق

تصميم التطبيق والتنقل فيه بسيط جدًا. هناك 4 شاشات في المجمل:

  1. الشاشة الرئيسية رقم 1 (حيث نقضي معظم وقتنا في تسجيل النقاط)
  2. شاشة المباريات رقم 2 (حيث نجد قائمة بجميع المباريات التي تم لعبها والنتائج)
  3. شاشة الإعدادات رقم 3 (إعدادات التطبيق ، المهام الإدارية ، تصحيح الأخطاء ، إلخ.)
  4. حول الشاشة رقم 0 (حول والشعار ومكان الحصول على إرشادات الإنشاء ، أي صفحة الويب هذه)

تم تحسين تخطيط الشاشات وموضع الأزرار لاستخدام يد واحدة وإصبع واحد (إبهام). تنقلك الأزرار الموجودة في قائمة التنقل السفلية إلى الشاشات الموجودة على يمين أو يسار الشاشة الحالية. لذا فإن الزر 0 ينقلك إلى حول الشاشة رقم 0. والزر رقم 1 يعيدك إلى الشاشة الرئيسية رقم 1 وما إلى ذلك ، usw.

واضح؟ من لنتابع …

الخطوة الثانية: تصميم البيانات (القاعدة)

تصميم (قاعدة) البيانات
تصميم (قاعدة) البيانات
تصميم (قاعدة) البيانات
تصميم (قاعدة) البيانات

الآن ، قبل إنشاء الشاشة الأولى ، نحتاج إلى مكان ما لتخزين جميع البيانات التي سيستخدمها هذا التطبيق. لهذا سوف نستخدم أبسط شكل يقدمه مخترع تطبيقات MIT: TinyDB. هذا محدود إلى حد ما لأنه لا يمكنه تخزين سوى زوج مفتاح / قيمة ، ولكن مع القليل من المساعدة وبعض الحيل ، يمكننا جعل هذا يقوم بكل الأشياء التي نريدها.

هناك نوعان من القيم التي سنخزنها:

  • سنقوم بتخزين 10 قيم بسيطة للمفتاح / القيمة على مستوى التطبيق (كما هو موضح في وظيفة "CreateIgnoreList" أعلاه).
  • ومفتاح / قيمة أكثر تعقيدًا تخزن جميع بيانات الألعاب المكتملة في سلسلة واحدة مع مفتاح / قيمة "CurrentMatch" تعمل كمفتاح أساسي * (كما هو موضح في وظيفة "SaveScore" أعلاه). يتم فصل هذه الحقول داخل زوج المفتاح / القيمة هذا بواسطة حرف تحكم غير مرئي "\ t". سيمكننا حرف التحكم هذا في شاشة المباريات رقم 2 من استرداد جميع القيم في مكوناتها المنفصلة وعرضها وفرزها. لكن المزيد عن ذلك في قسم الشاشة 2 (مباريات).

* مزيد من المعلومات حول كيفية إنشاء مفتاح أساسي لـ TinyDb في AppInventor على YouTube.

الخطوة 3: الشاشة 1 (الرئيسية)

الشاشة 1 (الرئيسية)
الشاشة 1 (الرئيسية)
الشاشة 1 (الرئيسية)
الشاشة 1 (الرئيسية)
الشاشة 1 (الرئيسية)
الشاشة 1 (الرئيسية)

هذه شاشة "العمود الفقري" لدينا حيث سنقضي معظم الوقت كمستخدم للتطبيق. إنها أيضًا نقطة البداية لتطبيق MIT App Inventor الخاص بنا.

كما ترى من (الصورة رقم 1) أعلاه ، على الرغم من أن الشاشة بسيطة في الإعداد ، إلا أن هناك بعض التفاعل الخفي ، ومعالجة الأخطاء ، والتمرير ، وتقسيم الشاشة ، والقائمة العائمة ، وإيماءات التمرير ، والحماية من الأخطاء ، والمدخلات الخاطئة وحتى الاسترداد من الحوادث. لجميع هذه الميزات ، يرجى إلقاء نظرة على شفرة المصدر التفصيلية لكل شاشة. إذن ماذا يمكنك أن تفعل هنا:

  • اضغط على "الفريق 1" وستتلقى إشعارًا سيمكنك من تغيير اسم "الفريق الأول". بمجرد التغيير ، سيغير هذا "الفريق 1" إلى الاسم الذي اخترته. هذا هو أيضًا الاسم الذي سيتم استخدامه ليعكس نتيجة "اللعبة" و "المباراة" (في الشاشات التالية).
  • تتغير "نتيجة الفريق 1" و "نتيجة الفريق 2" بناءً على الزرين "+" و "-" اللذين يتم الضغط عليهما أسفل كل فريق على حدة. إذا كانت النتيجة 0 وتم الضغط على "-" ، يتم تقديم إشارة مسموعة ومرئية ولكن النتيجة تبقى 0 (بالطبع).
  • إذا وصلت "النتيجة" إلى 13 ، تحدث بعض الأشياء: يتم توفير إشارة مرئية ، وتظهر نافذة الإخطار النتائج (الصورة رقم 2) وتوفر لك خيار إما بدء لعبة جديدة أو مباراة جديدة (وبالطبع لعبة جديدة لعبه). إذا لم تكن قد اخترت تسجيل النقاط الكلاسيكي ولكن بفارق نقطتين (يمكن تحديده في شاشة الإعدادات رقم 3) بدلاً من الاعتماد على الفرق بين فريقين ، فسيتم الإعلان عن الفائز (كما هو موضح في الصورة رقم 3)).
  • تظهر "النتيجة" في "المباراة" الحالية في وسط الشاشة بين مجموعتي "الفريق 1" و "الفريق 2". وسيستمر هذا في الجدولة حتى تبدأ "مباراة" جديدة.
  • للانتقال إلى الشاشات الأخرى ، يمكنك أيضًا "التمرير سريعًا لليسار" لإظهار شاشة "حول" رقم 0 أو "التمرير لليمين" لإظهار شاشة التطابقات رقم 2.

أخيرًا في الجزء السفلي توجد قائمة التنقل. يتم وضع هذا دائمًا في الجزء السفلي المطلق من الشاشة ، بغض النظر عن حجم الشاشة. حتى في حالة استخدام وظيفة "تقسيم الشاشة" في Android. تحتوي قائمة التنقل السفلية على 3 أزرار:

  1. أسفل اليسار: "؟" سوف يتجه الزر إلى اليسار ويعرض بدء التشغيل الأولي حول الشاشة (# 0) مرة أخرى.
  2. الوسط السفلي: سيمكنك زر إعادة الضبط (الذي يبدو مثل "@" مع سهم) من بدء لعبة جديدة أو مباراة جديدة في "أي وقت" في اللعبة ، فقط اضغط على الزر "إعادة تعيين" في المنتصف السفلي. سيظهر هذا أيضًا نافذة الإشعارات التي ستطلب منك إما بدء لعبة جديدة أو مباراة جديدة.
  3. أسفل اليمين: سيتجه الزر "->" إلى اليمين ويعرض نظرة عامة على شاشة جميع المباريات (# 2).

الخطوة 4: الشاشة 2 (التطابقات)

الشاشة 2 (المباريات)
الشاشة 2 (المباريات)
الشاشة 2 (المباريات)
الشاشة 2 (المباريات)
الشاشة 2 (المباريات)
الشاشة 2 (المباريات)

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

أسفل تسميات "الفريق 1" و "الفريق 2" توجد قائمة بجميع المباريات وإجمالي الدرجات الخاصة بكل منها. هذه قائمة مرتبة مع "آخر مباراة تم لعبها" في الجزء العلوي و "أقدم مباراة تم لعبها" في الجزء السفلي.

في المنتصف ، بين "الفريق 1" و "الفريق 2" ، يوجد زر يمكن استخدامه لفرز قائمة المباريات إما بترتيب تصاعدي أو تنازلي. سيتغير الرمز وفقًا لاتجاه الفرز الذي تم اختياره.

للتنقل إلى الشاشات الأخرى ، يمكنك أيضًا "التمرير سريعًا لليسار" لإظهار الشاشة الرئيسية رقم 1 أو "التمرير لليمين" لإظهار شاشة الإعدادات رقم 3.

أخيرًا في الجزء السفلي توجد قائمة التنقل. يتم وضع هذا دائمًا في الجزء السفلي المطلق من الشاشة ، بغض النظر عن حجم الشاشة. حتى إذا تم استخدام وظيفة "تقسيم الشاشة" في Android (كما هو موضح في الصورة رقم 2). تحتوي قائمة التنقل السفلية على 3 أزرار:

  1. أسفل اليسار: "؟" سوف يتجه الزر إلى اليسار ويعرض بدء التشغيل الأولي حول الشاشة (# 0) مرة أخرى.
  2. الوسط السفلي: زر إعادة الضبط (الذي يبدو مثل "@" مع سهم) سيمكنك من بدء لعبة جديدة أو مباراة جديدة في "أي وقت" باللعبة ، فقط اضغط على الزر "إعادة تعيين" في المنتصف السفلي. سيظهر هذا أيضًا نافذة الإشعارات التي ستطلب منك إما بدء لعبة جديدة أو مباراة جديدة.
  3. أسفل اليمين: سيتجه الزر "->" إلى اليمين ويعرض نظرة عامة على شاشة جميع المباريات (# 2).

توسيط قائمة المباريات على الشاشة:

كنت أرغب في إظهار قائمة التطابقات متمركزة على الشاشة مع وجود الفاصل "-" في المنتصف. الآن ، نظرًا لأن عدد الألعاب التي فاز بها الفريق يمكن أن يكون رقمًا واحدًا أو أكثر ويمكن أن يكون الاسم الفعلي لكل فريق مختلفًا في الحجم ، فلا يمكننا وضع هذا في قائمة واحدة فقط. سيبدو كل شيء مثل هذا:

فريق 1 0-1 فريق 2

Foo 1 - 42 FooBar

لذلك يجب أن تتمركز تسمية الحاجز "-". مع محاذاة "اسم الفريق الأول" و "نتيجة الفريق الأول" إلى يسار الفاصل "-". ومحاذاة "نتيجة الفريق 2" و "اسم الفريق 2" إلى يمين الفاصل "-". لذلك ينتهي بنا الأمر هكذا:

"الفريق 1 0" "-" "الفريق الأول 2" "Foo 1" "-" "42 FooBar"

وبما أنني لا أعرف كم من الوقت ستستغرق قائمة المباريات الخاصة بنا ، فقد أضع كل "اسم الفريق الأول" و "نتيجة الفريق الأول" في نفس تسمية HTMLFormat وبعد كل مباراة أقوم بإدخال "a" ووضع التالي على الخط الجديد.

جهز الأشياء للفرز:

كما هو مذكور في خطوة تصميم البيانات (القاعدة) ، يمكنني تخزين قيمة واحدة فقط. لذلك قمت بتخزين قيم "اسم الفريق الأول" و "نتيجة الفريق الأول" و "نتيجة الفريق الثاني" و "اسم الفريق الثاني" مفصولة بشخصية تحكم غير مرئية "\ t". الآن أحتاج إلى إخراجها أولاً من قاعدة البيانات (كما هو موضح في الصورة رقم 3).

يوضح مقتطف الشفرة أننا نتحقق أولاً من تعيين علامة التصحيح (يتم ذلك في كل شاشة من هذا التطبيق. بعد ذلك ، يُنشئ قائمة بأزواج المفاتيح / القيم) التي نحتاج إلى تجاهلها عند المرور بقاعدة البيانات. نحن مهتمون فقط ببيانات "المطابقة" ، ولا شيء غير ذلك. ثم نمرر عبر قاعدة البيانات متجاهلين جميع المفاتيح الموجودة في قائمة Ignorelist وننشئ قائمة جديدة بقيمتين:

  1. المفتاح الأساسي (تذكر أن هذا هو الرقم الذي يشير إلى رقم المطابقة ، بدءًا من المطابقة رقم 1)
  2. سلسلة تحتوي على قيم "اسم الفريق الأول" و "نتيجة الفريق الأول" و "نتيجة الفريق الثاني" و "اسم الفريق الثاني"

ثم ننتقل إلى أسفل القائمة وننشئ قائمة جديدة من القوائم حيث يتم تقسيم الحقول الفردية إلى عناصر فردية (كما هو موضح في الصورة رقم 4):

DataToSort -> فهرس القائمة 1 -> فهرس القائمة 1 (رقم PK)

-> فهرس القائمة 2 (اسم الفريق 1) -> فهرس القائمة 3 (درجة الفريق 1) -> فهرس القائمة 4 (درجة الفريق 2) -> فهرس القائمة 5 (اسم الفريق 2) -> فهرس القائمة 2 -> فهرس القائمة 1 (رقم PK) -> فهرس القائمة 2 (اسم الفريق 1) ->… -> …

بعد ذلك نعرض بعض معلومات التصحيح إذا كانت علامة التصحيح صحيحة. والآن يمكننا أخيرًا فرز قائمتنا (القوائم).

BubbleSort * قائمة القوائم:

تُظهر الصورة رقم 5 القائمة الكاملة لـ BubbleSort * قائمة القوائم الخاصة بنا. يمكن بالطبع استخدام هذه الخوارزمية لأي حجم قائمة القوائم بغض النظر عن عدد الفهرس الموجود.

* مزيد من المعلومات حول مدى بساطة خوارزمية BubbleSort على YouTube.

الخطوة 5: الشاشة 3 (الإعدادات)

الشاشة 3 (الإعدادات)
الشاشة 3 (الإعدادات)

تبدو هذه الشاشة مشغولة للغاية وتحتوي على الكثير من عناصر التصميم المرئي. لكن في النهاية هناك 5 مفاتيح تبديل فقط:

  1. "Fred Scoring": إذا تم تشغيل "تشغيل" ، فإنه يغير سلوك التسجيل ويقرر الفائز بناءً على فارق نقطتين عند 13 وليس فقط أول واحد يصل إلى 13.
  2. "اقتران Bluetooth": (عند التمكين) ، إذا تم تشغيل "تشغيل" ، فإنه يتيح الاقتران مع هذا التطبيق مع شاشة Petanque الخارجية.
  3. "إعادة تعيين المباريات": إذا تم التبديل إلى "تشغيل" ، فسيتم إعادة تعيين / حذف جميع المباريات والبدء بالمطابقة الأولى.
  4. "إعادة تعيين قاعدة البيانات": إذا تم تشغيل "تشغيل" ، فسيتم حذف / إعادة تعيين جميع التطابقات وجميع إعدادات التطبيق الأخرى إلى الإعدادات الأصلية بما في ذلك النتيجة الحالية والمطابقات وأسماء الفريق وإعدادات تصحيح الأخطاء وترتيب الفرز وإعدادات البلوتوث (عند التمكين) إلخ..
  5. "تصحيح الأخطاء": إذا تم التبديل إلى "تشغيل" ، فسيتم عرض معلومات تصحيح الأخطاء في جميع أنحاء التطبيق بين قوسين مربعين ''. أشياء مثل "العدد الإجمالي للسجلات ، العدد الإجمالي للمتغيرات ، رقم المطابقة الحالي ، رقم اللعبة ، إلخ.

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

أسفل اليسار: سيتجه الزر "<-" إلى اليسار ويعرض العرض الأولي نظرة عامة على شاشة جميع المباريات (# 2)

الخطوة 6: الشاشة 0 (حول)

الشاشة 0 (حول)
الشاشة 0 (حول)

الشاشة النهائية. مجرد معلومات ، لا أكثر.

تظهر هذه الشاشة في المرة الأولى التي يتم فيها تشغيل هذا التطبيق. بعد ذلك لن يتم عرضه مرة أخرى ، إلا إذا اخترت القيام بذلك بالضغط على "؟" زر على الشاشة الرئيسية # 1.

تحتوي قائمة التنقل السفلية على زر واحد فقط وهذا يعيدك إلى الشاشة الرئيسية رقم 1.

الخطوة 7: البرنامج و / أو كود المصدر

البرنامج و / أو رمز المصدر
البرنامج و / أو رمز المصدر

أخيرا.

يمكنك تنزيل التطبيق من موقع Google Drive هذا.

يمكنك تنزيل الكود من مدخل معرض MIT App Inventor لـ Pentaque (الصورة رقم 1). سيمكنك هذا من حفظ المشروع في حساب MIT App Inventor الخاص بك (يمكنك إعادة تسميته إلى ما تريد). من هناك يمكنك رؤية جميع التعليمات البرمجية في محرر Blocks والشاشات الموجودة في محرر المصمم وجميع الوسائط والموارد المستخدمة لهذا المشروع.

يمكنك أيضًا تنزيل الكود المصدري (ملف.aia ، وهو في الواقع ملف.zip) من موقع Google Drive هذا.

موصى به: