Ich bin neu in Elm und wurde in dem folgende Beispiel suche (beachten Sie diese unter der neueren 0,17 Architektur ist, wo Aktion jetzt ist Command): http://elm-lang.org/examples/randomWie füge ich diesem Beispiel für Ulmeneffekte einen zweiten Würfel hinzu?
Es ist eine Follow-up Herausforderung darin, eine zweite Düse hinzuzufügen das Beispiel, so dass ein einzelner Klick auf den Button einen neuen Wert für jeden Würfel wirft. Meine Idee ist es, das Modell zu ändern zwei getrennte Werte zu halten, einen für jeden sterben, ala
type alias Model =
{ dieFace1 : Int
, dieFace2 : Int
}
Das funktioniert gut, bis ich zum Update-Block erhalten. Ich bin mir nicht sicher, wie ich den Zufallszahlengenerator aktualisieren soll, um zwei Werte zu erzeugen. Die Funktion ist für mich etwas verwirrend.
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)
Die Dokumentation für die Random.generate Funktion ist ein wenig Licht -
erzeugen: (a -> msg) -> Generator a -> Cmd msg
Bewirkt dass erzeugt zufällige Werte.
Ist das sogar der richtige Ansatz, um zwei Würfel zu bearbeiten, oder gibt es einen besseren Weg? Ich bin ein Ulm noob, bitte sei nett :)
Super, danke für die Zeiger auf den richtigen Teil der Dokumentation, auch. Es sieht so aus, als würde die Anzahl der Würfelwürfe eine Zufallsliste von Random.ints parametrisieren, um die Anzahl der gewünschten Würfel zu enthalten, denke ich. Danke für die Antwort und die neuen Hausaufgaben. – TonyM
Danke Tschad für die Erklärung im Detail. Lief wie am Schnürchen. Ich habe einen Grund für die faulen: https://gist.github.com/dotcs/3b3626cfbe5b0744134f7af8edcb32c5 – dotcs
Wie sieht die Lösung aus, wenn wir nicht erwarten, ein Tupel von 'Int', aber _zwei_' Int' Parameter? I.e. Wenn "Msg" definiert ist als "NewFaces Int Int", wie vom OP erkannt? –