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

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

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

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

Modell, meldinger og oppdatering

Steg 1: Hvordan fungerer spillet?

Steg 1: Få noe på skjermen

Fraktaler og datastrukturer

Fraktaler og datastrukturer

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

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

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

I denne oppgaven skal vi gi en enkel innføring til klasser og objekter (ordene forklares senere i teksten).

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

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

Steg 1: Animasjons-attributtet

PXT: Micro:bit repeater

Steg 0: Installere Pygame Zero

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

Steg 1: Piler og knappetrykk

7-Segment Display. Introduksjon. Steg 1: Finn frem utstyr. Til denne oppgaven trenger du. Skrevet av: Martin Ertsås & Morten Minde Neergaard

Ping pong. Introdusjon: Steg 1: Sprettende ball. Sjekkliste. Skrevet av: Torbjørn Vik Lunde

Steg 1: Felix har forsvunnet!

PXT: Tikkende bombe. Introduksjon. Steg 1: Vi starter spillet. Skrevet av: Kolbjørn Engeland

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

Steg 1: Opprette spillskjerm

Sprettende ball Introduksjon Processing PDF

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

Uendelig bakke. Introduksjon. Skrevet av: Kine Gjerstad Eide

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

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

På tide med et nytt spill! I dag skal vi lage tre på rad, hvor spillerne etter tur merker ruter med X eller O inntil en av spillerne får tre på rad.

Kan micro:biten vår brukes som et termometer? Ja, den har faktisk en temperatursensor!

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

Steg 1: En første animasjon

Steg 1: Katten og fotballbanen

Logo med FXML. Introduksjon. Skrevet av: Hallvard Trætteberg

Steg 1: Vi starter fra toppen

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

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

PXT: Himmelfall. Introduksjon. Skrevet av: Helene Isnes og Julie Revdahl

I dag skal vi lage et nyttig spill, nemlig et spill som hjelper oss å lære andre ting. Vi skal få hjelp til å lære gangetabellen!

Steg 1: Canvas-elementet

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

Steg 1: Regneoperasjoner på en klokke

HTML: Legg til lyd og video

Farger. Introduksjon. Skrevet av: Sigmund Hansen

PXT: Det regner mat! Introduksjon. Steg 1: Grunnlag. Sjekkliste. Skrevet av: Helene Isnes

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

