Spel
Nu ska vi bygga vårt första spel - nämligen klassikern Sten, Sax, Påse.
Om du inte läst avsnitten innan bör du göra det, vi kommer använda många av de delarna här.
Hur funkar det?
Vi börjar inte med kod utan med en plan! Den kan vi göra med penna och papper eller i kommentarer i din fil.
Datorn ska i hemlighet välja sten, sax, eller påse - helt slumpmässigt. Om vi säger att sten=1, sax=2, påse=3, så kan vi slumpa fram ett tal 1till3 för detta. Vi kan använda random.randint för detta.
Sedan ska vi fråga användaren vad hen vill göra: 1,2eller3. Vi kan använda input för detta. Och beroende på vad vi valt, och vad datorn valt, så berättar vi om användaren vann, förlorade, eller det blev oavgjort. Här behöver vi några if-satser.
Strukturen borde bli något liknande:
Prova att själv ersätta kommentarerna här ovan med kod innan du läser vidare. Oroa dig inte för att det inte blir perfekt.
Vad vi har här kallar man ofta för en “specifikation” eller kortfattat bara en “spec” - en beskrivning av vad som ska göras.
Datorns val
Vi har tidigare använt modulen random (i avsnittet om moduler), och det kan vi göra även här. Vi slumpar fram ett tal mellan 1 och 3, och använder en variabel som vi döper till dator för att bestämma datorns val för sten, sax, eller påse.
OBS! Detta program ger inte något resultat än, utan variabeln dator kommer vi att använda senare I programmet.
Användarens val
Här är det inte mycket mer att göra än att fråga:
Användarens val sparas i variabeln anv.
Vem vann?
Om datorn och användaren valt helt identiskt så blir det oavgjort. Det kan vi uttrycka såhär:
Annars finns det några alternativ, till exempel att datorn valt "sten" och användaren valt "påse", vilket gör att användaren vinner. Det kunde vi skriva såhär:
Nu återstår bara att fylla i de andra möjligheterna.
Komplett program
Sätt ihop alla delar och gå igenom koden noga själv:
Som du märker är spelet slut efter att vi spelat en omgång. Vore det inte härligt om spelet började om igen när vi spelat, speciellt om det blev oavgjort? Det ska vi prata om i nästa avsnitt.
I videolektionen bygger vi upp ett annat spel med hjälp av en sköldpadda.
Nu ska vi bygga vårt första spel - nämligen klassikern Sten, Sax, Påse.
Om du inte läst avsnitten innan bör du göra det, vi kommer använda många av de delarna här.
Hur funkar det?
Vi börjar inte med kod utan med en plan! Den kan vi göra med penna och papper eller i kommentarer i din fil.
Datorn ska i hemlighet välja sten, sax, eller påse - helt slumpmässigt. Om vi säger att \(\texttt{sten} = 1\), \(\texttt{sax} = 2\), \(\texttt{påse} = 3\), så kan vi slumpa fram ett tal \(1\;\texttt{till}\;3\) för detta. Vi kan använda random.randint för detta.
Sedan ska vi fråga användaren vad hen vill göra: \(1,2\;\texttt{eller}\;3\). Vi kan använda input för detta. Och beroende på vad vi valt, och vad datorn valt, så berättar vi om användaren vann, förlorade, eller det blev oavgjort. Här behöver vi några if-satser.
Strukturen borde bli något liknande:
Prova att själv ersätta kommentarerna här ovan med kod innan du läser vidare. Oroa dig inte för att det inte blir perfekt.
Vad vi har här kallar man ofta för en “specifikation” eller kortfattat bara en “spec” - en beskrivning av vad som ska göras.
Datorns val
Vi har tidigare använt modulen random (i avsnittet om moduler), och det kan vi göra även här. Vi slumpar fram ett tal mellan \(1\) och \(3\), och använder en variabel som vi döper till dator för att bestämma datorns val för sten, sax, eller påse.
OBS! Detta program ger inte något resultat än, utan variabeln dator kommer vi att använda senare I programmet.
Användarens val
Här är det inte mycket mer att göra än att fråga:
Användarens val sparas i variabeln anv.
Vem vann?
Om datorn och användaren valt helt identiskt så blir det oavgjort. Det kan vi uttrycka såhär:
Annars finns det några alternativ, till exempel att datorn valt "sten" och användaren valt "påse", vilket gör att användaren vinner. Det kunde vi skriva såhär:
Nu återstår bara att fylla i de andra möjligheterna.
Komplett program
Sätt ihop alla delar och gå igenom koden noga själv:
Som du märker är spelet slut efter att vi spelat en omgång. Vore det inte härligt om spelet började om igen när vi spelat, speciellt om det blev oavgjort? Det ska vi prata om i nästa avsnitt.
I videolektionen bygger vi upp ett annat spel med hjälp av en sköldpadda.
I den här videon går vi igenom ett annat spel som involverar en sköldpadda som rör sig enligt användaren svar.
- Specifikation: En beskrivning av vad ett program eller spel ska innehålla, och vad användare ska kunna göra med det. Vi kan skriva den med hjälp av kommentarer innan vi börjar programmera.
- If-sats: Nyckelordet “if” följt av ett logiskt påstående används för att låta våra program fatta beslut.
- Modul: Vi kan återanvända kod som andra har skrivit i våra program. För att det inte ska bli överväldigande mycket delas den upp i moduler, som vi kan importera vid behov. En modul innehåller en eller flera funktioner.
- Variabel: En plats i datorns minne där vi kan spara något, kanske en bit text, ett namn, eller ett tal som 42.