Alıştırma - İşlev desenleri

Tamamlandı

Bu alıştırmada, size öğretilen bazı işlevsel desenleri uygulamaya odaklanın. Ayrıca, iş arkadaşlarınız tarafından yazılan kod üzerinde çalışın ve bunu bir işlem hattı operatörüyle birleştirin.

Uygulama oluşturun

Belirtildiği gibi, iş arkadaşlarınız kod yazmakla meşgul. İşte burada:

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 

Kod, bir kart oyunu uygulamanıza yardımcı olan farklı parçalardan oluşur. Peki, görev nedir? Göreviniz bir deste kart almak, karıştırmak, ilk üç kartı almak ve ardından sonuçları yazdırmaktır.

  1. Şu şekilde yeni bir proje oluşturun:

    dotnet new console --language F# -o Cards
    cd Cards
    
  2. Program.fs dosyasındaki kodu size verilen kodla değiştirin.

  3. Sonuna aşağıdaki satırı ekleyerek bir işlem hattı oluşturun:

    cards |> shuffle |> take 3 |> printAll
    

    Bu kod, soldan sağa sıralı olarak , take()ve printAll() işlevlerini shuffle()çağırır. Yöntem rastgele bir öğe sağladığından shuffle() çıkış sonuçları farklılık gösterir.

  4. çağırarak dotnet runprojeyi çalıştırın.

    dotnet run
    

    Uygun açıklaması ve kıyafetiyle üç kartın yazdırıldığını görmeniz gerekir. Bunun nasıl görünebileceğine yönelik örnek bir çıktı aşağıda verilmiştir:

    Ace of Hearts
    9 of Hearts
    7 of Hearts
    

Tebrikler! Siz ve ekibiniz bir kart uygulamasının başlangıcını oluşturacaksınız. Ayrıca, bir dizide işlevleri çağırmanıza olanak tanıyan ve tümü kart listesine uygulanan bir işlem hattını başarıyla uyguladınız.