Mattespill Nybegynner Python PDF



Like dokumenter
Bli Kjent med Datamaskinen Introduksjon ComputerCraft PDF

Repetisjon Novice Videregående Python PDF

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

Skilpaddefraktaler Erfaren Python PDF

Sprettball Erfaren ComputerCraft PDF

Hvor i All Verden? Del 3 Erfaren Scratch PDF

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

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

Kanter, kanter, mange mangekanter

Steg 1: Vår første datamaskin

Sprettende ball Introduksjon Processing PDF

Snake Expert Scratch PDF

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

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

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

Gangemesteren Nybegynner Scratch PDF

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.

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

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.

Bygg et Hus. Introduksjon. Steg 1: Prøv selv først. 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å.

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

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

Hangman. Level. Introduksjon

Utførelse av programmer, metoder og synlighet av variabler i JSP

JS: Grunnleggende JavaScript Nybegynner

Hendelser Apprentice ComputerCraft PDF

Bursdag i Antarktis Nybegynner Scratch PDF

Stjerner og galakser Nybegynner Python PDF

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

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

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

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

I dag skal vi ved hjelp av ganske enkel Python-kode finne ut om det er mulig å tjene penger på å selge og kjøpe en aksje.

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

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

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?

IN1000 Obligatorisk innlevering 7

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

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

Steg 1: Husker du skilpadden?

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

Øvingsforelesning 3 Python (TDT4110)

Robotinvasjon Introduksjon ComputerCraft 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.

Skilpaddekunst. Introduksjon. Skrevet av: Geir Arne Hjelle

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

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

Steg 1: Regneoperasjoner på en klokke

Oppgave 1 Hva tror du følgende program skriver ut til terminalen? Diskuter med gruppen.

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

Løpende strekmann Erfaren Videregående Python PDF

JS: Grunnleggende JavaScript

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

Hvor i All Verden? Del 2 Erfaren Scratch PDF

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

King Kong Erfaren Scratch PDF

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

Øvingsforelesning i Python (TDT4110)

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

Steg 1: Tekst på flere linjer

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

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

TDT4110 IT Grunnkurs Høst 2015

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

Straffespark Introduksjon Scratch Lærerveiledning

Skilpadder Introduksjon Python PDF

Redd verden. Steg 1: Legg til Ronny og søppelet. Sjekkliste. Introduksjon

Steg 1: Klargjør og importerer bilioteker

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

Python: Løkker. TDT4110 IT Grunnkurs Professor Guttorm Sindre

Steg 1: Rest etter divisjon

Øvingsforelesning 1 Python (TDT4110)

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

Enarmet banditt Nybegynner Scratch Lærerveiledning

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

Steg 1: Klargjør og importerer bilioteker

TDT4110 IT Grunnkurs Høst 2014

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

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

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

TDT4110 IT Grunnkurs Høst 2016

Løse reelle problemer

Oblig 4 Undervisningshefte i grunnleggende JavaScript programmering

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

Spøkelsesjakten. Steg 1: Lag et flyvende spøkelse. Sjekkliste. Introduksjon

Hei verden Introduksjon Swift PDF

Finne ut om en løsning er helt riktig og korrigere ved behov

TDT4102 Prosedyreog objektorientert programmering Vår 2016

INF109 - Uke 1b

TDT4102 Prosedyre og Objektorientert programmering Vår 2015

Hvordan løse problemer med programmering?

Prøveeksamen IN1000. IN Prøveeksamen. Dato november 2017 Tid 12:30-12:00 Alle trykte og skrevne hjelpemidler er tillatt.

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

Øvingsforelesning 7 i Python (TDT4110)

Steg 1: Katten og fotballbanen

Oppgaver uke 1: Løsningsforslag

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

Oppsummering fra sist

Transkript:

