Brug loops til at tegne en racerbane og lave et skildpadde-racerspil.
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.
Ved at lave dit skildpadde-racerspil, vil du lære hvordan man:
for
loops i PythonDette projekt bruger elementer fra den følgende sektion af Raspberry Pi Digital Making Curriculum:
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.
Dette projekt bruger Python 3. Vi anbefaler at du bruger Trinket, da det tillader dig at skrive Python kode online.
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’:
Lad os nu bruge skildpadden til at tegne nogle banemarkeringer til racet.
Skildpadde-funktionen write
udskriver tekst på skærmen.
Prøv det:
Nu har du brug for at udskrive tallene imellem for at lave markeringer:
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:
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)
:
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:
Ah, du bør nok løfte blyanten først!
I stedet for at tegne en linje vandret, så lad os tegne lodrette linjer for at lave en racerbane:
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:
Du kan også øge skildpaddens hastighed, så den tegner hurtigere:
Kan du ændre din kode, så racerbanelinjerne går tværs over skærmen?
Hvis du vil have skildpadden til at bevæge sig endnu hurtigere, kan du bruge speed(0)
.
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):
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:
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:
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.
Der er dog ikke meget race med kun en skildpadde! Lad os tilføje en til:
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.
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?
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!
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!
Kan du bruge et loop til at lave racerbanelinjerne stiplede i stedet for solide?
Hint: Find koden, som tegner en lige linje. Prøv at bruge:for
, forward()
, penup()
og pendown()
Unless otherwise specified, everything in this repository is covered by the following licence:
PROJECT NAME by the Raspberry Pi Foundation is licenced under a Creative Commons Attribution 4.0 International License.