Előző - #21 Érvényesítés dátuma | Tartalomjegyzék | Következő - #23 99 üveg sör
rpsWinner('rock', 'paper') → 'player2'
Kő, papír, olló egy népszerű kézi játék két játékos számára. A két játékos egyszerre választ egyet a három lehetséges lépés közül, és dönti el a játék nyertesét: a kő veri az ollót, a papír veri a sziklát, az olló pedig a papírt. Ez a gyakorlat magában foglalja a játék kimenetelének meghatározását a két játékos lépései alapján.
Gyakorlat leírása
Írjon függvényt és rpsWinner()paraméterekkel . Ezeket a paramétereket a , , vagy a játékos lépését jelképező karakterláncok egyike adja át . Ha ennek eredményeként az 1. játékos nyer, a függvény visszatér . Ha ennek eredményeként a 2. játékos nyer, a függvény visszatér . Ellenkező esetben a függvény visszatér .player1player2'rock''paper''scissors''player one''player two''tie'
Ezek a Python- assertutasítások leállítják a programot, ha feltételük False. Másolja őket a megoldási program aljára. Az Ön megoldása akkor helyes, ha a következő assertállítások feltételei mind igazak :
assert rpsWinner('rock', 'paper') == 'kettes játékos'
assert rpsWinner('rock', 'scissors') == 'player one'
assert rpsWinner('paper', 'olló') == 'kettes játékos'
assert rpsWinner('paper', 'rock') == 'player one'
assert rpsWinner('scissors', 'rock') == 'kettes játékos'
assert rpsWinner('olló', 'papír') == 'player one'
assert rpsWinner('rock', 'rock') == 'nyakkendő'
assert rpsWinner('paper', 'paper') == 'nyakkendő'
assert rpsWinner('olló', 'olló') == 'nyakkendő'
Próbáljon megoldást írni a leírásban szereplő információk alapján. Ha továbbra is problémái vannak ennek a gyakorlatnak a megoldásával, további tippekért olvassa el a Megoldástervezés és a Különleges esetek és Gotchák című részt.
Előfeltétel fogalmak: Logikai operátorok, elif utasítások
Megoldás tervezése
A 20., „Szökőév” és a 21. „Dátum ellenőrzése” gyakorlat megoldásaihoz hasonlóan ennek a gyakorlatnak a megoldása az if - elif- else állítások halmaza. A player1paraméter az első játékos lépéseinek sztringjét tartalmazza, a player2paraméter pedig a második játékos lépéseinek sztringjét. Ezek a húrok a 'rock' , 'paper', és 'scissors' egyike lesz . Érdemes összehasonlító operátorokkal ellenőrizni mindkét játékos értékét, és összekapcsolni őket egy operátorral and . Például a kifejezés player1 == 'rock' azt értékeli, Truehogy az első játékos kővel ment-e, a kifejezés pedig player2 == 'paper' arra True, hogy a második játékos papírral ment-e. Ez azt jelenti, hogy a player1 == 'rock' és player2 == 'paper' kifejezésben a 'papír' értéke arra vonatkozik True, ha az operátor mindkét oldala Trueand értékre van kiértékelve . Ebben az esetben a második játékos a nyerő, és a függvénynek vissza kell térnie .'player2'
Különleges esetek és Gotchák
Ellenőrizheti, hogy a player1paraméter megegyezik-e player2a függvény elején lévő paraméterrel, és 'tie'ebben az esetben azonnal visszatérhet.
Most próbáljon meg egy megoldást írni az előző szakaszok információi alapján. Ha továbbra is problémái vannak a gyakorlat megoldásával, olvassa el a Megoldássablon részt további tippekért.
Megoldás sablon
Próbáljon először megoldást írni a semmiből. De ha nehézségei vannak, akkor a következő részprogramot használhatja kiindulási helynek. Másolja ki a következő kódot a https://invpy.com/rockpaperscissors-template.py webhelyről , és illessze be a kódszerkesztőbe. Cserélje ki az aláhúzást kódra, hogy működő programot készítsen:
def rpsWinner(mozgás1, lépés2):
# Ellenőrizze mind a hat lehetséges kombinációt egy nyertessel, és küldje vissza:
if move1 == 'rock' and move2 == 'papír':
vissza a "kettes játékos"
elif ____ == 'szikla' és mozgas2 == 'olló':
Visszatérés ____
____ move1 == 'papír' és ____ == 'olló':
Visszatérés ____
____ ____ == 'papír' és mozgás2 == 'rock':
Visszatérés ____
____ move1 == 'olló' és ____ == 'kő':
Visszatérés ____
____ ____ == 'olló' és ____ == 'papír':
vissza az "egyes játékos"
# Minden más kombinációnál döntetlen:
____:
Visszatérés ____
A gyakorlat teljes megoldását az A függelék és a https://invpy.com/rockpaperscissors.py tartalmazza . A program minden lépését megtekintheti, amint az egy hibakereső alatt fut a https://invpy.com/rockpaperscissors-debug/ oldalon .
Előző - #21 Érvényesítés dátuma | Tartalomjegyzék | Következő - #23 99 üveg sör