Øvet Spil Python

Sten, Saks, Papir

Lav din egen Sten, Saks, Papir spil i Python


Start

Introduktion

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:

  • Sten knækker saks
  • Saks klipper papir
  • Papir dækker sten

Sten saks papir færdigt

Yderligere information til klubledere

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

  • infoKlubleder notater

    Introduktion:

    I dette projekt vil de unge mennesker lære at programmere et Sten, Saks, Papir spil, hvor der bruges variabler og betingede udsagn.

    Online Resourcer

    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:

    Offline Resourcer

    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:

    • rock-paper-scissors/rock-paper-scissors.py

    Du kan også finde en færdig version af dette projekt i ‘Volunteer Resources’ sektionen, som indeholder:

    • rock-paper-scissors-finished/rock-paper-scissors.py

    (Alle ovenstående resourcer kan også downloades som projekt- og frivilige .zip-filer.)

    Læringsmål

    • Variabler
    • Valg med betingelser (if, elif, else);
    • Boolean == og and.

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

    Udfordringer

    • “ASCII art” - Bruge betingede udsagn til at vise ASCII art for sten, saks, og papir
    • “Create a new game” - Kopier Sten, Saks, Papir spillet og remix det til at lave et nyt spil.

Næste

Spillerens Tur

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.

    screenshot

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

    screenshot

  • Udskriv derefter, hvad spilleren har valgt:

    screenshot

  • Test din kode ved at klikke Run. Klik i trinket output-vinduet og indtast dit valg.


Tilbage Næste

Computerens Tur

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.

    screenshot

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

    • 1 = sten (r)
    • 2 = saks (s)
    • 3 = papir (p)

    Brug if for at checke, om det valgte nummer er 1 (== bruges for at checke, om 2 ting er de samme).

    screenshot

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

    screenshot

  • Du kan tilføje en anden form for check ved at bruge elif (kort for else if):

    screenshot

    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.

    screenshot

  • Nu kan du udskrive bogstavet, i stedet for det tilfældige tal som computeren har valgt.

    screenshot

    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.

    screenshot

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


Tilbage Næste

Check resultatet

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:

    screenshot

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

    screenshot

  • Lad os derefter undersøge tilfældet, hvor spilleren valgte ‘p’ (papir), men computeren ikke gjorde det:

    screenshot

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

    screenshot

    klik Run for at starte et nyt spil.


Tilbage Næste

Udfordring: ASCII Art

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:

screenshot

Hvor:

sten: O
saks: >8
papir: ___
  • I stedet for at skrive 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:

screenshot

screenshot

  • I stedet for at skrive 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:

screenshot

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.

  • Opret en linje til at udskrive vs mellem spillerens og computerens resultater.
print('vs', end=' ')

Tilbage Næste

Udfordring: Lav et nyt spil

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

screenshot


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