NemProgrammering.dk logo

Opsamling | Vi laver et spil!

Lær Python programmering » Opsamling | Vi laver et spil! # 6
Inkluderet:
Livstidsadgang
27 videolektioner
7 timers undervisning
Stil spørgsmål
Kursusbevis

Information om denne video

Underviser: Simon Rotendahl   Video: 17:24   Lektion nr. 6 af 27

Vi ser på hvad vi har lært

I videoen her, kigger vi lidt på hvad vi har lært. Vi skal lave et program, som vi kan spille Sten, Saks, Papir mod. Vi få her trænet betinget udtryk, variabler og tankegangen vi bruger når vi programmere. Vi ser også kort på to ting i ikke kender, det ene er ‘input()’ og det andet er ‘random’. Hvis i ikke helt forstår det efter videoen, så er det helt fint, da vi kommer til det senere.

Det er vigtigt at øve sig, og videoen her skal også ses som en opfordring, til at i prøver at lave små ting selv, da erfaring spiller en stor rolle i at være god til at programmere.

I næste video skal vi se på funktioner.

Spørgsmål og kommentarer

Kun medlemmer med adgang til dette kursus kan stille spørgsmål og kommentere. Bliv medlem her!

  • Bo E. siger:

    Hej Simon,

    Jeg har prøvet at arbejde lidt videre med spillet, og har inkluderet point og runder, Men af en eller anden grund, regner Python runderne anderledes end mig. :-)

    F.eks. Jeg spørger i starten efter hvor mange runder vi skal spille, hvorefter jeg så beder Python om at regne ud, hvor mange hænder der skal til, førend man har vundet/tabt spillet (f.eks. bedst af 5 betyder 3 rigtige er nok til at vinde)

    Men, jeg kan se at det vist ikke er helt det jeg laver..f.eks, kræver den 4 vundne for at afslutte et “bedst af 5” spil..

    Koden er her:
    https://pastebin.com/RuihJB5Y

    Jeg tænker også, at der må være en mindre kluntet måde at gøre det på, end min valgte…?

    1. Simon R. siger:

      Hej Bo,

      Undskyld det lidt sene svar, jeg har lige siddet med eksamen.

      Problemet kommer ved at du have runde <= runder1, runde starter på 0. Så skal du også huske at skrive += og ikke =+ :)

      Jeg har rettet i det, og cuttet runder1 ud, da det ikke er nødvendigt, jeg har også kommenteret de ændringer jeg har lavet. Håber det hjælper ellers må du sige til :)

      https://pastebin.com/gEcMV93h

      Mvh.
      Simon

      1. Bo E. siger:

        Super, tak for det. Det giver god mening :-)

        Bo

  • Kim K. siger:

    Hej
    Super videoer (godt man kan gå tilbage :-) )
    Kan der være problemer med copy/paste i Atom ?
    jeg er 99,9 % sikker på at have skrevet helt korrekt, og alligevel springer den til nederste print linie, når jeg vælger sten.

    1. Kim K. siger:

      løst ;-)

      1. Simon R. siger:

        Hej Kim,

        Tak for de pæne ord :)

        Ja nogen gange slår det lige pludselig en hvad der er galt, det kender jeg kun alt for godt, men ellers så spørg du selvfølgelig bare :)

        Mvh.
        Simon

  • Kim K. siger:

    har lige et spørgsmål, kommer dine gåseøjne aut ?

    1. Simon R. siger:

      Hej Kim

      De kommer ikke automatiske, men det kommer to af dem når jeg trykker en gang.

      Altså når jeg trykker shift+2 så kommer der “” frem og ikke kun ” som der normalt ville :)

      Mvh.
      Simon

  • Jacob k. siger:

    hej Simon rand vikker ikke. Ved ikke hvorfor den ikke bliver rød. Her er hvad jeg har lavet
    import random as rand
    Sten = “Sten”
    Saks = “Saks”
    Papir = “Papir”
    ditVald = input (“Sten, Saks eller Papir?\n”)
    PCvalg = rand.randint(1,3)
    if ditVald == Sten:
    if PCvald == 1:
    print (“I valgte begge sten”)
    elif PCvalg == 2:
    print (“Du vandt sten vinder over saks”)
    elif PCvalg == 3:
    print (“Du tabte sten taber over papir”)
    else:
    print (“det er med stor bogstav”)

    1. Simon R. siger:

      Hej Jakob,

      Det kun ligne en tastefejl her
      if PCvald == 1:
      Som skal være
      if PCvalg == 1:

      Hvis det ikke virker må du sige til, og gerne inkludere hvilken fejl besked du får i terminalen :)

      Mvh.
      Simon

  • Camilla R. siger:

    Hej Simon, tak for nogle gode videoer indtil videre. Hvor selv en nybegynder med stort N kan følge med :)

    Jeg kan desværre ikke få programmet til at køre.
    Får disse to fejl: Traceback (most recent call last): og TypeError: ‘str’ object is not callable

    – Ved ikke om det har nogen betydning, men skriver i anaconda –> Spyder (Python 3.7). Da jeg ved, det er dette, jeg skal bruge senere på mit studie.

    Vh. Camilla

    1. Simon R. siger:

      Hej Camilla,

      Tak for de pæne ord :)

      Mht. Fejlen, som en lille sidenote så er det faktisk kun en fejl du får, stykket
      “Traceback (most recent call last):”
      Skal du ikke tage sig synderligt af, det er en for lang forklaring til en kommentar her, men det betyder kort sagt “jeg har læst programmet igen, og her er fejlen….”

      Den egentlige fejl er nr. 2 du nævner. Den siger så at det er en type fejl og at typen str (hvilket er kort for streng/string på engelsk) ikke kan “kaldes” (callable). Så det der sker er at et sted i din kode bruger du en streng (altså noget som “dette er en streng da det er i gåseøjne”) som en funktion.

      Det er generelt hvad fejlen siger, hvis jeg lige kan få dig til at kopiere din kode og dele den med mig i en kommentar her på siden, så kan jeg bedre lige udpege specifikt hvad det er :) du må rigtig gerne dele den via linket her i bunden, grunden til det er at indrykninger i koden bliver slettet hvis du bare kopiere det direkte ind her på siden :)
      https://pastebin.com/

      Mvh.
      Simon

      1. Camilla R. siger:

        Super, du får min kodning her:

        import random as rand

        Sten=”Sten”
        Saks=”Saks”
        Papir=”Papir”

        ditValg = input(“Sten, Saks eller Papir?\n”)
        PCvalg = rand.randint(1,3)

        if ditValg==Sten:
        if PCvalg==1:
        print(“uafgjort”)
        elif PCvalg==2:
        print(“YES du vandt”)
        else:
        print(“øvbøv du tabte, prøv igen”)

        elif ditValg==Saks:
        if PCvalg==1:
        print(“øvbøv du tabte, prøv igen”)
        elif PCvalg==2:
        print(“uafgjort”)
        else:
        print(“YES du vandt”)

        elif ditValg==Papir:
        if PCvalg==1:
        print(“YES du vandt”)
        elif PCvalg==2:
        print(“øvbøv du tabte, prøv igen”)
        else:
        print(“uafgjort”)

        1. Camilla R. siger:

          Har også delt det via linket, men er ikke sikker på om jeg har gjort det korrekt :)

          1. Simon R. siger:

            Hmm jeg har kigget på det, men jeg kan ikke lige finde fejlen, ved mig kører programmet som det skal, kommer fejlen kun når du skriver noget bestemt eller hvornår kommer problemet?

            Jeg har lige delt koden på pastebin, og givet det med, så kan du lige se om du har de samme indryk. Når man deler på pastebin så skal man kopiere adressen på siden, efter man har trykker “create new paste” og så deler man det på den måde :) https://pastebin.com/es0wu8Vq

            1. Camilla R. siger:

              Det kommer så snart jeg kører programmet, før jeg har givet et input.

              Har umiddelbart skrevet det samme som dig.
              https://pastebin.com/TPepXCGy

              Du kan også lige få hele meldingen i konsollen/terminalen, ved ikke om det er til nogen hjælp :)

              Traceback (most recent call last):

              File “”, line 1, in
              runfile(‘C:/Users/Camilla/Documents/2. sem/Python/Øvelse1.py’, wdir=’C:/Users/Camilla/Documents/2. sem/Python’)

              File “C:\Users\Camilla\Anaconda3\lib\site-packages\spyder_kernels\customize\spydercustomize.py”, line 827, in runfile
              execfile(filename, namespace)

              File “C:\Users\Camilla\Anaconda3\lib\site-packages\spyder_kernels\customize\spydercustomize.py”, line 110, in execfile
              exec(compile(f.read(), filename, ‘exec’), namespace)

              File “C:/Users/Camilla/Documents/2. sem/Python/Øvelse1.py”, line 58, in
              ditValg = input(“Sten, Saks eller Papir?\n”)

              TypeError: ‘str’ object is not callable

            2. Simon R. siger:

              Hmm det virker til at være et problem med det Spyder der, jeg har selv brugt Anaconda, men med det der hedder Jupyter ikke Spyder, så jeg ved ikke helt hvad der går galt, det ligner det er input funktionen som den er sur over. Du kan prøve at skrive
              ditValg = “Sten”
              i stedet for
              ditValg = input(“Sten, Saks eller Papir?\n”)
              hvis det så stadig er et problem, så er det input funktionen. Jeg kender desværre ikke Spyder godt nok til at jeg rigtig kan hjælpe, men du kan prøve at køre koden på linket herunder, så du kan prøve det :)
              https://repl.it/repls/RaggedDelectableCamel

  • Thomas Bach J. siger:

    Hej

    Først og fremmest, god undervisning. Ift. opsamlingsvidoen med sten, saks og papir har jeg forsøgt at lade programmet tillade, at man skriver sten, saks og papir med lille begyndelsesbogstav. Jeg lykkes ikke med det, måske kan du give et hint?

    Jeg har ikke lyst til, at det skal kunne ses om en mulighed, dvs. det skal ikke være en del af ditValg = input(“Sten, Saks…..”), men blot at programmet skal kunne tillade de tre valgmuligheder med lille begyndelsesbogstav.

    Vh

    Thomas

    1. Simon R. siger:

      Hej Thomas,

      Tak for de pæne ord.

      Som et hint kan du få at du også har ‘or’, altså at når du i en ‘if’ checker om noget er sandt, så kan du checke flere ting på samme tid, dvs. Jeg kan f.eks checke om et tal (lad os kalde det T) enten er under 3 eller over 5 ved at skrive
      If T > 5 or T < 3:

      Det her er så for tal, men sammen logik glæder for strings.

      Jeg håber det hjalp ellers siger du bare til :)

  • gert l. siger:

    Du kunne gøre det simplere ved at spare linjerne Sten = “Sten”

    import random as rand

    ditvalg = input(“Sten, Saks, Papir\n”)
    pcvalg = rand.randint(1,3)

    if ditvalg == “Sten”:
    if pcvalg == 1:
    print(“Uafgjort, begge valgte sten”)
    elif pcvalg == 2:
    print(“Du vinder over Saks”)
    else:
    print(“Du taber til Papir”)

    elif ditvalg == “Saks”:
    if pcvalg == 1:
    print(“Du taber til en Sten”)
    elif pcvalg == 2:
    print(“Uafgjort, i valgte begge Saks”)
    else:
    print(“Du vinder over Papir”)
    elif ditvalg == “Papir”:
    if pcvalg == 1:
    print(“Du vinder over Papir”)
    elif pcvalg == 2:
    print(“Du taber til en Saks”)
    else:
    print(“I har begge valgt Papir”)

    1. Simon R. siger:

      Hej Gert,

      Du må undskylde det sene svar, jeg har haft problemer med min mail, så jeg har ikke fået besked om kommentare.

      Det har du ret i, grunden til jeg gør det er nok mest rutine, så hvis man f.eks ville ændre “Sten” til “sten” så var det samlet et sted, men det er der ikke den store grund til i programmet her da det er så kort :)

  • Dennis J. siger:

    Hej, jeg kunne godt tænke mig at vide, om man kan lave en taste-combo, så man kan udkommentere flere linjer på en gang i Atom?

    Mvh

    Dennis Jakobsen

    1. Simon R. siger:

      Hej Dennis,

      Den findes faktisk allerede, hvis du trykker på Edit oppe i toppen, så vil du se toggle comment og hvilken genvej det er. Jeg mener genvejen er Ctrl+/, men da du nok bruger Dansk tastatur skal du trykke Ctrl+shift+7, da / jo er shift+7 på dansk tastatur :)

      1. Dennis J. siger:

        Mange tak for hurtig svar, og i øvrigt et fedt online kursus.

        Mvh

        Dennis J

  • Rene M. siger:

    den giver mig denne fejl ….

    File “.\dice.py”, line 9, in
    ditvalg = input(int(“et”),int(“to”), int(“tre”), int(“fire”), int(“fem”), int(“6”))
    ValueError: invalid literal for int() with base 10: ‘et’

    1. Simon R. siger:

      Det her er rigtig fint
      if int(ditvalg) == 1:
      Men du skal ikke have int foran herinde
      ditvalg = input(int(“et”),int(“to”), int(“tre”), int(“fire”), int(“fem”), int(“6”))

      Den tekst du skriver inde i input(“tekst”) skal være en streng, da den skal printes i terminalen, og derfor vil vi ikke lave det til int.
      Jeg havde også lige overset noget af det du prøvede tror jeg. Den løsning jeg kom med virker kun hvis du taster tal ind som svar i terminalen, altså det virker hvis du skriver 1 men ikke hvis du skriver et, da int(“et”) ikke giver 1. Lige nu har du ikke helt forudsætningerne for at lave løsningen hvor du skriver et, men det har du efter næste video (ikke at det er nemt efter den video, det er stadig svært at lave løsningen, men du har værktøjerne efter den video), og efter videoen om dictionaries kan du lave en ret sej løsning. Når jeg lige kommer hen til en PC så kan jeg lige lave en løsning som bruger funktioner, og en som bruger dictionaries. Så kan du lige få en bedre idé om fremgangsmåden :)

      1. Rene M. siger:

        glæder mig som et lille barn ;o)

        1. Simon R. siger:

          Hej Rene,

          Her er de tre måder at løse det på, jeg har kommenteret det lidt, men jeg har med vilje ikke skrevet for meget, så tænker jeg at du måske selv kan sidde og kigge lidt på det, men hvis det ikke giver mening må du sige til :)

          Din løsning – https://pastebin.com/KYC6ScC9
          Løsning med funktion – https://pastebin.com/ZXpUqSYe
          Løsning med dictionary – https://pastebin.com/z3jwSeP0

          Håber det hjælper.

          1. Rene M. siger:

            på function løsningen , skal man skrive tallet ind som bogstaver i terminalen og det bliver returneret tilbage som tallet man skrev,

            og spillet , printer forkert input og slutter af sig selv hvis man ikke skriver tal fra 1 til 6.
            Da det vil returnere -1
            er det korrekt forstået ??

            1. Simon R. siger:

              Det er helt korrekt :)

          2. Rene M. siger:

            det her kører osse
            https://pastebin.com/AxkmVLnP

  • Rene M. siger:

    er det sådan her du tænker ??

    import random as rand

    print(“Dette er et terning spil der gælder om, at slå højest”)

    while(True):

    ditvalg = input(int(“et”),int(“to”), int(“tre”), int(“fire”), int(“fem”), int(“6”))
    pcvalg = rand.randint(1,6)

    if ditvalg == “stop”:
    break

    if int(ditvalg) == 1:
    if pcvalg == 1:

  • Rene M. siger:

    import random as rand

    1=”et”
    2=”to”
    3=”tre”
    4=”fire”
    5=”fem”
    6=”seks”

    print(“Dette er et terning spil der gælder om, at slå højest”)

    while(True):

    ditvalg = input(“et, to, tre, fire, fem, seks”)
    pcvalg = rand.randint(1,6)

    if ditvalg == “stop”:
    break

    if ditvalg == 1:
    if pcvalg == 1:
    print(“I fik begge 1, derfor uafgjort” + “\n”)
    elif pcvalg == 2:
    print(“Du tabte!!, pc fik 2,” + “\n”)
    elif pcvalg == 3:
    print(“Du tabte!!, pc fik 3,” + “\n”)
    elif pcvalg == 4:

    1. Simon R. siger:

      Det er fordi når du bruger input så får du svaret, som brugeren skriver, som en streng, men det du sammenligner med er et heltal (integer), så hvis du f.eks skriver 1 som bruger, så bliver ditValg til “1”, så din if ditValg == 1 bliver til if “1” == 1, og det giver false.

      Du kan fikse det ved at skrive int foran, det laver nemlig en streng til er heltal, så f.eks int(“1”) giver 1, du kan også gøre det fra heltal til streng ved at skrive str(1) som giver “1”.

      Så de steder hvor du sammenligner ditValg med et tal, skal du ændre til int(ditValg) == 1 f.eks.

      Jeg håber det hjalp ellers må du lige sige til :)

      1. Rene M. siger:

        tak for hurtig svar ;o)

  • Rene M. siger:

    Hej Simon.
    jeg prøver at lave spillet om til terning spil hvor der skal slåes højest for, at vinde.
    Hvordan kan jeg få den til at godtage heltal som valg
    bruger stadig
    Ditvalg=input(1, 2, 3, 4, 5, 6)
    men den dutter squ ikke … ;o(

  • Henrik H. siger:

    Udmærket video

    Jeg støder dog på to udfordringer.
    Hvis jeg skriver python3 i terminalen får jeg en fejl.

    Jeg er på en pc

    python3 : The term ‘python3’ is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was inclu
    ded, verify that the path is correct and try again.
    At line:1 char:1
    + python3 .\Sten.py
    + ~~~~~~~
    + CategoryInfo : ObjectNotFound: (python3:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

    Men det virker fint med bare af skrive python navn.py

    Noget andet der gavn lidt udfordringer var indryk af de boolske udtryk. F.eks det sidste else skal stå helt til højre så virker det. Hvis det bliver rykket ind under det sidste else med TAP så virker det ikke.

    Jeg valgte også at smide en linje ind i koden så jeg kunne se computerens valg

    if ditValg == Sten:
    if PCvalg ==1:
    print(“Computeren vælger Sten”)
    print(“Uafgjort”)
    elif PCvalg ==2:
    print(“Computeren vælger Saks”)
    print(“Du vandt, sten vinder over saks”)
    #Her under kan der godt bruges else fordi der kun er 3 muligheder og du har tjekket op imod de to så kan det kun være den 3.
    else:
    print(“Computerne vælger Papir”)
    print(“Du tabte, Parir vinder over Sten”)

    1. Simon R. siger:

      Hej Henrik,

      Tak for de pæne ord.

      Mht. python3 så har jeg ikke været god nok til at få det forklaret.
      Så den korte forklaring. På PC har det ingen betydning mht. til kurset her, du skriver bare python det er kun Mac og Linux som skal skrive python3.
      Den længere forklaring. Grunden til at jeg skriver python3, er at min computer bruger styresystemet Ubuntu (en version af Linux). Linux og Mac computere har allerede python2 installeret da styresystemet bruger python2, så jeg har både python2 og python3 installeret, derfor er jeg (og Mac brugere) nød til at specificere om vi gerne vil bruge python2 eller python3, når jeg skriver python så bruger den python2 som standard. Så da du installerede Python på din PC fik du python3, og derfor er det standard. Grunden til at python3 er vigtigt i videoen her er at input funktionen er forskellig i python2 og python3, men langt det meste af tiden gør det ikke nogen forskel hvilken en man bruger.

      Mht. else problemet. Kommentarfeltet her viser ikke indryk så jeg har lidt svært ved helt at forstå hvad du mener. Jeg vil lige prøve at forklare if-else på en lidt anden måde og se om det hjælper. På dansk f.eks vil det ikke give mening bare at sige “ellers gør det her”, man vil altid sige “hvis noget, så gør det ene, ellers så gør det andet”, derfor vil en else altid “tilhøre” en if. Elif står for “else if” altså “hvis ellers”, så det svare til “hvis x gør ting 1, ellers hvis y gør ting 2, ellers så gør ting 3”, på den måde høre en elif også til en if. Så i sten, saks, papir eksemplet så høre elif PCvalg == 2 og else, til if PCvalg == 1. Hvis der i mod else står på samme indrykning som if ditValg == Sten, jamen så tilhøre else if’en ditValg == Sten. Jeg kan forestille mig at den lille smøre her er lidt forvirrende, så jeg har prøvet at lave et eksempel med din koden, som ligger på linket herunder (på linket kan man se indrykningen)
      https://pastebin.com/7gvGLgGi

      For at gøre her med “tilhørsforhold/”/indryk mere tydeligt, så kan Atom faktisk vise det, du kan se på billedet herunder på linket hvordan der går nogle linjer ned. Du kan slå dem til, i Atom, ved at trykke Edit -> Preferences -> Editor -> sæt flueben ved “Show Indent Guide”. Du behøves ikke trykke gem eller noget, ændringen sker så snart du sætter flueben.
      https://ibb.co/KVPgnm6

      Hvis det her ikke svarede på dit spørgsmål (jeg kunne ikke helt gennemskue problemet, så jeg har måske svaret på noget helt forkert) så må du endelig lige skrive igen! Og evt. bruge pastebin.com til at dele din kode med mig, så jeg kan se indrykkende. Håber det hjalp lidt :)

      Mvh.
      Simon

  • Nicky F. siger:

    Hmm okay jeg opdager så nu, at du ikke kan se alle de indryk der er lavet i forbindelse med de forskellige if, elif og else – sætninger. :-(

  • Nicky F. siger:

    Hej Simon
    Jeg sidder og udfordrer mig selv og er ved at lave en godnathistorie til børnene, hvor de kan være med til at bestemme indholdet. Et slags adventure-spil-
    Men jeg er lidt udfordret i min kode, fordi mine if, elif og else kollidere med hinanden. Det gør de jo nok fordi jeg skriver dem i samme række eller hvad man siger. (Det er den del af koden jeg har lavet til en kommentar). Men jeg kan ikke rigtigt se, hvordan historien ellers skulle få alle de her grene, med mindre det er noget helt andet der skal til som ikke er lært endnu?

    Det næste spørgsmål er: Hvordan kan jeg lade computeren gå tilbage til en linje den een gang har været ved. f.eks hvis jeg ønsker at historien skal gå tilbage til et tidligere tidspunkt ved et forkert valg?

    (Koden står her nedenfor)

    print (“Historien om Tommy \n”)

    navn = input(“Hej hvad hedder du? “)

    print (“Jamen hej ” + navn + ” Jeg vil nu fortælle dig en sød lille historie, som du kan være en del af :-) \n”)

    print (“Der var engang en dreng, som hed Tommy.”)
    print (“Tommy var 8 år gammel og var en helt almindelig dreng ligesom alle andre.”)
    print (“Eller der var een mindre forskel og det var at, hvis han trykkede på sin navle,”)
    print (“så blev han helt lille. Helt lille som en lille mus. \n\n”)

    print (“Nå men Tommy sad en dag og legede på sit værelse. Han legede med sin røde ynglingslegetøjsbil”)
    print (“Med sin ene hånd skubbede han bilen frem og tilbage på værelset, mens han sagde: – Wrroooomm -“)
    print (“På et tidspunkt skubbede Tommy bilen lidt for hårdt så den rullede og rullede, indtil den forsvandt, ind i et lille bitte hul, som var i væggen under skrivebordet.”)

    hullet = input (“Hvad skal Tommy gøre? Forsøge at få bilen ud (1), eller lege med noget andet (2)\n”)
    if hullet == “1”:
    print (“\nTommy havde aldrig lagt mærke til det hul i væggen. Han kravlede hurtigt efter bilen og forsøgte at se ind i hullet.”)
    print (“Der var mørkt derinde, og han kunne slet ikke få øje på bilen.\n”)
    mørkt = input (“Hvad skal Tommy gøre? finde en lommelygte (1) eller trykke på sin navle (2) “)
    if mørkt == “1”:
    print (“\n Tommy rejste sig op og gik hen til en kasse som han gennemrodede, indtil han fandt en lille lommelygte.”)
    print(“Han kravlede igen ned til hullet og lyste ind i det med lommelygten. DER var den. Den røde bil. Langt inde i hullet.”)
    print (“Tommy forsøgte at bruge sine hænder til at få bilen ud, men han kunne slet ikke nå bilen. ÆV. Han tænkte sig om. \n”)
    problem = input(“Hvad skal Tommy gøre? Skal han bruge en støvsuger (1), eller skal han trykke på navlen (2), eller skal han bruge et kosteskaft (3)”)
    if problem == “1”:
    print (“Tommy gik ind i stuen og spurgte sin mor om han måtte låne støvsugeren, fordi han bare lige ville støvsuge værelset.”)
    print (“Moderen synes det var virkelig mystisk, fordi Tommy var altså ikke typen, der plejede at støvsuge værelset, men hun lod ham låne støvsugeren alligevel.”)
    print (“Tommy bar støvsugeren ind på værelset, sluttede stikket til, tændte støvsugeren og stak støvsugerøret hen til hullet i væggen.\n”)
    print (“- KLONK! – hørte han pludselig. YES det må være bilen, tænkte Tommy. Men det var det ikke, da han forbavset kikkede på støvsugerøret.”)
    print (“For enden af støvsugerøret sad nemlig en mus. Den så ret gal ud, fordi den faktede helt vilt med arme og ben. Tommy skyndte sig at slukke for støvsugeren. \n”)

    elif mørkt == “2”:
    print (“Tommy trykkede på sin navle. Og pludselig med eet begyndte han at skrumpe og skrumpe. Det tog ikke lang tid og så var han ikke større end en mus.”)
    elif hullet == “2”:
    print (“\nTommy blev lidt ærgerlig over at se den røde ynglingsbil trille ind under skrivebordet, men så kom han til at se ynglingsspidermanden, der stod oven på en af hylderne.”)
    print (“På samme tid kom han i tanker om den spraglede hoppebold, som var oppe på loftet. \n”)

    legetøj = input(“Hvad synes du Tommy skulle? Tage spidermanden ned (1), eller finde hoppebolden på loftet? (2)”)

    #if legetøj == “1”:
    #print (“Tommy tog sin spidermand ned.”)
    #elif legetøj == “2”:
    #print (“Tommy gik op på loftet.”)
    #else:
    #print (“Du skulle skrive 1 eller 2. historien skal genstartes.)

    else:
    print (“Du skulle skrive 1 eller 2. Historien skal genstartes.”)

    1. Simon R. siger:

      Hej Nicky
      Super fedt projekt du er gået i gang med! Jeg har jo undervist børn og unge meget, og jeg er også en del af DR’s projekt Ultra:bit, så jeg håber det kan bringe interessen videre til børnene :)

      Mht. dine if, elif, else statement. Jeg tror måske der mangler et indryk ved legetøjs delen. Du kan se koden på linket nederst. I koden har jeg også tilføjet en lille ting, på linje et skriver jeg “import time” og senere bruger jeg “time.sleep(5)” som går at programmet “står stille” i 5 sekunder, jeg tænker du kan bruge den til at vise teksten lidt langsommere (det med import kommer i video 18, du behøves ikke se den nu, bare brug det, så lærer du om det senere).

      Mht. at vende tilbage til en linje, så skal du bruge en while løkke (video 9), og du vil kunne gøre din kode markant mere overskuelig med funktioner (video 7). Så prøv videre med det, og se et par videoer mere. Når d har set de to videoer så er løsningen ikke helt triviel (åbenlys), så skriv endelig igen der, hvis du syntes det er svært at gennemskue.

      Jeg håber det hjalp lidt, ellers så skriver du bare igen, og skide godt projekt, super godt fundet på :)

      Link til koden: https://pastebin.com/gk6FqpeL

      1. Nicky F. siger:

        Hej Simon,
        Tak for din fine feed-back.
        Jeg har rettet koden lidt til og inddraget noget af dine inputs. Og så har jeg lavet noget “for sjov grafik”.
        Du kan se koden her: https://pastebin.com/CHhdv4vG

        Jeg er så småt ved at se styrken i Python (synes jeg). Men der er meget som også er svært.
        Indtil videre sidder jeg fast i emnet “funktioner” som jeg synes er vildt svært at begribe. Jeg kan godt forstå styrken i det, men kan simpelthen ikke greje, hvordan jeg skulle omsætte det til praksis.
        I min kode har jeg sat de der time.sleep ind. Så er det at jeg tænkte at jeg måske kunne gøre at man startede med at indætte sin alder, hvorefter time.sleep variere hele vejen ned, alt efter om man er god til at læse eller ej.
        Jeg tænkte at jeg skulle bruge time-sleep i en funktion – har jeg ikke ret?

        Nå men der er vel ikke andet for end at kæmpe videre, selvom jeg ville ønske jeg havde mere tid til det :-)

        Ultra:bit? Fedt. Jeg står faktisk nu og tænker at min ældste datter på 6 år snart skal i gang med at programmere lidt :-) Har du nogle anbefalinger?

        Mvh
        Nicky

        1. Simon R. siger:

          Hej Nicky,

          Fedt du kører videre, jeg kender kun alt for godt, det med at finde tid til sådanne ting, det er ikke altid lige nemt.

          Jeg kan ikke lige se noget på linket, jeg tror der er gået noget galt med det desværre.

          Mht. funktioner. Det er oplagt at lave noget til en funktion, hvis du gør en ting ofte, så f.eks det med alder, ville jeg ikke lave til en funktion, for det er kun noget du skal gøre en gang. Du kan lave det til en funktion, men der er ikke så meget mening i det. Derimod vil det give rigtig meget mening at lave det med at tage et valg, til en funktion.

          Jeg har lavet et eksempel på de to ting i linket her i bunden, som du kan bruge, med nogle kommentare i, som skulle forklare hvad jeg gør :)

          Mht. din datter. Super fedt at du vil opmuntre hende til at kode! Jeg har et par forslag.
          1. Scratch. Scratch bruges efterhånden meget i skolen, og det er en super god måde at lære lidt om programmering, især for børn (men er faktisk også lærerigt for voksne). Min storebror er faktisk ved at lave et kursus her til siden, i netop det (link i bunden). Indtil da, så har jeg og ham lavet en “programmerings julekalender” for alinea, også i Scratch, så der er lidt at gå i gang med.
          2. Hvis man gerne vil have noget mere fysisk at se sin kode på, så kan du søge lidt på BBC Micro:bit. Det er en “microcontroller”, som er god til at lære at programmere med, og det er det som DR’s Ultra:bit projekt går ud på (link i bunden).

          Skriv endelig igen, hvis du vil have mere info om noget af det :)

          Kode til dit spil: https://pastebin.com/iSkYMEuS
          Scratch på nemprogrammering: https://www.nemprogrammering.dk/wp/programmering-for-boern/
          Julekalender: https://lærkode.alinea.dk/julekalender/
          Ultra:bit: https://www.dr.dk/skole/ultrabit

          (Jeg har ikke lige haft stavekontrol på, så der er nok en del fejl, det må du undskylde :p )