Start et nytt PXT-prosjekt, for eksempel ved å gå til makecode.microbit.org (

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

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

Lærerveiledning - Straffespark

Bygge en pyramide. Introduksjon. Steg 1: Lage en ny mod. Sjekkliste. Skrevet av: Pål G. Solheim

Løpende strekmann Erfaren Videregående Python PDF

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

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

Steg 1: Bli kjent med spillet

PXT: Komponer en melodi

Steg 1: Husker du skilpadden?

CSS: Animasjon Nybegynner

PXT: Bjelleklang. Introduksjon. Skrevet av: Kolbjørn Engeland, Julie Revdahl

Kanter, kanter, mange mangekanter

Asteroids. Introduksjon. Oversikt over prosjektet. Skrevet av: Geir Arne Hjelle

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

Steg 1: Klargjør og importerer bilioteker

Steg 1: Endre bakgrunn og finne figurer

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

Hash-funksjoner. Introduksjon. Steg 1: Strekkoder. Eksempel. Skrevet av: Martin Strand

I denne oppgaven skal du lære hvordan du kan flytte rundt på elementer og gjemme elementene bak andre elementer ved hjelp av CSS.

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

Steg 1: Tekst på flere linjer

Skilpaddekunst. Introduksjon. Skrevet av: Geir Arne Hjelle

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

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å.

Breakout. Introduksjon. Oversikt over prosjektet. Skrevet av: Geir Arne Hjelle og Martin Lie

PXT: Spå fremtiden med bilder

Steg 1: Installere programvaren

Donkey Kong. Introduksjon. Oversikt over prosjektet. Skrevet av: Geir Arne Hjelle

PXT: Flasketuten peker på

Først må vi få datamaskinen til å velge et tilfeldig ord, så la oss begynne. Lagre programmet ditt og kjør det. Hvilket ord skrives ut?

For å sjekke at Python virker som det skal begynner vi med å lage et kjempeenkelt program. Vi vil bare skrive en enkel hilsen på skjermen.

JS: Grunnleggende JavaScript

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

Steg 1: Rest etter divisjon

Lærerveiledning - Snake

Legg bort skilpaddene dine, i dag skal vi lære hvordan vi kan sende hemmelige beskjeder!

Hoppehelt. Introduksjon. Steg 1: Streken. Sjekkliste. Skrevet av: Geir Arne Hjelle

PXT: Hermegåsa. Introduksjon. Skrevet av: Felix Bjerke og Tjerand Silde

Lærerveiledning - Pong

Lærerveiledning - Flagg

PXT: Det regnar mat! Introduksjon. Steg 1: Grunnlag. Sjekkliste. Skrevet av: Helene Isnes. Oversatt av: Stein Olav Romslo

Steg 1: Vi roterer en likebeint trekant

Sprettball. Introduksjon. Skrevet av: Geir Arne Hjelle

Snøballkrig. Introduksjon. Steg 1: En snøballkaster. Skrevet av: Geir Arne Hjelle

Lærerveiledning - Snøballkrig

Steg 1: Lag bildedeklarasjon

Straffespark Introduksjon Scratch Lærerveiledning

Lærerveiledning - Snøballkrig

Transkript:

Kontroller med musen Skrevet av: Teodor Heggelund Kurs: Elm Tema: Tekstbasert, Nettside Fag: Programmering, Teknologi Klassetrinn: 8.-10. klasse, Videregående skole Introduksjon Denne oppgaven viser hvordan vi kan bruke musen til å kontrollere elm-programmene våre. Steg 1: Vise en posisjon Vi starter ut med å vise en sirkel på en gitt posisjon. Her må vi kombinere to ting som har vært i tidligere oppgaver: Vise en sirkel med musen (Tegning med SVG) Bruke Html.program i stedet for Html.beginnerProgram (Tell sekunder) Vi trenger Html.program fordi vi skal lytte på musebevegelser på samme måte som vi tidligere lyttet på tid. Først setter vi opp SVG til å vise en ball vi kan styre posisjonen til:

import Svg exposing (svg, circle, rect) import Svg.Attributes exposing (width, height, viewbox, cx, cy, r, fil l, x, y, width, height) import Mouse exposing (Position) p = Position 10 20 model = { position = p view model view model = svg [ circle [ cx (tostring model.position.x), cy (tostring model.position.y), r "10", fill "blue" ] [ ] ] Endre tallene 10 og 20 som inngår i verdien p. Hva gjør det første tallet? Hva gjør det andre tallet? Steg 2: Bruke Html.program Her er et eksempel på hva Html.program trenger som input: Html.program { init = init, view = view, update = update, subscriptions = subscriptions

init er tilstanden til programmet vårt når vi starter opp. view er hvordan vi viser tilstanden til programmet vårt. update er hvordan tilstanden til programmet vårt reagerer på nye hendelser. subscriptions er hvilke hendelser programmet vårt skal reagere på. Verdien vi kalte p i forrige avsnitt kan vi bruke direkte som init. view har vi allerede skrevet. La oss fylle inn update og subscriptions som ikke gjør noe. Vi legger inn en variant hvor update gir tilbake modellen uendret, og subscriptions ignorerer alt som kommer inn:

import Svg exposing (svg, circle, rect) import Svg.Attributes exposing (width, height, viewbox, cx, cy, r, fil l, x, y, width, height) import Mouse exposing (Position) import Html p = Position 10 20 init = ( { position = p, Cmd.none ) Html.program { init = init, view = view, update = update, subscriptions = subscriptions view model = svg [ circle [ cx (tostring model.position.x), cy (tostring model.position.y), r "10", fill "blue" ] [ ] ] type Msg = NoChange type alias Model = { position : Position update : Msg -> Model -> (Model, Cmd Msg) update msg model = (model, Cmd.none)

subscriptions model = Sub.batch - [ ] Steg 3: Koble på musen Vi kobler på mus:

import Svg exposing (svg, circle, rect) import Svg.Attributes exposing (width, height, viewbox, cx, cy, r, fil l, x, y, width, height) import Mouse exposing (Position) import Html p = Position 10 20 init = ( { position = p, Cmd.none ) Html.program { init = init, view = view, update = update, subscriptions = subscriptions view model = svg [ circle [ cx (tostring model.position.x), cy (tostring model.position.y), r "10", fill "blue" ] [ ] ] type Msg = MouseAt Position type alias Model = { position : Position update : Msg -> Model -> (Model, Cmd Msg) update msg model = case msg of

MouseAt pos -> ( { model position = pos, Cmd.none) subscriptions model = Sub.batch [Mouse.moves MouseAt] Her er det noe rart! Ballen er ikke samme sted som pekeren. Hvorfor? Prøv å endre viewboxen i SVG: Hvordan henger dette sammen? Lisens: CC BY-SA 4.0 (http://creativecommons.org/licenses/by-sa/4.0/deed)