Steg 1: Klargjør og importerer bilioteker

Like dokumenter
Steg 1: Klargjør og importerer bilioteker

Mattespill Nybegynner Python PDF

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.

Løpende strekmann Erfaren Videregående Python PDF

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

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

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

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

Øvingsforelesning i Python (TDT4110)

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

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

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

Hvor i All Verden? Del 3 Erfaren Scratch PDF

Verden. Steg 1: Vinduet. Introduksjon

Hangman. Level. Introduksjon

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

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

Pong. Oversikt over prosjektet. Steg 1: En sprettende ball. Plan. Sjekkliste. Introduksjon

Skilpaddetekst. Steg 1: Tekst på flere linjer. Sjekkliste. Introduksjon

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

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

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

PGZ - Hangman Ekspert Python Lærerveiledning

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

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

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

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

Rosetta og Philae. Steg 1: Skilpadden blir et romskip. Sjekkliste. Introduksjon

Steg 0: Installere Pygame Zero

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

Steg 1: Katten og fotballbanen

Straffespark Introduksjon Scratch Lærerveiledning

King Kong Erfaren Scratch PDF

Repetisjon Novice Videregående Python PDF

Verden - Del 2. Intro. Skrevet av: Kine Gjerstad Eide

Skilpaddefraktaler Erfaren Python PDF

Steg 1: Tekst på flere linjer

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

Snake Expert Scratch PDF

Gangemesteren Nybegynner Scratch PDF

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

TDT Datateknologi, programmeringsprosjekt

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.

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

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.

Steg 1: Lag en figur som bytter drakt

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?

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

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

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

Skilpaddekunst. Introduksjon. Skrevet av: Geir Arne Hjelle

Bli Kjent med Datamaskinen Introduksjon ComputerCraft PDF

Asteroids. Oversikt over prosjektet. Steg 1: Enda et flyvende romskip. Plan. Sjekkliste. Introduksjon

Bygg et Hus. Steg 1: Prøv selv først. Sjekkliste. Introduksjon. Prøv selv

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

Stjerner og galakser Nybegynner Python PDF

Snøballkrig Ekspert Scratch Lærerveiledning

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

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

Tryll bort heksa. Introduksjon. Sjekkliste Følg instruksjonene på lista. Huk av etter hvert. Test. Lagre 2/8

3. Introduksjon til prosjektet Hringr. Scratch fra scratch Enkel programmering for nybegynnere

Tegnespillet. Introduksjon:

Steg 1: Hente grafikk fra nettet

INF109 - Uke 1a

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

Mesteparten av kodingen av Donkey Kong skal du gjøre selv. Underveis vil du lære hvordan du lager et enkelt plattform-spill i Scratch.

Norgestur. Introduksjon. Steg 1: Et norgeskart. Sjekkliste. Skrevet av: Geir Arne Hjelle

Skilpadder hele veien ned. Steg 1: Tegn et fjell. Sjekkliste. Introduksjon. Hent frem skilpaddene dine, åpne IDLE, det er på tide å tegne igjen.

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

Norgestur. Introduksjon. Steg 1: Et norgeskart. Sjekkliste. Scratch. Skrevet av: Geir Arne Hjelle

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

Sprettball Erfaren ComputerCraft PDF

Enarmet banditt Nybegynner Scratch Lærerveiledning

Kan micro:biten vår brukes som en terning? Ja, det er faktisk ganske enkelt!

Brukermanual for TrackGrabber

Bygge en pyramide. Steg 1: Lage en ny mod. Sjekkliste. Introduksjon

Felix og Herbert. Felix og Herbert. Introduksjon

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

Kanter, kanter, mange mangekanter

Tegneprogram Journeyman Scratch PDF

Uendelig bakke. Introduksjon. Skrevet av: Kine Gjerstad Eide

Steg 1: Lag bildedeklarasjon

Forberedelser: Last ned bildefiler

Steg 1: Rest etter divisjon

Sprettende ball Introduksjon Processing PDF

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

Steg 1: Husker du skilpadden?

Steg 1: Regneoperasjoner på en klokke

Hvor i All Verden? Del 2 Erfaren Scratch PDF

Hei verden Introduksjon Swift PDF

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

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

Bursdag i Antarktis Nybegynner Scratch PDF

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

Steg 1: Streken. Steg 2: En hoppende helt. Sjekkliste. Sjekkliste. Introduksjon. Hei der! Hoppehelt

Steg 1: Piler og knappetrykk

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: Lag bakken og få den til følge med

Transkript:

