طرح الأسئلة
جزء من قسم المنطق وتدفق التنفيذ في رحلة Swift على Coddy. الدرس 50 من 56.
الميزة الأولى: اطرح كل سؤال بالترتيب واطبع ما إذا كانت كل إجابة صحيحة.
بنك الأسئلة مُضمّن مباشرةً في هذا الدرس، وإجابات اللاعب تأتي من الإدخال القياسي (إجابة واحدة في كل سطر، بالترتيب).
let questions: [(String, String, String)] = [
("math", "2 + 2?", "4"),
("geo", "Capital of France?", "Paris")
]
for (_, text, answer) in questions {
print(text)
let given = readLine()!
print(given == answer ? "correct" : "wrong")
}اقرأ من الأعلى إلى الأسفل: اطبع السؤال، واقرأ سطرًا واحدًا، ثم قارن. يخفف الدرس التالي صرامة هذه المقارنة حتى لا تفشل بسبب اختلاف حالة الأحرف أو المسافات البيضاء الزائدة.
التحدي
سهلابدأ برنامجك بمخزن questions هذا، بدلًا من الشيفرة من الخطوة السابقة:
let questions: [(String, String, String)] = [
("math", "2 + 2?", "4"),
("geo", "Capital of France?", "Paris"),
("science", "Color of grass?", "green")
]اقرأ ثلاثة أسطر من الإدخال القياسي (إجابات اللاعب، بالترتيب). لكل سؤال، اطبع:
- نص السؤال في سطر مستقل
correctعندما تكون الإجابة المقدمة مساوية تمامًا للإجابة المخزنة، وإلا فاطبعwrong
بعد الأسئلة الثلاثة كلها، اطبع Score: <n>/3 مع عدد الإجابات الصحيحة.
للإدخال 4 / Paris / red، يكون الناتج:
2 + 2?
correct
Capital of France?
correct
Color of grass?
wrong
Score: 2/3جرّب بنفسك
let questions: [(String, String, String)] = [
("math", "2 + 2?", "4"),
("geo", "Capital of France?", "Paris"),
("science", "Color of grass?", "green")
]
// TODO: لكل سؤال، اطبع النص، واقرأ الإجابة، ثم اطبع صحيح/خطأ؛
// ثم اطبع 'Score: <n>/3'
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس المنطق وتدفق التنفيذ
1النصوص بعمق
العد والفهارسحالة الأحرف وإزالة الفراغاتالبحث في النصوصتقسيم ودمج النصوصاستبدال النصوص الفرعيةمراجعة - التحقق من اسم المستخدم4المجموعات
إنشاء المجموعاتالاتحاد والتقاطعالطرح والفرق المتماثلالمجموعات الجزئية والشاملةمراجعة - تصفية الـ Tag7مشروع - متتبع العادات
نظرة عامة على المشروعتحديد كمكتمل2النطاقات والخطوات
المغلقة مقابل نصف المفتوحةالخطوة (Stride)دوال النطاقاتالنطاقات في Switchملخص - شبكة التقويم5الدوال من الرتبة العليا - الجزء الأول
MapFilterReduceربط Map و Filter و Reduceمراجعة - إحصائيات الكلماتتدرّب بنفسك: Playground لـ Swift