MENÜ

Honlap címe

Előző - #21 Érvényesítés dátuma | Tartalomjegyzék | Következő - #23 99 üveg sör

22. GYAKORLAT: KŐ, PAPÍR, OLLÓ

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

 

Asztali nézet