I dette projekt vil du lave et Sten, Saks, Papir spil og spille mod computeren.
Regler: Du og computeren vælger begge mellem sten, saks, eller papir. Vinderen er valgt ud fra disse regler:
Hvis du har brug for at printe dette projekt, brug venligst den Printer-venlige version.
I dette projekt vil de unge mennesker lære at programmere et Sten, Saks, Papir spil, hvor der bruges variabler og betingede udsagn.
Dette projekt bruger Python 3. Vi anbefaler at bruge trinket til at skrive Python online. Dette projekt indeholder følgende Trinkets:
Der er også en Trinket, der indeholder det færdige projekt:
Dette projekt kan blive fuldført offline hvis man foretrækker det. Du kan tilgå projektresourcerne ved at klikke på ‘Project Materials’ linket for dette projekt. Dette link indeholder en ‘Project Resources’ sektion, der inkluderer resourcer som børn skal bruge for at afslutte dette projekt offline. Vær sikker på, at hvert barn har adgang til en kopi af disse resourcer. Denne sektion indeholder følgende filer:
Du kan også finde en færdig version af dette projekt i ‘Volunteer Resources’ sektionen, som indeholder:
(Alle ovenstående resourcer kan også downloades som projekt- og frivilige .zip
-filer.)
if
, elif
, else
);==
og and
.Dette projekt bruger elementer fra den følgende sektion af Raspberry Pi Digital Making Curriculum:
Først, lad spilleren vælge mellem sten, saks, eller papir.
Åben denne trinket: jumpto.cc/rps-go.
Projektet indeholder allerede koden til at hente en funktion, som du skal bruge i dette projekt.
Du vil senere bruge randint
til at skabe tilfældige tal.
Først, lad spilleren vælge mellem sten, saks, eller papir ved at indtaste bogstaverne ‘r’, ‘s’, eller ‘p’ (‘r’ står for ‘rock’, som betyder sten på engelsk).
Udskriv derefter, hvad spilleren har valgt:
Test din kode ved at klikke Run
. Klik i trinket output-vinduet og indtast dit valg.
Nu er det computerens tur. Du kan bruge randint
funktionen til at generere et tilfældigt tal for at vælge mellem sten, saks, og papir.
Brug randint
til a generere et tilfældigt tal for at se, om computeren har valgt enten sten, saks, eller papir.
Kør dit script flere gange i streg (du har brug for at indtaste ‘r’, ‘s’, eller ‘p’ hver gang)
Du burde se at ‘chosen’ er tilfældigt sat til enten 1, 2, eller 3.
Lad os antage, at:
Brug if
for at checke, om det valgte nummer er 1
(==
bruges for at checke, om 2 ting er de samme).
Python bruger indrykning (flytte kode til højre) for at vise, hvilken kode er inde i en if
. Du kan enten bruge to mellemrum (tryk mellemrumstasten to gange), eller trykke tabulatortasten (tasten er normalt over CAPSLOCK på keyboardet)
Sæt computer
til ‘r’ inde i if
ved at bruge indryking:
Du kan tilføje en anden form for check ved at bruge elif
(kort for else if):
Denne betingelse vil kun blive checket, hvis den første betingelse fejler (hvis computeren ikke valgte 1
)
Endelig, hvis computeren ikke har valgt 1
eller 2
, så må den have valgt 3
.
Denne gang kan vi blot bruge else
, som betyder ‘ellers’, og som bruges hvis alle andre betingelser før den fejler.
Nu kan du udskrive bogstavet, i stedet for det tilfældige tal som computeren har valgt.
Du kan enten slette linjen print(chosen)
, eller få computeren til at ignorere den ved at tilføje et #
som det allerførste på linjen.
Test din kode ved at klikke Run og indtaste dit valg.
Hmm, computerens valg bliver udskrevet på en ny linje. du kan fikse dette ved at tilføje end=' '
efter vs
. Dette fortæller Python, at udskriften skal slutte med et mellemrum i stedet for en ny linje.
Spil spillet et par gange ved at klikke Run og lave dit valg.
Lige nu er du nødt til selv at finde ud af, hvem der vandt. Efterfølgende vil du tilføje Python-koden der automatisk vil gøre dette.
Lad os nu tilføje kode, så man kan se hvem der vandt.
Du har brug for at sammenligne player
og computer
variablerne for at se, hvem der vandt.
Hvis de er den samme, er det uafgjort:
Test din kode ved at spille spillet et par gange, indtil du får uafgjort.
Du har brug for at klikke Run
for at starte et nyt spil.
Lad os nu undersøge tilfældet, hvor spilleren valgte ‘r’ (sten), men computeren ikke gjorde det.
Hvis computeren valgte ‘s’ (saks), har spilleren vundet (sten slår saks).
Hvis computeren valgte ‘p’ (papir), har computeren vundet (papir slår sten).
Vi kan checke spillerens valg og computerens valg ved at bruge and
.
Lad os derefter undersøge tilfældet, hvor spilleren valgte ‘p’ (papir), men computeren ikke gjorde det:
Til sidst, prøv selv at tilføje koden til at checke, hvem der vinder, når spilleren vælger ‘s’ (saks) og computeren vælger sten eller papir.
Spil dit spil nu for at teste din kode.
klik Run
for at starte et nyt spil.
I stedet for at bruge bogstaverne r, s, og p til at repræsentere sten, saks, og papir, kan du bruge ASCII art?
For eksempel:
Hvor:
sten: O
saks: >8
papir: ___
print computer
, bliver du nødt til at tilføje en ny linje til hver mulighed i if
-betingelsen for at udskrive den korrekte ASCII art.Hints:
print player
, bliver du nødt til at tilføje en ny if-sætning til at checke, hvad spilleren har valgt, og derefter udskrive den korrekte ASCII art:Hint:
Husk at når man tilføjer end=' '
for enden af print
, får man den til at afslutte med et mellemrum i stedet for en ny linje.
vs
mellem spillerens og computerens resultater.print('vs', end=' ')
Kan du lave dit eget spil ligesom Sten, Saks, Papir, men med andre objekter?
Klik ‘Duplicate’ knappen for at lave en kopi af dit Sten, Saks, Papir projekt til at starte fra.
Dette eksempel bruger Fire, Logs, og Water (Ild, Træstammer, og Vand):
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.