Mattespill Nybegynner Python PDF Introduksjon I denne leksjonen vil vi se litt nærmere på hvordan Python jobber med tall, og vi vil lage et enkelt mattespill. Vi vil også se hvordan vi kan gjøre ting tilfeldige. Steg 1: En kalkulator! Python er, som de fleste programmeringsspråk, veldig glad i å regne. La oss se hvordan vi kan få Python til å regne for oss. Lag et nytt IDLE-vindu ved å velge File > New File. Vi begynner med å utforske hvordan vi kan bruke Python til å regne ut enkle mattestykker. Skriv det følgende nye programmet: print(2 + 3) print(17-8) print(3 * 4) print(22 / 7) Lagre programmet med navnet kalkulator.py og kjør det. Når programmet kjører vil det skrive ut 4 tall. Kjenner du igjen disse tallene? Skjønner du hva symbolene * og / betyr? Endre gjerne på programmet og kjør det flere ganger til du skjønner hvordan Python bruker pluss, minus, gange og dele. Steg 2: Vi kaster terning For å lage et mattespill vil vi bruke tilfeldige tall. Tilfeldige tall blir omtrent som å slå terning for å finne et tall. For å lage tilfeldige tall skal vi bruke en ny Python-funksjon som heter randint (her er rand en forkortelse for random som betyr tilfeldig, og int en forkortelse for integer som betyr heltall). Denne funksjonen er ikke med i grunnpakken til Python,

men ligger i stedet i et bibliotek kalt random. Vi må derfor fortelle Python at vi vil bruke dette biblioteket. Lag et nytt program, terning.py som ser slik ut: print(randint(1, 6)) Når du kjører programmet vil det skrive ut et tilfeldig tall mellom 1 og 6. Kjør programmet flere ganger. Forandrer tallet seg? Prøv selv å forandre programmet slik at det skriver ut tilfeldige tall mellom 1 og 20! Eller mellom -1 og 1. Programmet terning.py viser hvordan vi kan late som om vi slår èn terning i Python. Men hvordan kan vi late som om vi slår to terninger, og ser summen av dem? Vi kan også utvide programmet slik at det slår terning mange ganger. Dette gjør vi enklest med for-løkker. Hvis du for eksempel utvider programmet ditt som følger vil det se ut som om du slår to terninger 25 ganger: for i in range(25): print(randint(1, 6) + randint(1, 6)) Steg 3: En liten matteprøve Vi kan nå bruke tilfeldige tall til å lage et enkelt mattespill. Lag et nytt program som heter mattespill.py. Vi begynner med å trekke to tilfeldige tall, og la Python gange dem sammen: Vi vil nå at Python skal gi oss en matteoppgave, kan vi bli spurt om å gange sammen tall1 og tall2? Prøv å legg til denne linjen nederst i programmet ditt: print('hva er ' + tall1 + ' ganger ' + tall2 + '?') Hva skjer når du prøver å kjøre programmet? Du husker kanskje at vi kan bruke + for å sette sammen tekst? Men vi bruker også + for å plusse sammen tall. I linjen over prøver vi å bruke + på både tekst og tall, og da skjønner ikke Python helt hva vi mener. For å fortelle Python at her vil vi egentlig sette sammen tekst må vi bruke funksjonen str for å gjøre om tallene til tekststrenger. Endre den siste linjen slik at den ser slik ut i stedet: Virker programmet ditt bedre nå? Prøv å kjøre programmet flere ganger. Blir du stilt forskjellige spørsmål? Neste steg er at vi vil kunne svare på mattestykket. Til dette bruker vi igjen funksjonen input. Legg til linjen

