Din egen chattbot - Marvin - steg 2
Programmering och problemlösning i Python. Strukturera koden i en egen fil och lär Marvin ett spel samt att förstå flytande text.
#Förkunskaper
Du kan grunderna i Python och stränghantering och du har byggt första delen av Marvin.
#Introduktion
Spelet “Guess the number” är ett enkelt gissningsspel där någon tänker på ett tal mellan 1-100. Man har 6 gissningar på sig att gissa rätt tal. Vid varje gissning så får man svar om talet är “för lågt”, “för högt” eller “rätt gissat”.
Kapitel 4 i boken Invent your games with Python beskriver hur spelet “Guess the number” kan implementeras.
#Krav
- Kopiera din Marvin från föregående kursmoment och utgå från den koden.
# Flytta till kurskatalogen
cd me
cp -ri kmom02/marvin1/marvin.py kmom03/marvin2/
cd kmom03/marvin2
Skriv om koden så att menyn och varje menyval finns i en egen funktion.
Döp om nuvarande
marvin.py
tillmain.py
.Skapa en ny fil
marvin.py
och lägg alla menyvalsfunktioner i denna nya Pythonmodul. Importeramarvin.py
imain.py
.Gör ett menyval som löser spelet “Guess the number” där Marvin tänker på ett tal mellan 1-100 och spelaren ska gissa vilket det är. För varje gissning ska Marvin berätta om gissningen var högre eller lägre än det han tänkte på. Spelaren ska ha 6 gissningar på sig.
Menyval: Kasta om bokstäver. Marvin ska be dig skriva in ett ord som sedan slumpmässigt kastas om. Det omkastade ordet ska sedan skrivas ut.
Validera och publicera Marvin genom att göra följande kommandon i kurskatalogen i terminalen.
# Flytta till kurskatalogen
dbwebb validate marvin2
dbwebb publish marvin2
Rätta eventuella fel som dyker upp och publicera igen. När det ser grönt ut så är du klar.
#Extrauppgift
Gör ett menyval där Marvin i samma sträng skriver ut: dagens datum och nuvarande tid, hur han mår (slumpmässigt humör), ett heltal, samt ett floattal med 3 decimaler. Ge talen ett sammanhang i texten. Strängen ska hämtas från en textfil som du själv skapar och formateras med ovanstående variabler. Notera att du i programmet inte ska ändra i filen. Kursrepot innehåller ett exempel på strängformattering med fil som du kan använda som grund för denna uppgift.
Gör ett menyval Poäng till betyg. Marvin ska fråga efter maxpoäng samt dina poäng och sedan ska Marvin skriva ut vilket betyg dina poäng motsvarade. Kika på övning 3.3 i boken Python for Informatics.
#Tips från coachen
Lär dig felsöka med debuggern, använd den när du får problem. komplettera med utskrifter av print()
.
Validera ofta. Så slipper du en massa valideringsfel i slutet av övningen.
Lycka till och hojta till i forumet om du behöver hjälp!
#Revision history
- 2017-06-13: (G, efo) Uppdaterade marvin menyval, la till funktioner och modul.
- 2015-08-25: (F, mos) Uppgraderade till dbwebb v2.
- 2015-01-29: (E, mos) Sökväg för cd-kommandot.
- 2014-10-24: (D, mos/sylvanas) Mindre omformulering krav 2 och krav 3.
- 2014-08-27: (C, mos) Genomgången och testad.
- 2014-08-03: (B, sylvanas) Uppdaterad med fler övningar.
- 2014-07-03: (A, mos) Första utgåvan i samband med kursen python.