ייצור מספרים אקראיים

Elm:
ייצור מספרים אקראיים

איך לעשות:

הטבע הפונקציונלי הטהור של Elm אומר שאי אפשר לייצר מספרים אקראיים ישירות כפי שאולי תעשו בשפות פקודתיות. במקום זאת, אתם משתמשים במודול Random בשילוב עם פקודות. הנה דוגמה בסיסית שמייצרת מספר שלם אקראי בין 1 ל-100.

ראשית, התקינו את מודול Random עם elm install elm/random. לאחר מכן ייבאו אותו לקובץ Elm שלכם, יחד עם המודולים הנדרשים של HTML ואירועים, כך:

src/Main.elm

module Main exposing (..)

import Browser
import Html exposing (Html, button, text, div)
import Html.Events exposing (onClick)
import Random

כדי שדוגמה זו תהיה עצמאית, תוכלו להוסיף זירוז קוד זה:

main =
  Browser.element { init = init, update = update, subscriptions = subscriptions, view = view }

init : () -> (Model, Cmd Msg)
init _ =
  (Model 0, Cmd.none)

subscriptions : Model -> Sub Msg
subscriptions _ =
  Sub.none

לאחר מכן, הגדירו פקודה לייצר מספר אקראי. זה כולל הקמת טיפוס Msg לטיפול במספר האקראי לאחר יצירתו, Model לאחסון שלו, ופונקציית עדכון לקשר הכל יחד.

type Msg
    = Generate
    | NewRandom Int

type alias Model = { randomNumber : Int }

update : Msg -> Model -> (Model, Cmd Msg)
update msg model =
    case msg of
        Generate ->
            ( model, Random.generate NewRandom (Random.int 1 100) )

        NewRandom number ->
            ( { model | randomNumber = number }, Cmd.none )

כדי להפעיל יצירת מספר, אתם שולחים הודעת Generate, לדוגמה, דרך כפתור בתצוגה שלכם:

view : Model -> Html Msg
view model =
    div []
        [ div [] [ text ("מספר אקראי: " ++ String.fromInt model.randomNumber) ]
        , button [ onClick Generate ] [ text "צור" ]
        ]

כאשר לוחצים על הכפתור “צור”, יוצג מספר אקראי בין 1 ל-100.

גישה פשטנית זו יכולה להתאים ולהתרחב, תוך שימוש בפונקציות נוספות במודול Random כדי לייצר מספרים עשרוניים אקראיים, רשימות, או אפילו מבני נתונים מורכבים מבוססי סוגים מותאמים אישית, ומספקת מגרש משחק נרחב להוספת אקראיות ליישומי Elm שלכם.

המדריך של Elm נכנס לפרטים רבים יותר. יש בו גם דוגמה לגלגול קוביה בעלת שש פאות.