【发布时间】:2016-09-10 16:17:35
【问题描述】:
我是 Elm 的新手,并且一直在查看以下示例(请注意,这是在较新的 0.17 架构下,其中 Action 现在是 Command): http://elm-lang.org/examples/random
有一个后续挑战是在示例中添加第二个骰子,以便单击按钮为每个骰子滚动一个新值。我的想法是更改模型以保存两个单独的值,每个骰子一个,ala
type alias Model =
{ dieFace1 : Int
, dieFace2 : Int
}
这工作正常,直到我到达更新块。我不确定如何更新随机数生成器以创建两个值。这个功能让我有点困惑。
type Msg
= Roll
| NewFace Int Int
update : Msg -> Model -> (Model, Cmd Msg)
update msg model =
case msg of
Roll ->
**(model, Random.generate NewFace (Random.int 1 6))** <-- not sure what to do here
NewFace newFace1 newFace2 ->
(Model newFace1 newFace2, Cmd.none)
Random.generate 函数的文档有点简单 -
generate : (a -> msg) -> Generator a -> Cmd msg
创建一个将生成随机值的命令。
这甚至是处理两个骰子的正确方法,还是有更好的方法?我是榆树菜鸟,请善待:)
【问题讨论】:
标签: elm