Fargespill Erfaren Python Introduksjon Hjernen vår lar seg lett lure, og det kan av og til være vanskelig for den å tolke forskjellig inntrykk samtidig. I det spillet vi nå skal lage vil du både få testet hjernen og skrivehastigheten. Vi skal lage et fargespill! Steg 1: Klargjør og importerer bilioteker I dette spillet skal vi lage et grafisk brukergrensesnitt (et GUI). Til dette bruker vi et bibliotek som heter tkinter. Vi trenger også hjelp for å generere tilfeldige tall. Åpne IDLE, og lag en ny fil. La oss importere bibliotekene. Skriv inn følgende kode: Vi vil etterhvert bruke boxtaver som æøå. For å gjøre dette må vi legge til noe øverst i koden vår. Gjør om koden din slik at den ser slik ut: #!/usr/bin/python # -*- coding: UTF-8 -*- Kommentering av kode

For å gjøre koden lettere å forstå kan vi legge inn kommentarer som ikke påvirker programmet. Dette gjør vi ved å skrive inn tegnet #. All tekst som kommer på samme linje etter dette tegnet vil bli ignorert av datamaskinen, men er veldig fint for å hjelpe oss mennesker. Heretter bruker jeg dette for å forklare hva som skjer, du trenger ikke å skrive inn kommentarene hvis du ikke vil! Steg 2: Lage grafisk brukergrensesnitt Nå skal vi begynne på GUI. Les kommentarene for å forstå hva som skjer. Vi skal begynne med å lage hovedvinduet. Dette kaller vi root Vi tilkaller funksjoner fra tkinter biblioteket for å hjelpe oss med dette. Legg til dette nederst i koden: root = tkinter.tk() root.title("fargespill") root.geometry("475x300") root.mainloop() Nå har vi laget hovedvinduet. La oss legge til noen felter med tekst. Vi kommer tilbake til hva disse skal fylles med etterhvert, nå skal vi bare definere områdene. Gjør om koden din slik at den ser ut som dette: #!/usr/bin/python # -*- coding: UTF-8 -*- root = tkinter.tk() root.title("fargespill") root.geometry("475x300") # Lager en label kalt instructions med tekst: instructions = tkinter.label(root, text="skriv inn fargen PÅ ordet, ikke selve ordet!", font=('helvetica', 15)) instructions.pack() points_label = tkinter.label(root, text="trykk enter for å starte.", font=('helvetica', 30)) points_label.pack() label = tkinter.label(root, font=('helvetica', 100)) label.pack() box = tkinter.entry(root) root.mainloop() I koden over skjer det mye, la oss se på noen deler tkinter.label lager et felt i vinduet vårt. I disse feltene kan vi putte blant annet tekst eller tall..pack forteller programmet vårt at den skal "tegne" disse feltene slik at de synes for oss, og hvor den skal tegne de. tkinter.entry(root) lager et tekstfelt som spilleren kan skrive i.

Test prosjektet Kjør koden Viser den et vindu? Det er fortsatt ganske lite som skjer, la oss gå videre. Steg 3: Vi lager tidskontroll Vi skal nå få programmet vårt til å telle 30 sekunder. Vi lager en funksjon countdown() som tar seg av dette. Legg til dette i programmet ditt: def countdown(): global time_left # Tell ned ett sekund time_left = time_left - 1 time_label.config(text="tid igjen: " + str(time_left)) # Denne kjører automatisk countdown() igjen etter 1 sekund time_label.after(1000, countdown) else: time_label.pack_forget() label.pack_forget() box.pack_forget() Denne funksjonen jobber på en global variabel time_left, vi må lage den. Programmet ditt skal nå se slik ut:

#!/usr/bin/python # -*- coding: UTF-8 -*- time_left = 30 def countdown(): global time_left time_left = time_left - 1 time_label.config(text="tid igjen: " + str(time_left)) time_label.after(1000, countdown) else: time_label.pack_forget() label.pack_forget() box.pack_forget() root = tkinter.tk() root.title("fargespill") root.geometry("475x300") # Lager en label kalt instructions med tekst: instructions = tkinter.label(root, text="skriv inn fargen PÅ ordet, ikke selve ordet!", font=('helvetica', 15)) instructions.pack() points_label = tkinter.label(root, text="trykk enter for å starte.", font=('helvetica', 30)) points_label.pack() label = tkinter.label(root, font=('helvetica', 100)) label.pack() box = tkinter.entry(root) root.mainloop() Steg 4: Definere fargene. Nå må vi definere fargene som programmet skal bruke. Fargene legger vi til som en liste. Legg til denne koden under colours_eng = ['Red', 'Blue', 'Green', 'Pink', 'Black', 'Yellow', 'Orange', 'Purple', 'Brown'] Siden vi vil at programmet vårt skal skrive ut de norske ordene, lager vi en liste til, med de norske navnene. Legg til dette rett under den andre listen. colours = ['Rød', 'Blå', 'Grønn', 'Rosa', 'Svart', 'Gul', 'Oransje', 'Lilla', 'Brun'] Vi må også lage en variabel for å holde orden på hvor mange poeng spilleren har. Samt en variabel for å holde nummeret på fargene som skal vises. Disse settes til tilfeldig tall etterpå. Legg til disse over time_left -variabelen.

