Informática, perguntado por lucas27484, 7 meses atrás

alguém pode me ajudar em essa questão de python?

Pedra, Papel, Ataque Aéreo é um jogo infantil muito popular, em que duas ou mais crianças formam um circulo e fazem
gestos com a mão na tentativa de obter a vitória.

As partidas são muito simples. Os jogadores podem escolher entre o sinal de uma Pedra (o punho), o sinal de um Papel (a palma aberta), e o sinal para o Ataque Aéreo (igual o do Papel, mas com apenas o polegar e o mindinho estendidos).

Uma partida, com dois jogadores, possuem as seguintes regras para se definir um vencedor:

• Ataque Aéreo vs. Pedra: Neste caso, o jogador com o Ataque Aéreo derrota o jogador com a Pedra, por razões óbvias.

• Pedra vs. Papel. Neste caso, o jogador com a Pedra derrota o com Papel porque a Pedra machuca muito mais.

• Papel vs. Ataque Aéreo: Aqui o Ataque Aéreo ganha, porque Ataque Aéreo sempre ganha e o Papel é patético.

• Papel vs. Papel: Nesta variação, ambos os jogadores ganham, porque o Papel é inútil e ninguém que enfrenta o Papel pode perder.

• Pedra vs Pedra. Para este caso não há ganhador porque depende do que os ogadores decidem fazer com a Pedra e
normalmente não fazem nada.

• Aereo vs. Ataque Aéreo: Quando isto acontece, todos os jogadores perdem, devido a Aniquilação Mútua.

Sua tarefa é escrever uma função chamada ppa(a,b) que, dada as escolhas de dois jogadores, informe quem venceu o jogo.

Entrada:
A função possui dois inteiros a eb, representando as jogadas do jogador 1 e do jogador 2. que podem ser os valores
1, 2 ou 3 e estes representam o seguinte:

• 1: para representar a Pedra.
• 2: para representar o Papel.
3: para representar o Ataque Aéreo.

Saída
A função deve retornar o seguinte:

"Jogador 1 venceu": se o jogador Um tiver vencido a partida;

• "Jogador 2 venceu": se o jogador Dois tiver vencido a partida;

• "Ambos venceram": se os dois jogadores tiverem vencido a partida;

• "Sem ganhador": se não houver ganhador; e

“Aniquilacao mutua": se ocorrer Aniquilação Mútua.

Observações:
Submeta somente o que foi solicitado.​

Anexos:

Soluções para a tarefa

Respondido por GeBEfte
9

Para facilitar, vamos fazer uma tabela resumindo as 5 possibilidades de resultado seguindo a numeração dada no texto para os gestos.

\begin{array}{|c|c|}\sf Resultado&\sf~~a~,~b~~\\--------&---\\\sf Jogador~1~Venceu&\begin{array}{cc}1~,~2\\3~,~1\\3~,~2\end{array}\\--------&---\\\sf Jogador~2~Venceu&\begin{array}{cc}1~,~3\\2~,~1\\2~,~3\end{array}\\--------&---\\\sf Sem~ganhador&1~,~1\\--------&---\\\sf Ambos~venceram&2~,~2\\--------&---\\\sf Aniquilacao~mutua&3~,~3\\--------&---\end{array}

Com isso, podemos utilizar uma estrutura condicional (if/elif) para permitir que o programa possar nos indicar o(s) vencedor(es) e/ou outros resultador.

Note que não incluiremos uma condição "default " para tratar uma possível entrada incorreta de dados na função (ex.: a=4, b=5), pois o exercício é explicito nas "observações" quanto a codificar/programar além do que é solicitado no texto.

[Python 3.8]

\sf de f~ppa(a,~ b):\\~~~~  if~ a==1~ and~ b==2~ or~ a==3~ and~ b==1~ or~ a==3~ and~ b==2:\\~~~~~~~~	  return~ "Jogador~ 1~ venceu"\\  ~~~~elif~ a==1~ and ~b==3~ or~ a==2~ and~ b==1~ or~ a==2~ and~ b==3:\\	  ~~~~~~~~return~ "Jogador~ 2~ venceu"\\  ~~~~elif~ a==1~ and~ b==1:\\	 ~~~~~~~~ return~ "Sem~ ganhador"\\  ~~~~elif~ a==2 ~and~ b==2:\\~~~~~~~~	  return~ "Ambos~ venceram"\\ ~~~~ elif~ a==3~ and~ b==3:\\	 ~~~~~~~~ return~ "Aniquilac\!\!,\!\tilde{a}o~ m\acute{u}tua" \\

\Huge{\begin{array}{c}\Delta \tt{\!\!\!\!\!\!\,\,o}\!\!\!\!\!\!\!\!\:\,\perp\end{array}}Qualquer~d\acute{u}vida,~deixe~ um~coment\acute{a}rio


blaine14: oie alguém pode me ajudar na pergunta que eu postei??
lucas27484: o código rodou certinho mano, não tenho nenhuma dúvida só quero agradecer
adrianlimadeolivera1: oii
Perguntas interessantes