PGZ - Hangman Ekspert Python Lærerveiledning

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

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

Hangman. Level. 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?

Repetisjon Novice Videregående Python PDF

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

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

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

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

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

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

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: Tekst på flere linjer

Løpende strekmann Erfaren Videregående Python PDF

INF Obligatorisk innlevering 7 - Hangman

INF120: Oblig 3. Yngve Mardal Moe

Øvingsforelesning i Python (TDT4110)

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

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

Steg 0: Installere Pygame Zero

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

Hvor i All Verden? Del 3 Erfaren Scratch PDF

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

Verden. Steg 1: Vinduet. Introduksjon

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

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

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.

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

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

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.

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

PXT: Hermegåsa. Steg 1: Sjekk at du har riktig utstyr. Sjekkliste. Introduksjon

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

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

Steg 1: Regneoperasjoner på en klokke

Steg 1: Lag bildedeklarasjon

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

Steg 1: Piler og knappetrykk

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

JS: Grunnleggende JavaScript Nybegynner

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

TDT4102 Prosedyreog objektorientert programmering Vår 2016

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

JS: Grunnleggende JavaScript

Mattespill Nybegynner Python PDF

Kryptering med vigenere-metoden

Kanter, kanter, mange mangekanter

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

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

Bli Kjent med Datamaskinen Introduksjon ComputerCraft PDF

Bygg et Hus. Introduksjon. Steg 1: Prøv selv først. Skrevet av: Geir Arne Hjelle

Straffespark Introduksjon Scratch Lærerveiledning

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

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

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

Hei verden Introduksjon Swift PDF

TDT4102 Prosedyre og Objektorientert programmering Vår 2015

IN1000 Obligatorisk innlevering 7

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

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

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

Steg 2: La løvinnen og papegøyen bevege seg

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

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

Steg 1: Katten og fotballbanen

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

PXT: Micro:bit repeater

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

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

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

Øvingsforelesning i Python (TDT4110)

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

Tegneprogram Journeyman Scratch PDF

Øvingsforelesning 1 Python (TDT4110)

King Kong Erfaren Scratch PDF

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

Robotinvasjon Introduksjon ComputerCraft PDF

Enarmet banditt Nybegynner Scratch Lærerveiledning

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

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

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

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

Hva er det? Steg 1: Få flere ting til å vise seg på tavlen. Sjekkliste. Test prosjektet. Introduksjon

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

Blinkende lysdiode Introduksjon Arduino Lærerveiledning

Hemmelige koder. Kodeklubb-koden. Steg 1: Alfabetet. Sjekkliste. Introduksjon

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

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

MENGDER (SETS) Læringsmål og pensum. Kapittel 9.2

Flaksefugl Nybegynner Scratch Lærerveiledning

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

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

Kom i gang med micro:bit

TDT4110 Informasjonsteknologi grunnkurs: Tema: Dictionaries og mengder (sets) - Kapittel 9. Professor Alf Inge Wang

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

MAT1030 Plenumsregning 1

Transkript:

PGZ - Hangman Ekspert Python Lærerveiledning Introduksjon I denne oppgaven skal vi lage vårt eget hangman-spill. Vi har laget litt ferdigskrevet kode for å hjelpe deg på vei. Den kan du laste ned her. Lagre den der du pleier å lagre Python-koden din. Det kan se ut som mye kode, men det bare den øverste delen du skal endre på. Et lite stykke ned vil det være en overskrift som ser slik ut: ############################################################################ ### # Library code ############################################################################ ### All koden under denne overskriften kan du bare overse. Dette er koden som hjelper deg med å tegne figurer og hente input fra brukeren. I koden over overskriften har vi laget noen variabler: TRIES som angir hvor mange forsøk brukeren har. Ettersom det bare er tegnet figurer for 7 feil, så er det lurt å la denne være slik den er. WORDS er en liste over ord som kan gjettes, men ingen av disse ordene kan inneholde æ, ø eller å. state er en ordbok som inneholder spillets tilstand. Vi har begynt å lage fire funksjoner for deg. Disse skal du gi innhold i steg 1 til 4. Steg 0: Test at alt fungerer Ved å kjøre kommandoen pgzrun hangman.py skal du få opp et vindu som ser slik ut:

Dersom du ikke får opp et vindu som beskrevet over, pass på at du har installert Python på riktig måte, lastet ned hangman.py og er i samme mappe som fila. Dersom du fremdeles sitter fast bør du snakke med en veileder. Steg 1: Lage det hemmelige ordet Nå skal vi skrive koden som skal kjøres når create_display_string() kalles. Denne funksjonen har to parametere - secret_word (det hemmelige ordet) og remaining_letters (en liste med de bokstavene brukeren ikke har gjettet). Her er et eksempel på hvordan funksjonen kan fungere: >>> remaining_letters =['b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'] # alle bokstaver fra b til z >>> secret_word = 'banan' >>> create_display_string(secret_word, remaining_letters) '_ a _ a _' >>> remaining_letters.remove('b') >>> create_display_string(secret_word, remaining_letters) 'b a _ a _' >>> create_display_string(secret_word, []) 'b a n a n' Her er alle bokstaver i secret_word som også er i remaining_letters erstatte med _. Vi har også lagt inn et mellomrom mellom hvert tegn. For å lage denne funksjonen trenger vi noen av tekstfunksjonene vi lærte i Tekst ABC. Dersom du ikke husker disse kan det være lurt å gå tilbake og lese igjennom alle de gule boksene i oppgaven. Du skal nå skrive kode i funksjonen. Dette må du gjøre: For å konvertere secret_word til ei liste må du bruke funksjonen list(). Du kan gi en streng som argument til list(), også returneres en liste av bokstaver.

