نظرة عامة على المشروع
جزء من قسم المنطق والتدفق في رحلة Swift على Coddy — الدرس 33 من 56.
ستقوم ببناء متتبع عادات صغير. تُخزن الحالة في قاموس واحد يربط اسم العادة بسجل الأيام المكتملة خلال الأسبوع:
var habits: [String: [Int]] = [
"read": [1, 3, 5], // تم في أيام الاثنين، الأربعاء، الجمعة
"workout": [2, 4] // تم في أيام الثلاثاء، الخميس
]الأيام هي أعداد صحيحة 1...7 من الاثنين إلى الأحد. عبر الدروس الأربعة القادمة، ستضيف ميزات واحدة تلو الأخرى:
- إضافة عادة وتحديدها كمكتملة
- حساب سلاسل الإنجاز عبر الأسبوع
- طباعة شبكة أسبوعية
- مقارنة أسبوعين
كل درس مستقل بذاته، ستعيد التصريح عن القاموس (dictionary) في الجزء العلوي من كل ملف. الحالة (state) لها نفس الشكل، لذا فإن الطرق (methods) التي تكتبها تنتقل عبر الدروس.
التحدي
مبتدئلبدء المشروع، اكتب كود إعداد البيانات:
- قم بتهيئة قاموس
habitsفارغ ([String: [Int]]) - اطبع عدد العادات
- اطبع ما إذا كان القاموس فارغاً
المخرجات المتوقعة هي:
0
trueورقة مرجعية
يمكن تمثيل متتبع العادات كقاموس يربط أسماء العادات بمصفوفات من أرقام الأيام المكتملة (1...7 لأيام الاثنين–الأحد):
var habits: [String: [Int]] = [
"read": [1, 3, 5], // تم في أيام الاثنين، الأربعاء، الجمعة
"workout": [2, 4] // تم في أيام الثلاثاء، الخميس
]خصائص القاموس المفيدة:
habits.count // عدد المدخلات
habits.isEmpty // true إذا لم تكن هناك مدخلاتجرّب بنفسك
// TODO: قم بتعريف [String: [Int]] فارغ، ثم اطبع count و isEmpty
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس المنطق والتدفق
1النصوص بعمق
العد والفهارسحالة الأحرف وإزالة الفراغاتالبحث في النصوصتقسيم ودمج النصوصاستبدال النصوص الفرعيةمراجعة - التحقق من اسم المستخدم4المجموعات
إنشاء المجموعاتالاتحاد والتقاطعالطرح والفرق المتماثلالمجموعات الجزئية والشاملةمراجعة - تصفية الـ Tag7مشروع - متتبع العادات
نظرة عامة على المشروعتحديد كمكتمل2النطاقات والخطوات
المغلقة مقابل نصف المفتوحةالخطوة (Stride)دوال النطاقاتالنطاقات في Switchملخص - شبكة التقويم5الدوال من الرتبة العليا - الجزء الأول
MapFilterReduceربط Map و Filter و Reduceمراجعة - إحصائيات الكلمات