# Brukes til å velge tilfeldig farge colour = 0 points = 0 Nå må vi lage funksjonen som genererer en tilfeldig farge og viser denne til spilleren. Her er det mye som skjer, så vi skal ta det stegvis. Først definerer vi funksjonen og legger til variablene. Legg denne funksjonen over countdown() : def next_color(): # Henter inn globale variabler: global points global colour Så skal vi sette tekstboxen brukeren kan skrive i aktiv hvis det er tid igjen på klokka. Legg til denne inne i next_color() : Så vil vi sammenligne det brukeren skriver inn i boxen med den norske fargelisten vår..lower() gjør om alt til små bokstaver, slik at man ikke får feil om man skriver "Rød" i steden for "rød". Legg til dette under: # Hvis det spilleren skrev er riktig farge. if box.get().lower() == colours[colour].lower(): # Pluss på ett points points = points + 1 Nå vil vi slette det som brukeren skrev inn. Slik at alt er klart for neste runde. Legg til dette under points = points + 1 : box.delete(0, tkinter.end) Nå skal vi få tkinter til å displaye farge og tekst. Til dette bruker vi randint() funksjonen. Den lager et tilfeldig tall mellom to ytterpunkter. Lag denne under box.delete(0, tkinter.end) # Lager tilfeldig tall mellom 0 og 8 colour = randint(0, len(colours)-1) # Lager tilfeldig tall til teksten. text = randint(0, len(colours)-1) Nå gjenstår det bare å vise teksten og fargen i vinduet. Vi oppdaterer feltene, og legger til en poenglabel. Funksjonen skal nå se slik ut: def next_color(): global points global colour if box.get().lower() == colours[colour].lower(): points = points + 1 box.delete(0, tkinter.end) colour = randint(0, len(colours)-1) text = randint(0, len(colours)-1) # Oppdaterer labels label.config(fg=str(colours_eng[colour]), text=str(colours[text])) points_label.config(text="poeng: " + str(points))

Test prosjektet Kjør koden, får du noen feilmeldinger? Hvis du får feilmeldinger prøv å se etter hvor de er og fiks de. Steg 5: La oss starte programmet! Det skjer fortsatt lite i spillet vårt, men det er fordi vi ikke har startet selve spilldelen. Det skal vi gjøre nå! Vi lager en funksjon som starter spillet. Legg til denne funksjonen i programmet: def start_game(event): if time_left == 30: countdown() next_color() Siste steg er å kjøre denne funksjonen når spilleren trykker enter. Legg til dette rett over root.mainloop : # Kjører funksjonen start_game() når enter trykkes root.bind('<return>', start_game) box.pack() Programmet ditt skal nå se slik ut: #!/usr/bin/python # -*- coding: UTF-8 -*- colours_eng = ['Red', 'Blue', 'Green', 'Pink', 'Black', 'Yellow', 'Orange', 'Purple', 'Brown'] colours = ['Rød', 'Blå', 'Grønn', 'Rosa', 'Svart', 'Gul', 'Oransje', 'Lilla', 'Brun'] colour = 0 points = 0 time_left = 30 def start_game(event): if time_left == 30: countdown() next_color() def next_color(): global points global colour if box.get().lower() == colours[colour].lower(): points = points + 1

points = points + 1 box.delete(0, tkinter.end) colour = randint(0, len(colours)-1) text = randint(0, len(colours)-1) label.config(fg=str(colours_eng[colour]), text=str(colours[text])) points_label.config(text="poeng: " + str(points)) def countdown(): global time_left time_left = time_left - 1 time_label.config(text="tid igjen: " + str(time_left)) time_label.after(1000, countdown) else: time_label.pack_forget() label.pack_forget() box.pack_forget() root = tkinter.tk() root.title("fargespill") root.geometry("475x300") instructions = tkinter.label(root, text="skriv inn fargen PÅ ordet, ikke selve ordet!", font=('helvetica', 15)) instructions.pack() points_label = tkinter.label(root, text="trykk enter for å starte.", font=('helvetica', 30)) points_label.pack() time_label = tkinter.label(root, text="tid igjen: " + str(time_left), font=('helvetica', 30)) time_label.pack() label = tkinter.label(root, font=('helvetica', 100)) label.pack() box = tkinter.entry(root) root.bind('<return>', start_game) box.pack() root.mainloop() Test prosjektet Starter spillet og countdownen når du trykker enter? Får du ny farge etter du har skrevet inn svar? Får du +1 points når du skriver riktig farge på ordet? Slutter programmet etter 30 sek?

Lisens: CC BY-SA 4.0 Forfatter: Steffen Granberg Kilde: Oppgaven er basert på kode fra usingpython.com. Sjekk der for flere kule ideer!