>>> list("ord") ['o', 'r', 'd'] Slå sammen bokstavene til en streng igjen, med ett mellomrom mellom hver bokstav. Hint: s.join(lst) Bytt ut hver bokstav som er i det nye ordet vårt og i remaining_letters med _, slik som i eksempelet over. Hint: s.replace() Husk å returnere det hemmelige ordet. Steg 2: Å starte spillet Nå skal vi kode funksjonen start_game(). Denne funksjonen lager nøkkel/verdi-parene i state. Dersom du ikke husker hvordan ordbøker fungerer kan det være lurt å repetere oppgaven om ordbøker. Nøklene i state er som følger: "running" forteller hjelpefunksjonene om spillet kjører "used_tries" er hvor mange forsøk brukeren har brukt "secret_word" er det ordet brukeren skal gjette "pressed_button" er den siste knappen som ble trykket av brukeren "help_text" er hjelpetekst for brukeren, som forklarer hva brukeren skal gjøre "remaining_letters" er en liste over de bokstavene brukeren ikke har gjettet "display_string" er det ordet som vises til brukeren (etter at vi har satt inn _ ). Dette må du gjøre: Lag følgende nøkkel/verdi-par: Nøkkel: "running" Verdi: True Nøkkel: "used_tries" Verdi: 0 Nøkkel: "pressed_button" Verdi: "" (En tom streng) Nøkkel: "help_text" Verdi: "Guess a letter!" For å velge et tilfeldig ord skal vi bruke random.choice(). Ved å gi denne funksjonen en liste som argument returneres et tilfeldig element i lista. Gi WORDS som argument og bruk det returnerte ordet som verdien som tilhører nøkkelen "secret_word". Vi skal nå lage lista over bokstaver som brukeren ikke har gjettet. For å gjøre dette bruker vi de 26 første bokstavene i string.ascii_letters, og legger disse til lista. La den tilhørende verdien til "remaining_letters" være en tom liste. Bruk enumerate() og gå igjennom de 26 første bokstavene i string.ascii_letters, og legg disse til state["remaining_letters"]. Hint: Bruk lst.append(elm)

For å lage verdien som hører til "display_string" må vi bruke funksjonen vi lagde i steg 1. Hvilke to argumenter skal vi gi til funksjonen? Test spillet ditt Lagre endringene dine i hangman.py, og kjør spillet ditt: pgzrun hangman.py Du skal nå få opp et vindu som ser slik ut: Steg 3: Å avslutte spillet I funksjonen game_over() skal vi endre state slik at både bruker og hjelpefunksjoner får beskjed om at spillet er over. Dette må du gjøre: Endre state["running"] til False. Endre verdien til state["display_string"] slik at brukeren kan se løsningen, selv om brukeren ikke har vunnet. Dette kan du gjøre ved hjelp av funksjonen fra steg 1. Hint: Hva skal listen vi gir som argument inneholde når vi ønsker å vise alle bokstavene? Steg 4: main() I dette steget skal vi skrive hovedfunksjonaliteten til spillet. Vi skal skrive koden i main(), som kjøres hver gang spillet oppdateres. Her skal vi finne ut hvilken bokstav brukeren trykket på, og så sjekke om den bokstaven er inneholdt i ordet vårt. Vi må også oppdatere antall brukte forsøk, og til slutt sjekke om brukeren har brukt opp alle forsøkene sine eller om han har

gjettet riktig ord. Dette må du gjøre: Du finner bokstaven brukeren trykket på i state["pressed_button"]. Det kan være lurt å lagre denne i en egen variabel, så du slipper å skrive state["pressed_button"] mange ganger. Dersom bokstaven finnes i state["remaining_letters"], må programmet gjøre det følgende: Fjern bokstaven fra lista Dersom bokstaven finnes i det hemmelige ordet vårt må du oppdatere state["display_string"], hvis ikke har brukeren brukt opp ett forsøk, og du må legge til en til state["used_tries"]. Sjekk om brukeren har brukt opp alle forsøkene sine. Dersom det er tilfelle må du endre på state["help_text"] til "You lost!". Til slutt må du kalle funksjonen game_over(). Hint: Sjekk om state["used_tries"] er større eller lik TRIES. Vi må også sjekke om brukeren har gjettet ordet. En måte dette kan gjøres på er å sjekke hvor mange "_" det er i state["display_string"]. Bruk s.count("_") for å telle antall understreker. Dersom det ikke er flere understreker har brukeren vunnet spillet, og du må da endre state["help_text"] til "You won!" og kalle game_over(). Test spillet ditt Lagre endringene dine i hangman.py, og kjør spillet ditt: pgzrun hangman.py Spillet skal nå fungere fullt og helt. Nå er det noen ting vi må teste: Slik kan det se ut når spilleren vinner. Når spilleren taper kan det se ut omtrent som i bildet under. Pass på det følgende:

Det skal ikke være mulig å taste inn flere bokstaver. Dersom du har mulighet til dette har du glemt å sette state["running"] = False i game_over(). Pass på at du viser løsningsordet nederst. Lisens: CC BY-SA 4.0 Forfatter: Ole Kristian Pedersen, Kodeklubben Trondheim