Hangman
Skrevet av: Oversatt fra Code Club UK
Oversatt av: Geir Arne Hjelle
Introduksjon
La oss lage et spill: Hangman! Datamaskinen vil velge et ord og du kan gjette det bokstav for bokstav. Dersom du gjetter feil for mange ganger taper du.
Steg 1: Velg et ord
Først må vi få datamaskinen til å velge et tilfeldig ord, så la oss begynne.
Sjekkliste
-
from random import choice word = choice(["kode", "kurs"]) print(word)
Hver gang du kjører dette programmet vil det velge et tilfeldig ord fra listen ["kode", "kurs"]
ved hjelp av choice
-funksjonen.
Steg 2: Gjett en bokstav
Nå har vi valgt et ord, la oss finne ut hvordan vi gjetter en bokstav.
Sjekkliste
-
from random import choice word = choice(["kode", "kurs"]) out = "" for letter in word: out = out + "_" print("Gjett en bokstav i ordet:", out)
-
Vi bruker en
for
-løkke for å bygge en tekst hvor hver bokstav i ordet er byttet med en understrek_
. Ordetkode
vil da for eksempel skrives som____
til skjermen. -
from random import choice word = choice(["kode", "kurs"]) out = "" for letter in word: out = out + "_" print("Gjett en bokstav i ordet, avslutt med enter:", out) guess = input() if guess in word: print("Yay") else: print("Nope")
Vi bruker en ny prosedyre
input()
for å finne ut hvilken bokstav spilleren skriver. Vi brukerif
for å sjekke om bokstaven er i ordet.
Da har vi gjort det viktigste, la oss fortsette videre.
Python 2 tips:
Bruk raw_input
i stedet for input
dersom du bruker en gammel version av python.
Steg 3: Husk bokstavene som er gjettet
Nå skal vi bruke to nye komponenter i python, lister og while
-løkker.
Sjekkliste
-
from random import choice word = choice(["kode", "kurs"]) guessed = [] while True: out = "" for letter in word: if letter in guessed: out = out + letter else: out = out + "_" if out == word: print("Du gjettet", word) break print("Gjett en bokstav i ordet:", out) guess = input() if guess in guessed: print("Bokstaven er allerede gjettet på:", guess) elif guess in word: print("Yay") guessed.append(guess) else: print("Nope") print()
-
Vi har laget en
while True
-løkke, tilsvarendefor alltid
i scratch. Denne vil i utgangspunktet fortsette å spørre spilleren om å gjette bokstaver for alltid. For å komme ut av løkken bruker vi kommandoenbreak
når ordet har blitt gjettet.Vi bruker også en liste,
guessed
, hvor vi legger til bokstavene som er riktige for å huske dem senere.
Steg 4: Tell feilene
For at Hangman skal holde oversikt over alle bokstavene som er gjettet på må vi også huske på når spilleren gjetter feil.
Sjekkliste
-
from random import choice word = choice(["kode", "kurs"]) guessed = [] wrong = [] while True: out = "" for letter in word: if letter in guessed: out = out + letter else: out = out + "_" if out == word: print("Du gjettet", word) break print("Gjett en bokstav i ordet:", out) guess = input() if guess in guessed or guess in wrong: print("Bokstaven er allerede gjettet på:", guess) elif guess in word: print("Yay") guessed.append(guess) else: print("Nope") wrong.append(guess) print()
Vi bruker en ny liste
wrong
som tar vare på alle bokstavene vi har gjettet som er feil.
Steg 5: Bare noen få forsøk
Bare en ting gjenstår før spillet er ferdig, vi vil begrense hvor mange forsøk man har til å gjette.
Sjekkliste
-
from random import choice word = choice(["kode", "kurs"]) guessed = [] wrong = [] tries = 7 while tries > 0: out = "" for letter in word: if letter in guessed: out = out + letter else: out = out + "_" if out == word: break print("Gjett en bokstav i ordet:", out) print(tries, "forsøk igjen") guess = input() if guess in guessed or guess in wrong: print("Bokstaven er allerede gjettet på:", guess) elif guess in word: print("Yay") guessed.append(guess) else: print("Nope") tries = tries - 1 wrong.append(guess) print() if tries: print("Du gjettet", word) else: print("Du klarte ikke å gjette", word)
-
Legg merke til at vi endret
while
-løkken ved å legge inn en forutsetning,while tries > 0
. Dette betyr at løkken bare kjøres så lenge variabelentries
er større enn 0. Kikker du litt rundt i koden ser du attries
starter med verdien 7, også blir den 1 mindre for hver feil bokstav som gjettes. Altså vil spilleren kunne gjette opp til 7 bokstaver feil før spillet er slutt.
Steg 6: Legg til nye ord
Sjekkliste
-
word = choice(["kode", "kurs"])
-
word = choice(["kode", "kurs", "robot", "klubb"])
Husk at ordene må stå i anførselstegn og at det må være komma mellom ordene for å lage en liste. Legg til flere ord som du finner på selv.
Forbedre denne siden
Funnet en feil? Kunne noe vært bedre?
Hvis ja, vennligst gi oss tilbakemelding ved å lage en sak på Github eller fiks feilen selv om du kan. Vi er takknemlige for enhver tilbakemelding!