Cette page couvre Elm 0.18
Modules Joueurs
Messages Joueurs
Créez src/Players/Messages.elm :
module Players.Messages exposing (..)
type Msg
= NoOp
C'est là que nous mettrons tous les messages relatifs aux joueurs.
Modèles Joueurs
Créez src/Players/Models.elm :
module Players.Models exposing (..)
type alias PlayerId =
String
type alias Player =
{ id : PlayerId
, name : String
, level : Int
}
new : Player
new =
{ id = "0"
, name = ""
, level = 1
}
C'est là que nous définissons à quoi ressemble un enregistrement de joueur : il se compose d'un identifiant (id
), d'un nom (name
) et d'un niveau (level
).
Notez aussi la définition d'un PlayerId
: il s'agit juste d'un String
, mais cette définition nous sert à clarifier le sens des fonctions qui prendront plusieurs Int
. Ainsi, la fonction :
addPerkToPlayer : Int -> Int -> Player
sera bien plus claire écrite comme cela :
addPerkToPlayer : PerkId -> PlayerId -> Player
Mise à jour Joueurs
Créez src/Players/Update.elm :
module Players.Update exposing (..)
import Players.Messages exposing (Msg(..))
import Players.Models exposing (Player)
update : Msg -> List Player -> ( List Player, Cmd Msg )
update message players =
case message of
NoOp ->
( players, Cmd.none )
Cette fonction de mise à jour n'a pour le moment aucun effet.
C'est ce schéma de base que suivent toutes les ressources dans une grande application :
Messages
Models
Update
Players
Messages
Models
Update
Perks
Messages
Models
Update
...