تمرين - أنماط الدوال

مكتمل

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

إنشاء تطبيق

كما ذُكِر في البداية، كان زملاؤك مشغولين بكتابة التعليمات البرمجية. ها هي ذا:

let cards = [21; 3; 1; 7; 9; 23]
let cardFace card = 
    let no = card % 13
    if no = 1 then "Ace"
    elif no = 0 then "King"
    elif no = 12 then "Queen"
    elif no = 11 then "Jack"
    else string no

let suit card =
    let no = card / 13
    if no = 0 then "Hearts"
    elif no = 1 then "Spades"
    elif no = 2 then "Diamonds"
    else "Clubs"

let shuffle list =
    let random = System.Random()
    list |> List.sortBy (fun x -> random.Next())

let printCard card = printfn "%s of %s" (cardFace card) (suit card)

let printAll list = List.iter(fun x -> printCard(x)) list

let take (no:int) (list) = List.take no list 

تتكون التعليمات البرمجية من أجزاء مختلفة تساعدك على تنفيذ لعبة بطاقة. ما هي المهمة إذن؟ مهمتك هي أن تأخذ مجموعة من البطاقات، وتخلط ورق اللعب، وتأخذ البطاقات الثلاثة العلوية ومن ثم تطبع النتائج.

  1. أنشئ مشروعًا جديدًا باستخدام:

    dotnet new console --language F# -o Cards
    cd Cards
    
  2. استبدل التعليمة البرمجية في ملف Program.fs بالتعليمة البرمجية التي أدخلتها.

  3. قم بإنشاء البنية الأساسية لبرنامج ربط العمليات التجارية بإضافة السطر التالي في النهاية:

    cards |> shuffle |> take 3 |> printAll
    

    ستستدعي هذه التعليمة البرمجية الدوال shuffle()، و take()، و printAll() في تسلسل من اليسار إلى اليمين. تختلف نتائج الإخراج كما يقدم الأسلوب shuffle() عنصراً عشوائياً.

  4. شغل المشروع عن طريق استدعاء dotnet run.

    dotnet run
    

    يجب أن تشاهد ثلاث بطاقات تُطبع مع وصفها ورموزها الصحيحة. فيما يلي مثال على ما يمكن أن يبدو عليه الإخراج:

    Ace of Hearts
    9 of Hearts
    7 of Hearts
    

تهانينا! بنيت أنت وفريقك بداية تطبيق لورق اللعب. كما طبقت بنجاح البنية الأساسية لبرنامج ربط العمليات التجارية الذي يجعلك تستدعي دالة في تسلسل، وكل هذا ينطبق على قائمة من بطاقات اللعب.