Kurzusok
/
Gleam
Gleam
/
Feladatok
/
Pontszámtábla
Pontszámtábla

Pontszámtábla

Tanulófeladat

Bevezetés

Típusaliasok

Típusaliasok

A Gleamben egy típusalias segítségével kényelmes nevet adhatsz egy létező típusnak, amelyet egyébként körülményes lenne leírni.

pub type Headers =
  List(#(String, String))

pub fn html_headers() -> Headers {
  [
    #("content-type", "text/html"),
    #("x-frame-options", "DENY"),
  ]
}

Ha pub type-tal definiálod, az alias a saját modulján kívül is használható. Ha a pub elmarad, az alias privát lesz, és más modulokból nem lehet rá hivatkozni.

Szótárak

A Gleamben a szótárak olyan adatszerkezetek, amelyek kulcs-érték párokban tárolják az információt. Más nyelvekben ezeket asszociatív tömböknek, hasheknek vagy szótáraknak is nevezhetik.

Egy szótárban a kulcsok és az értékek bármilyen típusúak lehetnek, és az sem garantált, hogy a bejegyzések sorrendje megmarad, amikor hozzáférsz hozzájuk vagy visszakapod őket.

A szótárak használata

A szótárakat a gleam/dict modul függvényeivel hozod létre és módosítod.

// Create an empty dict
let dict1 = dict.new()

// Create a dict with some values
let dict2 = dict.from_list([
  #("name", "Gleam"),
  #("colour", "Pink"),
])

// Add a value to a dict
let dict3 = dict.insert(dict2, "website", "https://gleam.run")

// Get a value from a dict
let name = dict.get(dict3, "name")
// -> Ok("Gleam")

Utasítások

Ebben a feladatban egy módot készítesz arra, hogy nyilván tartsd a helyi játékterem legnépszerűbb játékának csúcspontszámait.

Öt függvényt kell megvalósítanod, amelyek többnyire egy csúcspontszámokat tároló szótár kezeléséhez kapcsolódnak.

1. Hozz létre egy új eredménytáblát

Készíts egy create_score_board függvényt, amely egy szótárat ad vissza, ami eredménytáblaként szolgál. A szótár kulcsai a játékosok nevei, az értékek pedig a pontszámaik lesznek. A tesztelés kedvéért közvetlenül szerepeltetni szeretnél egy bejegyzést a szótárban. Ez a kezdeti bejegyzés "The Best Ever" játékosnévből és 1_000_000 pontszámból álljon.

create_score_board()
// returns an object with one initial entry

2. Adj hozzá játékosokat egy eredménytáblához

Ha játékost szeretnél hozzáadni az eredménytáblához, definiáld az add_player függvényt. Ez három paramétert fogad:

  • Az első paraméter egy meglévő eredménytábla-szótár.
  • A második paraméter egy játékos neve stringként.
  • A harmadik paraméter a pontszám int típusú értékként.

A függvény egy szótárat ad vissza, amely tartalmazza az új játékost és a pontszámát.

3. Távolíts el játékosokat egy eredménytábláról

Ha egy játékos megszegi a játékterem szabályait, kézzel eltávolítják az eredménytábláról. Definiáld a remove_player függvényt, amely két paramétert vár:

  • Az első paraméter egy meglévő eredménytábla-szótár.
  • A második paraméter a játékos neve stringként.

A függvény a szótárat az eltávolított játékos nélkül adja vissza.

Ha a játékos eleve nem szerepelt a táblán, a táblával nem történik semmi, változatlanul kell visszaadni.

4. Növeld egy játékos pontszámát

Ha egy játékos újabb játékot fejez be a játékteremben, bizonyos mennyiségű pont hozzáadódik a táblán szereplő előző pontszámához. Valósítsd meg az update_score függvényt, amely három paramétert vár:

  • Az első paraméter egy meglévő eredménytábla-szótár.
  • A második paraméter annak a játékosnak a neve, akinek a pontszámát növelni kell.
  • A harmadik paraméter a pontszám, amelyet a tárolt csúcspontszámhoz szeretnél hozzáadni.

A függvény a frissített pontszámmal adja vissza a szótárat.

Ha a játékos eleve nem szerepelt a táblán, a táblával nem történik semmi, változatlanul kell visszaadni.

5. Alkalmazd a hétfői bónuszpontokat

A játékterem hétfőnként külön eredménytáblát vezet. A nap végén a táblán szereplő minden játékos 100 pluszpontot kap.

Valósítsd meg az apply_monday_bonus függvényt, amely egy eredménytáblát fogad. A függvény egy szótárat ad vissza, amelyben a bónuszpontok minden, a táblán szereplő játékoshoz hozzáadódnak.

Szerkesztés GitHubon A hivatkozás új ablakban vagy lapon nyílik meg
Gleam Exercism

Készen állsz elkezdeni a(z) Pontszámtábla feladatot?

Iratkozz fel az Exercism-re, hogy megtanuld és elsajátítsd a(z) Gleam nyelvet 33 fogalom122 feladat segítségével, valódi emberi mentorálással, mindez ingyen.