Input fra brukeren. Hente tekst fra brukeren. Moduler og program. Modell, meldinger og oppdatering. Skriv ut teksten. Introduksjon

Like dokumenter
Modell, meldinger og oppdatering

Tell sekunder. Steg 0: Hva er forskjellig fra før? Introduksjon. I denne oppgaven skal vi lage vårt eget spill!

Tell sekunder. Introduksjon. Skrevet av: Teodor Heggelund. I denne oppgaven skal vi lage vårt eget spill!

Denne oppgaven viser hvordan vi kan bruke musen til å kontrollere elm-programmene våre.

"Dette skjer når jeg trykker på denne knappen" "Når jeg skriver i dette feltet, ser jeg at det andre forandrer seg"

Finn en partner å prøve spillet sammen med. Det er OK å være tre personer og bytte på hvilke to som spiller.

Steg 1: Vi starter fra toppen

HTML5. Skjemaer på nettsider. Skjemaer med. Informasjonsteknologi 1 og 2. Gløer Olav Langslet Sandvika VGS

I denne oppgaven blir du introdusert for programmeringsspråket JavaScript. Du skal gjøre den klassiske oppgaven Hei verden, med en katt.

Steg 1: Hvordan fungerer spillet?

Fraktaler og datastrukturer

I denne oppgaven forventer vi at du har vært gjennom HTML- og CSS-oppgavene så langt og/eller er kjent med <div> - og HTML5-taggene.

Denne oppgaven innfører funksjoner, og viser hvordan vi kan skrive og teste funksjoner i Ellie.

Det du skal gjøre i denne oppgava er først å sette opp bakgrunnen til spillet og så rett og slett å få firkanter til å falle over skjermen.

Steg 1: Få noe på skjermen

Om du allerede kjenner Scratch og har en Scratchbruker kan du gå videre til Steg 1.

HTML: Del inn nettsiden

ToPlayer. Steg 1: Kom i gang med metodene setup og draw. Gjør dette: Introduksjon:

Tetris. Introduksjon. Skrevet av: Kine Gjerstad Eide. Lag starten på ditt eget tetris spill!

Snurrige figurer. Steg 1: En snurrig figur. Sjekkliste. Introduksjon

1. Rullende navn, s 3 2. Smilefjes, s 5 3. Skritteller, s 7 4. Orakel, s 9 5. Stein, saks og papir, s Kompass, s 14

ToPlayer. Introduksjon: Skrevet av: Ruben Gjerstad Eide og Kine Gjerstad Eide

Hver ting i en liste kalles et element. En liste lages ved å skrive elementer inni [], med, mellom elementene:

I denne oppgaven blir du introdusert for programmeringsspråket JavaScript. Du skal gjøre den klassiske oppgaven Hei verden, med en katt.

Fraktaler og datastrukturer

Øvingsforelesning i Python (TDT4110)

I denne oppgaven blir du introdusert for programmeringsspråket JavaScript. Du skal gjøre den klassiske oppgaven Hei verden, med en katt.

Kodetime for Nordstrand barneskole

Skrevet av: Oppgaven er laget av GDG Bergen ( AU/GDGBergen/), og tilpasset Kodeklubbens format på oppgaver.

CSS: Style nettsider. Introduksjon. Skrevet av: Arve Seljebu

if-tester Funksjoner, løkker og iftester Løkker og Informasjonsteknologi 2 Læreplansmål Gløer Olav Langslet Sandvika VGS

La oss begynne enkelt. Vi vil først se hvordan vi kan flytte og snurre på en figur.

Steg 1: Canvas-elementet

Tegnespillet. Introduksjon:

Start et nytt Scratch-prosjekt. Slett kattefiguren, for eksempel ved å høyreklikke på den og velge slett.

Steg 1: Animasjons-attributtet

CSS: Animasjon Nybegynner

Husk at du skal ha to vinduer åpne. Det ene er 'Python Shell' og det andre er for å skrive kode i.

Hvor i All Verden? Del 1. Introduksjon. Steg 1: Styr et helikopter. Skrevet av: Geir Arne Hjelle

Hvor i All Verden? Del 3 Erfaren Scratch PDF

Soloball. Introduksjon. Steg 1: En roterende katt. Sjekkliste. Skrevet av: Geir Arne Hjelle

