NemProgrammering.dk logo

Opsamling | Vi laver et spil!

Lær Python programmering » Opsamling | Vi laver et spil! # 6

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!

  • 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 )