Šī vienkāršā spēles apmācība palīdzēs jums praktizēt Python programmēšanas pamatus.
Spēles "Akmens, papīrs, šķēres" izveide programmā Python ir lielisks veids, kā uzlabot savas programmēšanas prasmes. Varat izveidot spēli ar vienu Python skriptu un spēlēt to komandrindā.
Spēle sākas, jautājot spēlētājam pēc izvēles: "akmens", "papīrs" vai "šķēres". Pēc tam tas gaida, līdz viņi ievadīs savu atbildi. Jūs varat spēlēt spēli pret "datora" spēlētāju, kurš automātiski izvēlēsies savu gājienu.
Spēle var ietvert arī daudzas kārtas. Tātad, pat ja jūs zaudējat pirmajā kārtā, jūs joprojām varat mēģināt uzvarēt divas no trim!
Kā iestatīt spēli un lūgt spēlētājam viņu gājienu
Kad spēle sākas, Python programmai jālūdz spēlētājam ievadīt "akmens", "papīrs" vai "šķēres" un uztvert spēlētāja atbildi. Lai iestatītu jaunu spēli, vispirms izveidojiet jaunu Python failu ar paplašinājumu .py.
Pilns šīs apmācības kods ir pieejams GitHub repozitorijs.
- Izveidojiet jaunu failu ar nosaukumu RockPaperScissors.py.
- Atveriet jauno Python failu, izmantojot jebkuru teksta redaktoru, piemēram, Notepad++ vai Visual Studio Code.
- Faila augšdaļā importējiet izlases moduli. Jūs to izmantosit vēlāk spēlē, lai nejauši izvēlētos gājienu datora kārtai.
imports nejauši
- Nosūtiet spēlētājam ziņojumu, aicinot ievadīt akmeni, papīru vai šķēres.
userChoice = ievade("Akmens, papīrs vai šķēres? ").lower()
- Inicializējiet masīvu ar nosaukumu "moveOptions", kurā tiek saglabāts pieejamo kustību saraksts, ko varat atskaņot jūs vai dators.
moveOptions = ['akmens', "papīrs", 'šķēres']
- Kad spēlētājs ievada ievadi, apstipriniet to, lai pārliecinātos, ka tā ir viena no pieejamajām kustībām. Kad spēlētājs ir ievadījis derīgu gājienu, izdrukājiet apstiprinājuma ziņojumu.
kamēr (lietotāja izvēle nav iekšā MoveOptions):
userChoice = ievade("Nederīga izvēle. Jābūt akmenim, papīram vai šķērēm:).lower()
drukāt("")
drukāt (f"Tu izvēlējies {userChoice}.")
Kā pamīšus strādāt ar datoru un salīdzināt kustības
Kad esat ievadījis savu gājienu, dators uzņems savu kārtu, nejauši izvēloties "akmens", "papīrs" vai "šķēres". Pēc tam spēlei būs jāsalīdzina jūsu gājiens ar datora gājienu, lai noteiktu, kurš uzvarēja.
- Izmantojiet izlases moduli, lai dators nejauši izvēlētos no pieejamo kustību saraksta.
computerChoice = random.choice (moveOptions)
drukāt (f"Dators izvēlējās {computerChoice}.") - Jums būs jāsalīdzina jūsu gājiens ar datora gājienu, lai noteiktu, kurš ir uzvarējis. To var izdarīt, izveidojot jaunu vārdnīcu. Šajā vārdnīcā ir ietverts katrs gājiens (piemēram, "akmens") un tas, kuram gājienam tā uzvar vai zaudē (piemēram, "akmens" pārspēj "šķēres" un zaudē "papīram").
kustas = {
'akmens': { "sit": 'šķēres', 'losesTo': "papīrs" },
'šķēres': { "sit": "papīrs", 'losesTo': 'akmens' },
"papīrs": { "sit": 'akmens', 'losesTo': 'šķēres' },
} -
Izmantojiet Python if paziņojumu lai pārbaudītu, vai jūsu un datora gājiena rezultāts ir neizšķirts. Pretējā gadījumā izmantojiet gājienu vārdnīcu, lai salīdzinātu spēlētāja gājienu ar datora gājienu.
Piemēram, ja jūs izvēlējāties "rock", tad kustības [userChoice]['beats'] vērtība būtu "šķēres". Ja datora izvēle bija "šķēres", tas nozīmē, ka jūsu gājiens pārspēja viņu kustību.ja userChoice == computerChoice:
drukāt (f "Izvēlējāties gan jūs, gan dators {userChoice}. Tas ir neizšķirts!")
cits:
ja (pārvieto [lietotāja izvēle]["sit"] == ComputerChoice):
drukāt (f"{userChoice} sitieniem {computerChoice}. Tu uzvari!")
ja (pārvieto [lietotāja izvēle]['losesTo'] == ComputerChoice):
drukāt (f"{userChoice} zaudē līdz {computerChoice}. Dators uzvar!")
Kā saglabāt rezultātu starp spēlētāju un datoru starp vairākiem raundiem
Varat arī pievienot papildu kārtas, kurās jūs un dators veicat trīs apgriezienus.
Kad jūs un dators esat izvēlējies akmeni, papīru vai šķēres, spēle jums jautās vēlreiz un sekos jūsu rezultātiem. Spēlētāja rezultāts palielinās atkarībā no tā, kurš uzvarēja šajā konkrētajā kārtā.
- Pašreizējais kods apzīmē vienu pagriezienu kārtu, ko veic gan spēlētājs, gan dators. Pievienojiet visu pašreizējo kodu, izņemot importēšanas paziņojumu, funkcijā new turn(). Varat arī attiecīgi mainīt izvades ziņojumus, lai teiktu "Jūs uzvarējāt šajā kārtā", nevis "Tu uzvarēsi".
defpagrieziens():
userChoice = ievade("Akmens, papīrs vai šķēres? ").lower()moveOptions = ['akmens', "papīrs", 'šķēres']
kamēr (lietotāja izvēle nav iekšā MoveOptions):
userChoice = ievade("Nederīga izvēle. Jābūt akmenim, papīram vai šķērēm:).lower()drukāt("")
drukāt (f"Tu izvēlējies {userChoice}.")computerChoice = random.choice (moveOptions)
drukāt (f"Dators izvēlējās {computerChoice}.")kustas = {
'akmens': { "sit": 'šķēres', 'losesTo': "papīrs" },
'šķēres': { "sit": "papīrs", 'losesTo': 'akmens' },
"papīrs": { "sit": 'akmens', 'losesTo': 'šķēres' },
}ja userChoice == computerChoice:
drukāt (f "Izvēlējāties gan jūs, gan dators {userChoice}. Tas ir neizšķirts!")
cits:
ja (pārvieto [lietotāja izvēle]["sit"] == ComputerChoice):
drukāt (f"{userChoice} sitieniem {computerChoice}. Tu uzvarēsi šo kārtu!")ja (pārvieto [lietotāja izvēle]['losesTo'] == ComputerChoice):
drukāt (f"{userChoice} zaudē līdz {computerChoice}. Dators uzvar!") - Spēlētājs un dators katrs veic trīs apgriezienus. Faila augšdaļā pievienojiet globālo mainīgo ar nosaukumu "pagriezieni".
pagriezieni = 3
- Pēc funkcijas turn() izmantojiet Python cilpai kārtu atkārtot trīs reizes. Katras kārtas sākumā izdrukājiet kārtas numuru. Izsauciet funkciju turn(), lai lūgtu spēlētājam un datoram veikt kustības šajā kārtā.
i diapazonā (pagriezieni):
drukāt("")
drukāt (f" Kārta {i+1}: ")
pagriezt () - Lai izsekotu, kurš uzvarēja katrā kārtā, faila augšdaļā pievienojiet katra spēlētāja rezultāta mainīgo. Jūs piešķirsit šiem mainīgajiem vērtības turn() funkcijā, tāpēc noteikti izmantojiet tos kā globālos mainīgos.
ComputerScore = 0
Playerscore = 0defpagrieziens():
globāli computerScore, playerScore - Kad gan spēlētājs, gan dators ir izdarījuši savu gājienu, funkcijā turn() pievienojiet punktu uzvarētāja rezultātam. Mainiet priekšrakstu if, lai palielinātu mainīgā "playerScore" vai "computerScore" vērtību.
ja (pārvieto [lietotāja izvēle]["sit"] == ComputerChoice):
drukāt (f"{userChoice} sitieniem {computerChoice}. Tu uzvarēsi šo kārtu!")
player Score += 1ja (pārvieto [lietotāja izvēle]['losesTo'] == ComputerChoice):
drukāt (f"{userChoice} zaudē līdz {computerChoice}. Dators uzvar!")
ComputerScore += 1 - Funkcijas turn() beigās izdrukājiet katra spēlētāja kopējo rezultātu atjauninājumu.
# Izdrukājiet atjauninājumu par kopējo rezultātu pēc kārtas
drukāt("")
drukāt (f"SCOREBOARD | Spēlētāja rezultāts: {playerScore} | Datora rezultāts: {computerScore}") - Spēles pašās beigās un pēc for cilpas, kas atkārto spēlētāja un datora gājienus, izdrukājiet galīgo uzvarētāju.
drukāt("")
ja (computerScore > playerScore):
drukāt (f"Dators uzvar ar {computerScore} punktus!")
elifs (playerScore > computerScore):
drukāt (f"Tu uzvarēsi ar {playerScore} punktus!")
cits:
drukāt (f"Tā ir kaklasaite! Jūs abi uzvarat ar {playerScore} punktus!")
Kā palaist spēli
Lai spēlētu spēli, palaidiet Python skriptu, izmantojot termināli vai komandu uzvedni. Ievadiet savu gājienu un pagaidiet, līdz dators to pārņems. Kad esat pabeidzis trīs kārtas, programma parādīs uzvarētāju.
- Atveriet komandu uzvedni vai termināli un dodieties uz mapi, kurā glabājat savu Python failu.
- Izmantojiet python komandu, lai palaistu skriptu:
pitonsAkmens Šķēres Papīrīts.py
- Spēlējiet spēli, ievadot “akmens”, “papīrs” vai “šķēres”.
Apgūstiet Python, izveidojot spēles
Vienkāršu spēļu, piemēram, spēles "Akmens, papīra, šķēres" izveide ir lielisks veids, kā iepazīt programmēšanas koncepcijas. Ir tik daudz citu jautru spēļu, kuras varat izveidot, izmantojot Python, piemēram, teksta piedzīvojumu spēli.