Repetisjon Novice Videregående Python PDF

og Java

PGZ - Hangman Ekspert Python Lærerveiledning

Kanter, kanter, mange mangekanter

Husk at du skal ha to vinduer åpne. Det ene er 'Python Shell' og det andre er for å skrive kode i.

Verden. Steg 1: Vinduet. Introduksjon

King Kong Erfaren Scratch PDF

La oss begynne enkelt. Vi vil først se hvordan vi kan flytte og snurre på en figur.

PXT: Micro:bit repeater

Sprettende ball Introduksjon Processing PDF

CSS: Style nettsider Nybegynner

Skilpaddekunst. Steg 1: Møt skilpadden. Sjekkliste. Introduksjon. Turtles

Kom i gang med Learn To Mod

Steg 1: En første animasjon

Kom i gang med Learn To Mod

Hei verden Introduksjon Swift PDF

praktiske eksempler DOM Document Object Model DOM og Høst 2013 Informasjonsteknologi 2 Læreplansmål Gløer Olav Langslet Sandvika VGS

Løpende strekmann Erfaren Videregående Python PDF

lagring med HTML5 Offline lagring Offline Informasjonsteknologi 2 Gløer Olav Langslet Sandvika VGS

Kanter, kanter, mange mangekanter. Introduksjon: Steg 1: Enkle firkanter. Sjekkliste. Skrevet av: Sigmund Hansen

Soloball. Steg 1: En roterende katt. Sjekkliste. Test prosjektet. Introduksjon. Vi begynner med å se på hvordan vi kan få kattefiguren til å rotere.

Halloweenimasjon Introduksjon Scratch PDF

I denne oppgaven skal vi gjøre enkle operasjoner på tekst, som å endre størrelsen på bokstavene og telle ord.

I denne oppgaven skal vi repetere litt Python-syntaks, det er en god blanding av alle tingene du har lært i Python til nå.

Her skal du lære å programmere micro:biten slik at du kan spille stein, saks, papir med den eller mot den.

Steg 1: Endre bakgrunn og finne figurer

Stjerner og galakser Nybegynner Python PDF

Introduksjon til versjonskontroll av Ola Lie

