Exerciții - Efectuarea operațiunilor de listă
Echipa dvs. este mulțumită de codul pe care l-ați scris până acum pentru jocul de cărți. Echipa dorește să dezvoltați codul și să începeți implementarea logicii specifice regulii jocului, cum ar fi calcularea valorii unei mâini.
Pentru acest exercițiu, utilizați unele dintre funcțiile din modulul listă.
Calcularea unei mâini pentru joc 31
În jocul de cărți "31", fiecare dintre doi sau mai mulți jucători este împărțită o mână constând din trei cărți. Jucătorul câștigă al cărui punct de card total este cel mai apropiat de 31. Fiecare carte are propria valoare nominală, cu excepția faptului că jack, regina și regele sunt în valoare de 10 puncte fiecare, și aces sunt în valoare de 11 puncte. Un jucător ținând, de exemplu, un 10, un jack și un as, ar avea 31 de puncte, iar mâna respectivă ar fi câștigătorul.
Într-o unitate anterioară, ați creat un pachet de cărți, fiecare reprezentat ca număr între 0 și 51. Pentru a începe să calculați o mână, trebuie să traduceți acele numere în ceva care are sens în domeniul cărților de vizită. De exemplu, înlocuiți numărul "0" cu numele "Asul inimilor".
Din fericire, unul dintre colegii tăi a scris deja acel cod:
// 0 = 11, 11, 12, 13 = 10, else the actual number
let cardValue card =
let value = card % 13
if value = 0 then 11
elif value = 10 || value = 11 || value = 12 then 10
else value
Copiați codul precedent de utilizat la pasul 2 din următoarele instrucțiuni.
Activitatea dvs. este să luați o carte de vizită și să calculați valoarea acesteia utilizând funcția sumBy().
Creați un proiect nou apelând
dotnet newîntr-un director gol:dotnet new console --language F# -o CardGame cd CardGameDeasupra metodei principale, adăugați codul colegului dvs., pe care l-ați copiat acum câteva momente.
Pentru a crea mâna cardului, adăugați următorul cod:
let hand = [0; 25; 31]Acum că ați creat mâna, adăugați funcția de
sumBy():let sum = List.sumBy(fun card -> cardValue card) hand printfn "%i" sumRulați codul apelând
dotnet run:dotnet runAcum ar trebui să vedeți următoarea ieșire:
26
Felicitări! Ați reușit să evaluați un joc de cărți pentru jocul 31. A devenit 26, ceea ce nu este destul de 31, dar este o sumă bună.