Begynder Kunst Python

Skildpadde ræs

Race turtles against each other!


Start

Introduktion

Brug loops til at tegne en racerbane og lave et skildpadde-racerspil.

Hvad du vil lave

Dette projekt introducerer for-loops igennem et sjovt skildpadde-racerspil. Loops er brugt til at tegne racerbanen, og til at få skildpadderne til at bevæge sig et tilfældigt antal skridt hver runde. Hvis du har en gruppe af personer til at spille spillet, kan hver person vælge en skildpadde, og den der kommer længst er vinderen.

screenshot

Hvad du vil lære

Ved at lave dit skildpadde-racerspil, vil du lære hvordan man:

  • Skriver for loops i Python
  • Bruger tilfældige tal i Python
  • Tegner linjer i forskellige farver med Python Turtle

Dette projekt bruger elementer fra den følgende sektion af Raspberry Pi Digital Making Curriculum:

Yderligere information til undervisere

Hvis du har brug for at printe dette projekt, brug venligst den printer-venlige version.

Brug linket i sidefoden for at tilgå GitHub-repositoriet for dette projekt, som indeholder alle ressourcer (inklusivt et eksempel på et færdigt projekt) i ‘en/resources’ folderen.


Næste

Hvad du har brug for

Hardware

  • En computer med adgang til internettet

Software

Dette projekt bruger Python 3. Vi anbefaler at du bruger Trinket, da det tillader dig at skrive Python kode online.


Tilbage Næste

Racerbane

Du kommer til at lave et spil med racer skildpadder. Først har skildpadderne brug for en racerbane.

  • Åben det blanke Python template Trinket: jumpto.cc/python-new.

  • Tilføj den følgende kode til at tegne en linje ved at bruge ‘skildpadden’:

    screenshot

  • Lad os nu bruge skildpadden til at tegne nogle banemarkeringer til racet.

    Skildpadde-funktionen write udskriver tekst på skærmen.

    Prøv det:

    screenshot

  • Nu har du brug for at udskrive tallene imellem for at lave markeringer:

    screenshot

  • Bemærkede du at din kode er meget gentagende? Det eneste der ændrer sig, er tallet der skal udskrives.

    Der er en bedre måde at gøre dette på i Python. Du kan bruge et for loop.

    Updater din kode, så den bruger et for loop:

    screenshot

  • Hmm, der bliver kun printet tal op til 4. I Python skriver range(5) fem tal fra 0 og op til 4. For at få Python til også at skriev et 5-tal, er du nødt til at bruge range(6):

    screenshot

  • Nu kan vi tegne nogle banemarkeringer. Skildpadden starter ved koordinaterne (0,0), lige i midten af skærmen.

    Flyt skildpadden øverst til venstre i stedet for:

    screenshot

  • Ah, du bør nok løfte blyanten først!

    screenshot

  • I stedet for at tegne en linje vandret, så lad os tegne lodrette linjer for at lave en racerbane:

    screenshot

    right(90) får skildpadden til at dreje 90 grader til højre. Ved at flytte fremad med forward(10) før du sætter blyanten ned, så flytter du skildpadden frem uden at tegne og efterlader et lille hul mellem tallet og starten af linjen. Efter at have tegnet linjen løfter du blyanten og går tilbage med backward(160), som er længden af linjen plus hullet.

  • Det ser pænere ud hvis du centrerer tallene:

    screenshot

  • Du kan også øge skildpaddens hastighed, så den tegner hurtigere:

    screenshot


Tilbage Næste

Udfordring: Flere linjer

Kan du ændre din kode, så racerbanelinjerne går tværs over skærmen?

screenshot

Hvis du vil have skildpadden til at bevæge sig endnu hurtigere, kan du bruge speed(0).


Tilbage Næste

Racer skildpadder

Nu til den sjove del. Lad os tilføje racer skildpadder. Det ville være virkelig kedeligt, hvis skildpadderne gjorde det samme hver gang, så vi vil i stedet programmere dem til at bevæge sig et tilfældigt antal skridt hver runde. Vinderen er den skildpadde, der kom længst på 100 runder.

  • Når du bruger kommandoer som forward(20), bruger du en enkelt skildpadde. Men du kan lave flere skildpadder. Tilføj den følgende kode til slutningen af dit script (men vær sikker på, det ikke er indrykket):

    screenshot

    Den første linje laver en skildpadde kaldt ‘ada’. De næste linjer sætter farven og formen af skildpadden. Nu ligner det virkeligt en skildpadde!

  • Lad os sende skildpadden til startlinjen:

    screenshot

  • Nu skal du få skildpadden til at flytte et tilfældigt antal skridt hver runde. Du har brug for randint funktionen fra Python biblioteket random. Tilføj denne import linje øverst i dit script:

    screenshot

  • Funktionen randint sender et tilfældigt integer (heltal) mellem de valgt værdier tilbage. Skildpadden vil bevæge sig fremad 1, 2, 3, 4, eller 5 skridt hver runde.

    screenshot

  • Der er dog ikke meget race med kun en skildpadde! Lad os tilføje en til:

    screenshot

    Bemærk at koden til at fløtte den blå skildpadde skal være i den samme for loop som koden til at flytte den røde skildpadde, så de begge bevæger sig i hver runde.


Tilbage Næste

Udfordring: Race tid!

Nu er du klar til at race. Vælg en skildpadde og en modstander, og se hvem der vinder.

Kan du tilføje flere skildpadder, så du kan race med flere venner?

screenshot

Bud på mulige farver: orange, lilla, violet, tomat, turkis, magenta, og brun. Du kan også gå til jumpto.cc/colours og vælge en hvilken som helst farve, du kan lide!


Tilbage Næste

Udfordring: Drej rundt

Kan du bruge en for turn in range(): loop til at få hver skildpadde til at dreje 360 grader rundt, efter de kommer til startlinjen? Du bliver nødt til at sikre, at de vender den rigtige vej, når racet starter!

ada.right(36) vil dreje den røde skildpadde 36 grader til højre.

Hint: En fuld omdrejning er 360 grader. En skildpadde kan dreje 10 grader til højre 36 gange, eller 5 grader til venstre 72 gange, eller et andet antal grader der sammenlagt giver 360!


Tilbage Næste

Udfordring: Stiplede linjer

Kan du bruge et loop til at lave racerbanelinjerne stiplede i stedet for solide?

screenshot

Hint: Find koden, som tegner en lige linje. Prøv at bruge:for, forward(), penup() og pendown()


Tilbage

Licence

Unless otherwise specified, everything in this repository is covered by the following licence:

Creative Commons License

PROJECT NAME by the Raspberry Pi Foundation is licenced under a Creative Commons Attribution 4.0 International License.

login