nederst i programmet. Vi skal nå få programmet til å sjekke at vi har svart riktig. For å gjøre dette skal vi bruke noe som heter if-tester. Disse kan sjekke om noe er sant, og vi vil bruke dem for å sjekke om det er sant at svaret ditt er likt med det faktiske svaret. Legg til en if-test nederst i programmet ditt slik som dette: if svar == tall1 * tall2: print('ja, svaret er ' + svar) else: print('nei, det riktige svaret er ' + str(tall1 * tall2)) Pass på at som i for-løkker må du skyve koden i if-testen inn mot høyre. Kjør programmet ditt. Virker det? Hva skjer om du svarer feil på en oppgave? Hva skjer om du svarer riktig? Hmm det er et problem med programmet vårt. Programmet sier at vi svarer feil selv om vi svarer riktig! Bugs Dette er et eksempel på noe vi kaller en bug i et program. Programmet kjører, men det gjør ikke slik som vi hadde ment og forventet. Selve ordet bug betyr insekt, og grunnen til at dette ordet brukes er at i gamle dager var det faktisk et problem at insekter fløy inn i datamaskiner og ødela programmer! Problemet med programmet vårt er ikke helt lett å finne, men siden programmet alltid sier at svaret vårt er feil må det bety at svar aldri er helt lik tall1 * tall2. Igjen er problemet at Python mener at tekst og tall er forskjellige ting. Når vi bruker input til å lese inn svar vil dette alltid være tekst, selv om vi bare skriver inn tall. På samme måte som vi kan bruke str for å gjøre om tall til tekst kan vi bruke int for å gjøre om tekst til tall (husk at int er en forkortelse for integer som betyr heltall). Endre if -linjen i programmet ditt til if int(svar) == tall1 * tall2: Virker programmet bedre nå? Steg 4: Telle riktige svar Det er litt kjedelig å alltid starte programmet på nytt. La oss prøve å stille flere mattestykker etter hverandre. Hvordan kan vi lage en løkke slik at programmet stiller oss for eksempel 5 mattestykker på rad før det avsluttes. Prøv litt selv før du går videre. Til slutt vil vi at programmet også skal telle hvor mange riktige svar vi klarer. For å gjøre dette skal vi bruke en variabel som vi for eksempel kan kalle ant_rett. Når vi begynner spillet passer vi på at denne er 0 siden vi ikke har svart noenting enda. Hver gang vi svarer riktig kan vi så øke verdien av variabelen med 1. Om vi også legger til en melding til slutt om

hvor mange riktige svar spilleren klarte vil programmet se omtrent ut som følger: ant_stykker = 5 ant_rett = 0 for i in range(ant_stykker): if int(svar) == tall1 * tall2: print('ja, svaret er ' + svar) ant_rett = ant_rett + 1 else: print('nei, det riktige svaret er ' + str(tall1 * tall2)) print('du fikk ' + str(ant_rett) + ' av ' + str(ant_stykker)) Steg 5: Rekursjon, hva er det? Vi avslutter med å se på noe som heter rekursjon. Dette er en veldig stilig ide, som brukes en del i programmering. Vi vil skrive et program som kan regne ut fakultetet av et tall. Fakultetet finner man ved å gange tallet med alle tall som er mindre enn seg. For eksempel er fakultetet av 4 fakultet(4) = 4 * 3 * 2 * 1 = 24 Trikset med rekursjon er at vi kan redusere oppgaven til noe som er veldig likt, men litt enklere. For eksempel kan vi her se at hvis vi hadde visst fakultetet av 3 kunne vi funnet fakultetet av 4 bare ved å gange med 4: fakultet(4) = 4 * 3 * 2 * 1 = 4 * fakultet(3) Videre kan vi finne fakultetet av 3 hvis vi vet fakultetet av 2 og så videre: fakultet(3) = 3 * 2 * 1 = 3 * fakultet(2) fakultet(2) = 2 * 1 = 2 * fakultet(1) fakultet(1) = 1 La oss se om vi kan skrive et program som jobber på denne måten. Lag et nytt program som du kaller fakultet.py : def fakultet(tall): if tall == 1: return 1 print(fakultet(1)) Her bruker vi flere ting du har sett tidligere. Husk at def brukes for å lage egne funksjoner. Her lager vi funksjonen fakultet som vi etterpå kaller inne i print -funksjonen. Foreløbig har vi bare sagt at vi vet at fakultetet av 1 er 1. Men nå kommer det stilige. Vi kan regne ut fakultetet av alle andre tall ved å legge på en enkelt kodelinje:

def fakultet(tall): if tall == 1: return 1 return tall * fakultet(tall-1) print(fakultet(4)) Denne linjen sier at fakultetet til et tall er tallet selv ganget med fakultetet til tallet som er en mindre. Prøv å regne ut fakultetet av andre tall. Skjønner du hvordan dette virker? Det er en litt merkelig måte å tenke på, så du må kanskje venne deg til det? Lisens: CC BY-SA 4.0