-
Notifications
You must be signed in to change notification settings - Fork 358
Closed
Description
Raised this question on stack overflow and it was suggested to create a bug report here.
http://stackoverflow.com/questions/37522369/elm-random-number-on-init-strange-behaviour
I've been working through the examples here:
http://guide.elm-lang.org/architecture/effects/random.html
And what I'm trying to do with the dice is to get to generate a D6 when then component is created.
module Components.DiceRoller exposing (Model, Msg, init, update, view)
import Html exposing (..)
import Html.App as Html
import Html.Attributes exposing (..)
import Html.Events exposing (..)
import Random
import String exposing (..)
main =
Html.program
{ init = init
, view = view
, update = update
, subscriptions = subscriptions
}
-- MODEL
type alias Model =
{ dieFace : Int
}
init : ( Model, Cmd Msg )
init =
( Model 0, (Random.generate NewFace (Random.int 1 6)) )
-- UPDATE
type Msg
= NewFace Int
update : Msg -> Model -> ( Model, Cmd Msg )
update msg model =
case msg of
NewFace newFace ->
( Model newFace, Cmd.none )
-- SUBSCRIPTIONS
subscriptions : Model -> Sub Msg
subscriptions model =
Sub.none
-- VIEW
dieFaceImage : Int -> String
dieFaceImage dieFace =
concat [ "/src/img/40px-Dice-", (toString dieFace), ".svg.png" ]
view : Model -> Html Msg
view model =
let
imagePath =
dieFaceImage model.dieFace
in
div []
[ img [ src imagePath ] []
, span [] [ text imagePath ]
]
However if I use 1 6 as the random min max, I only get 1 different value per minute. This only happens on init, it's fine in the orig example where it a UI action.
halfzebra, francisdb and connec
Metadata
Metadata
Assignees
Labels
No labels