قيم التعداد
جزء من قسم المنطق وتدفّق التنفيذ في رحلة GDScript على Coddy. الدرس 39 من 78.
كل خيار في التعداد هو int، لذا يمكنك مقارنة الخيارات وإجراء العمليات الحسابية عليها:
enum Day { MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY }
func _ready():
print(Day.FRIDAY) # 4
print(Day.SATURDAY > Day.FRIDAY) # true
print(Day.FRIDAY + 1) # 5يعمل التعداد نفسه كقاموس يحوّل الأسماء إلى قيم. تُرجع keys() الأسماء بالترتيب، وتُرجع values() القيم، بينما تُرجع size() عدد الخيارات:
print(Day.keys()) # ["MONDAY", "TUESDAY", ..., "SUNDAY"]
print(Day.size()) # 7لطباعة اسم قيمة، استخدمها كفهرس في keys(). يعمل هذا عندما تكون للخيارات القيم الافتراضية 0 و1 و2... أما بالنسبة إلى تعداد ذي قيم محددة، فاستخدم find_key()، التي تُرجع اسم القيمة:
var today := Day.SATURDAY
print(Day.keys()[today]) # SATURDAYمع وجود enum Coin { COPPER = 1, SILVER = 10 } في المستوى الأعلى، تكون Coin.keys()[10] خارج النطاق، بينما تعمل find_key():
print(Coin.find_key(10)) # SILVERللانتقال في الاتجاه الآخر، من اسم مخزّن كنص إلى قيمته، استخدم الأقواس المربعة. تحقّق من الاسم باستخدام has() أولًا: فالاسم غير الموجود في التعداد يُعدّ خطأً.
var text := "FRIDAY"
if Day.has(text):
print(Day[text]) # 4تكرّر for day_name in Day: عبر الأسماء، مثل حلقة تمرّ على قاموس.
التحدي
سهليُعرّف البرنامج النصي التعداد Day، من MONDAY إلى SUNDAY. يقرأ البرنامج سطرين: اسم يوم بأحرف كبيرة وعددًا من الأيام (عددًا صحيحًا، 0 أو أكثر).
اطبع سطرين:
- الاسم، و
has the value، وقيمة ذلك اليوم في التعداد In، والعدد، وdays:، واسم اليوم بعد ذلك العدد من الأيام
بعد SUNDAY يبدأ الأسبوع من جديد عند MONDAY. بالنسبة إلى المدخلين FRIDAY و3، يكون الناتج:
FRIDAY has the value 4
In 3 days: MONDAYجرّب بنفسك
extends Node
enum Day { MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY }
func _ready():
var day_name := OS.read_string_from_stdin()
var days := int(OS.read_string_from_stdin())
# اطبع قيمة اليوم واليوم الذي يأتي بعد ذلك العدد من الأيام
pass
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس المنطق وتدفّق التنفيذ
1السلاسل النصية بالتفصيل
أساليب السلاسل النصيةالبحث داخل السلاسل النصيةالاستبدال وإزالة المسافات الطرفيةالتقسيم والدمجمراجعة - التحقق من اسم المستخدم4القواميس، الجزء الثاني
القواميس المتداخلةمصفوفات من القواميسدمج القواميسنسخ القواميسمراجعة - عدّ التكرارات2اتخاذ القرارات المتقدم
المطابقة باستخدام المتغيراتشروط المطابقةأنماط المصفوفاتأنماط القواميسالتحقق من العضويةمراجعة - محلل الأوامر5تطبيق دفتر جهات الاتصال
عرض القائمةإضافة جهة اتصال8مدير سجلات الطلاب
نظرة عامة على المشروعإضافة طالب3المصفوفات متعددة الأبعاد
أساسيات المصفوفات ثنائية الأبعادالوصول إلى عناصر المصفوفة ثنائية الأبعادالحلقات المتداخلة مع المصفوفات ثنائية الأبعادمراجعة - المصفوفات ثنائية الأبعادالمصفوفات المتعرجةأنماط شائعة للمصفوفات ثنائية الأبعادمراجعة - لوحة اللعبة6المجموعات باستخدام القواميس
ما هي المجموعة؟القاموس كمجموعةالإضافة والإزالةالاتحاد والتقاطعفرق المجموعاتمراجعة - إزالة العناصر المكررة9تجميع البيانات المتقدم
جمع القيمإيجاد الحد الأدنى والحد الأقصىالترتيب المخصصمراجعة - أداة ترتيب القواميستدرّب بنفسك: مترجم GDScript عبر الإنترنت