小编Ton*_*nyM的帖子

如何在这个榆树效果示例中添加第二个骰子?

我是Elm的新手并且一直在查看以下示例(请注意,这是在较新的0.17架构下,其中Action现在是Command):http: //elm-lang.org/examples/random

在示例中添加第二个骰子有一个后续挑战,因此只需单击该按钮就会为每个骰子滚动一个新值.我的想法是改变模型以保持两个单独的值,每个模具一个,ala

type alias Model =
       { dieFace1 : Int
       , dieFace2 : Int
       }
Run Code Online (Sandbox Code Playgroud)

这工作正常,直到我到达更新块.我不知道如何更新随机数生成器来创建两个值.这个功能对我来说有点混乱.

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)
Run Code Online (Sandbox Code Playgroud)

Random.generate函数的文档有点轻 -

生成:(a - > msg) - >生成器a - > Cmd msg

创建一个将生成随机值的命令.

这甚至是处理两个骰子的正确方法,还是有更好的方法?我是榆树诺布,请你好:)

elm

17
推荐指数
1
解决办法
771
查看次数

标签 统计

elm ×1