Klask-en-Muldvarp. Introduksjon. Skrevet av: Basert på MITs "MoleMash for App Inventor 2"-guide (

Skilpaddekunst. Introduksjon. Skrevet av: Geir Arne Hjelle

(X)HTML, CSS og JavaScript HTML. Det første dokumentet Grunnleggende programmering i Java Monica Strand 26.

Steg 1: Lag bildedeklarasjon

"Hjerneteppe!" er en huskelek hvor du skal huske stadig lengre rekker med bokstaver!

Hei verden. Introduksjon. Steg 1: Sette opp Xcode. Skrevet av: Andreas Amundsen

Sprettende ball. Introduksjon: Steg 1: Vindu. Sjekkliste. Skrevet av: Sigmund Hansen

Verden. Introduksjon. Skrevet av: Kine Gjerstad Eide og Ruben Gjerstad Eide

Øvingsforelesning 1 Python (TDT4110)

Her er en enkel bruksanvisning på administrasjonspanelet til hjemmesiden din på QTSystems.

Hvor i All Verden? Del 3. Introduksjon. Steg 0: Forrige gang. Sjekkliste. Skrevet av: Geir Arne Hjelle

Skrevet av: Oversatt fra microbit-micropython.readthedocs.io (

HTML: Publiser nettsiden din. Publiser nettsiden din på Internett. Github. Brukernavn.github.io

Start et nytt Scratch-prosjekt. Slett kattefiguren, for eksempel ved å høyreklikke på den og velge slett.

Tre på rad mot datamaskinen. Steg 1: Vi fortsetter fra forrige gang. Sjekkliste. Introduksjon

Verden - Del 2. Steg 0: Oppsummering fra introduksjonsoppgaven. Intro

Farger. Introduksjon. Skrevet av: Sigmund Hansen

PC-EN HUSKER ALT FOR DEG ORD FOR ORD. Skriv dagbok

Tilbakestille nettleser

Steg 1: Hente grafikk fra nettet

datatyper Hva er programmering? Variabler og Informasjonsteknologi 2 Kompetansesemål

CSS: Endre utseende og stil på tekst Nybegynner

Klask-en-Muldvarp. Steg 1: Gjøre klart spillbrettet. Sjekkliste. Introduksjon

Hvor gammel er du? Hvor gammel er du? Del 1: Skrive ut til skjerm. Gjøre selv. Skrevet av: Sindre O. Rasmussen, Kodeklubben Trondheim

Versjon 1.2 støtter bruk av Revit 2020.

Den beste måten hvis du skal endre allerede eksisterende artikler

Steg 1: Piler og knappetrykk

Hangman. Steg 1: Velg et ord. Steg 2: Gjett en bokstav. Sjekkliste. Sjekkliste. Introduksjon

5. Brukerveiledning. Experior - rich test editor for FitNesse -

Steg 1: Regneoperasjoner på en klokke

Transkript:

Input fra brukeren Erfaren Elm Introduksjon Input-felter lar brukere skrive inn tekst, tall, datoer og så videre i nettsiden vår. Informasjonen vi får fra brukerne kan vi endre, skrive ut, og kombinere med annen informasjon. Hente tekst fra brukeren Moduler og program Øverst i koden vår må vi si hvilke moduler vi skal bruke import Html exposing (Html, Attribute, beginnerprogram, text, div, input, button) import Html.Events exposing (oninput, onclick) Modell, meldinger og oppdatering Vi oppretter programmet vårt med en modell som inneholder data ( model ), et brukergrensesnitt hvor vi viser frem data ( view ) og en funksjon for oppdatering av data ( update ). Vi kommer tilbake til hvordan vi oppretter disse, skriv inn følgende i koden: beginnerprogram { "", view = view, update = update Så trenger vi å si hva slags meldinger ( Msg ) vi skal sende i programmet. Til å begynne med har vi bare én meldingstype, og det er meldingen som sendes når brukeren endrer teksten i input-feltet, her kaller vi den for Endre. type Msg = Endre String Etter det må vi skrive hva som skal skje når teksten oppdateres med en update-funksjon: Endre tekst -> tekst Nå hentes bare teksten inn, og sendes rett ut igjen. Det er kanskje litt rart, når funksjonen vår heter Endre? La oss endre teksten! For å endre teksten, kan vi bruke innebygde funksjoner i String -modulen. Skriv ut teksten Til slutt må vi ha et sted som viser teksten, da bruker vi et view: div [ [ input [ placeholder "Baklengstekst", oninput Endre [

, div [ [ text model input [ placeholder "Baklengstekst", oninput Endre [ er det som blir til et input-felt. Teksten etter placeholder sier hva som skal stå i feltet før brukeren skriver inn noe. oninput sier hva som skal skje når brukeren skriver inn tekst. I vårt tilfelle sender vi en Endre -melding som hentes inn i update -funksjonen. Når brukeren skriver inn "Teodor", sendes en melding av typen Endre "Teodor" inn i update -funksjonen. Setter vi alle delene sammen, vil koden vår se slik ut: import Html exposing (Html, Attribute, beginnerprogram, text, div, input) import Html.Events exposing (oninput) beginnerprogram { "", view = view, update = update type Msg = Endre String Endre tekst -> String.reverse tekst div [ [ input [ placeholder "Baklengstekst", oninput Endre [, div [ [ text model Kommentarer I koden over har vi skrevet og. Det har vi gjort for å gjøre koden mer strukturert og lesbar. Alle linjer som starter med to bindestreker (--) ignoreres i Elm. Dette er hva vi kaller kommentarer! Kommentarer er ment for menneskene som leser koden, enten deg selv eller de du samarbeider med. Lag en setning Ny modell Nå skal vi lagre en setning i tillegg til teksten som brukeren skriver inn. Da må vi endre modellen vår. Den nye modellen skal se slik ut: { tekst = "", setning = "" Her kan vi se at modellen inneholder to tekster, som er tomme når man åpner nettsiden. Oppdater også programmet slik at vi bruker den nye modellen:

beginnerprogram { model, view = view, update = update Oppdater Nå skal vi gjøre det mulig å lagre baklengstekstene i en setning med mellomrom mellom hvert ord. Da må vi endre update slik at den kan ta inn tekst og legge den til i setning i modellen vår: type Msg = Endre String LeggTil String Endre nytekst -> { model tekst = String.reverse nytekst LeggTil nytekst -> { model setning = model.setning ++ " " ++ nytekst Msg forteller oss hva slags input-meldinger vi kan ta imot fra nettsiden vår. Tidligere hadde vi bare Endre -funksjonen for når noen skriver inn tekst, nå har vi også LeggTil -funksjonen som gjør det mulig å legge til teksten i en setning. Vi må også oppdatere update med hva som skal skje når den får inn melding av typen LeggTil. Om vi ikke gjør det, vil Elm gi beskjed: Ny knapp Nå mangler vi bare en knapp for å legge til tekst i setningen: div [ [ input [ placeholder "Baklengstekst", oninput Endre [, button [ onclick (LeggTil model.tekst) [ text "Legg til", div [ [ text model.tekst, div [ [ text model.setning onclick bestemmer hva som skal skje når brukeren trykker på knappen. Her kaller vi funksjonen LeggTil og sender med teksten som ligger i modellen vi lagde tidligere. Programmet vårt ser slik ut med den nye knappen: import Html exposing (Html, Attribute, beginnerprogram, text, div, input, button) import Html.Events exposing (oninput, onclick) beginnerprogram { model, view = view, update = update

{ tekst = "", setning = "" type Msg = Endre String LeggTil String Endre nytekst -> { model tekst = String.reverse nytekst LeggTil nytekst -> { model setning = model.setning ++ " " ++ nytekst div [ [ input [ placeholder "Baklengstekst", oninput Endre [, button [ onclick (LeggTil model.tekst) [ text "Legg til", div [ [ text model.tekst, div [ [ text model.setning Ting du kan prøve Utvid nettsiden med en knapp som snur alle ordene i setningen tilbake til rett vei Tekst kan manipuleres med mange forskjellige innebygde funksjoner som String.repeat (gjenta en tekst), String.toUpper (gjør alle BOKSTAVENE TIL STORE BOKSTAVER) Se full liste av hva man kan gjøre med tekst i dokumentasjonen (på engelsk) Fargevelger Det finnes mange forskjellige type input-felter. Til nå har vi sett på tekst-input, men vi har også muligheten til å bare ta inn tall. I denne oppgaven skal vi lage en fargevelger. Farger på nettsider defineres som oftest i grader av rød, grønn og blå. Hver farge har en verdi fra 0 til 255. Vi skal lagre tre verdier i modellen vår, rød, grønn og blå i feltene rod, gronn og blaa. Legg til det første feltet i modellen vår, rod : import Html exposing (Html, Attribute, beginnerprogram, text, div, input) import Html.Events exposing (oninput) beginnerprogram { model, view = view, update = update { rod = "" Lagre rødstyrken fra en input, men begrens rekkevidden fra 0 til 255 med Html.Attributes.min og Html.Attributes.max :

input [ type_ "number", Html.Attributes.min "0", Html.Attributes.max "255" [ Vi trenger også å håndtere bruker-input, slik som i forrige oppgave Legg til koden som mangler: import Html exposing (Html, Attribute, beginnerprogram, text, div, input) import Html.Events exposing (oninput) beginnerprogram { model, view = view, update = update { rod = "" type Msg = EndreRod String div [ style [("height", "100%"), ("background", "rgb(255, 255, 255)") [ input [ type_ "number", Html.Attributes.min "0", Html.Attributes.max "255" [, div [ [ text model.rod Legg til input-felter for de to andre fargene, og meldingene EndreGronn og EndreBlaa Oppdater rgb(255, 255, 255) slik at den bruker verdiene for rød, grønn og blå fra modellen vår (hint: slå sammen tekst) Bytt ut number-input med range, og se hva som skjer! Innebygd fargevelger

Chrome, Edge, Firefox og Opera er nettlesere som kommer med innebygd fargevelger. Fargevelger er også en type inputfelt. Lag en ny type input på nettsiden, som bruker fargevelger-type istedenfor range (hint: på engelsk er farge color ) Bytt ut verdien for background med fargen fra fargevelgeren (husk å legge til fargen i modellen og i update ) Lisens: CC BY-SA 4.0 Forfatter Alexander Perry