Skip to content

Guia prático da palestra "Mão na massa sem pantim com Python, visse?" apresentada no dia 17/06/2020 na terceira sessão das quarentena lives da comunidade Pyladies Recife e no TDC São Paulo em 28/08/2020.

Notifications You must be signed in to change notification settings

coabr/pyladies-sem_pantim

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

34 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Mão na massa com Python sem pantim, visse?!

O que faremos:

Passo a passo do joguinho:

1 - Primeiro, importaremos a biblioteca randint e em seguida pediremos que a jogadora escolha entre tijolo, papel de embrulhar prego e facão, digitando alguma das iniciais em minúsculo:

  from random import randint

  jogadora = input(jogadora = input('tijolo (t), papel de embrulhar prego (p) ou facão (f)? '))

2 - Agora imprima a escolha do jogadora:

  print(jogadora, 'versus')

3 - Chegou a vez do computador. Vamos usar a função que importamos randint para gerar um número aleatório para decidir entre as três opções Tijolo, Papel de embrulhar prego e Facão:

  escolhido = randint(1,3)
  print(escolhido)

4 - Nesse ponto, é interessante que você rode seu código várias vezes, a fim de checar se a função está funcionando corretamente (aleatoriamente) como devia.

  • Vamos dizer que:
    • 1 = tijolo (t)
    • 2 = papel de embrulhar prego (p)
    • 3 = facão (f)

Use if para checar se o numero escolhido é 1, 2 ou 3:

  if escolhido == 1:

Não esqueça dos dois pontos e da identação, pois é isso que vai sinalizar ao python que o seu código está dentro desse bloco.

  if escolhido == 1:
    computador = 't'
  elif escolhido == 2:
    computador = 'p'

Essa condição vai somente ser checada se a primeira condição for falsa. E finalmente, se o computador nao escolher nem 1 nem o 2, ele obrigatoriamente deverá escolher o 3, entao só precisamos adicinar um else e todas as possibilidades serão satisfeitas.

  else:
    computador == 'f'

5 - Agora, ao invés de imprimir um número aleatório, podemos imprimir a escolha do computador em forma de letra:

  escolhido = randint(1,3)
    # print(escolhido) Comente esta linha para não imprimir o valor escolhido em forma de número
  if escolhido == 1:
    computador = 't'
  elif escolhido == 2:
    computador = 'p'
  else:
    computador == 'f'
  print (computador)

Teste seu código escolhendo sua opção

6 - Por enquanto você vai ter que pensar um pouco para saber quem ganhou. Nesse próximo passo vamos repassar essa tarefa para o python fazer por nós! Queremos que o código compare as variáveis de jogadora com o a de computador para vermos quem venceu ou se houve um empate:

  print (computador)

  if jogadora == computador:
    print("EMPATE!")

Você precisará rodar o código novamente pra iniciar um novo jogo. Seguindo a lógica adaptada, neste jogo, diferente do "pedra, papel e tesoura" original:

  • facão ganha de tijolo;
  • papel de embrulhar prego ganha de facão;
  • tijolo ganha de papel de embrulhar prego.

7 - Por fim, aplicando a lógica condicional às regras do jogo, nosso código resultará nisso:

  print(jogadora, "versus", computador)

  if jogadora == computador:
      print("EMPATE!")
  elif jogadora == 't' and computador =='f':
      print("Se lascou! Levou facada de um robô")
  elif jogadora == 't' and computador == 'p':
      print("Tu é arretada mermo! Ganhasse, visse?")
  elif jogadora == 'p' and computador == 't':
      print("Se lascou! Levou tijolada de um robô")
  elif jogadora == 'p' and computador == 'f':
      print("Tu é arretada mermo! Ganhasse, visse?")
  elif jogadora == 'f' and computador == 't':
      print("Tu é arretada mermo! Ganhasse, visse?")
  elif jogadora == 'f' and computador == 'p':
      print("Se lascou! Fosse embrulhada pelo robô")
  else:
      print(jogadora+"??? é o quê, mia fia??!?")

Como você pode notar, o ultimo caso, representado pelo else, é para capturar algum erro que o jogadora venha a cometer, ou seja, caso ele digite qualquer coisa que não seja 't', 'p' ou 'f'.

8 - Como sugestão de melhorias, esse código tem uma infinidade de possibilidades. Este guia foi montado com o objetivo de que quem assistir à palestra do dia 17/06 ao vivo ou gravada, possa ter esse material como apoio para reproduzir sozinha ou sozinho o código.

  • Como desafio, já pensou como seria se ao invés de imprimir letras, imprimíssemos artes em ASCII? Ou seja, desenhos como esses:
        facão:
        ______________________________ ______________________
      .'                              | (_)     (_)    (_)   \
    .'                                |  __________________   }
  .'_.............................____|_(                  )_/

        tijolo:
  _|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
  ___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
  _|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
  ___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
  _|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
  ___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
  _|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
  ___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|__
  _|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|

        papel de embrulhar prego:

                                _.._      _
                                (\   `-../' `\
                      _..--..__|_)      )   )`-.
                      (_       |  |     /   |    `-..,,
                      | )      |  |    (   ,'         )
                      |,'\     (  (    '  (          ,'
                __..-'   \     )  )      |         ,\.__
                `\         \    `. `.     )        ,'    ``--,
                  `\        \    )  )    (        ,'        /
                    `\_      |   (  (    |       (        ,'"Y8a,_
                __,,ad8b,    (   `. `.   |      ,'     _,'     `""Y8a,_
        __,,aad8P""'' _,8b    )   )  )   |     ,'   _,d88b          `""Y8a
  _,aad8P""''       ,d8888b   )   (  (   (    (  ,d8888P"'    __,,aadd8PP8
  8"Y8b,_           `Y888888a,(,,,,),,),aabaaadgd8PP"'__,,aadd8PP""''    8
  8   ""Y8a,_          ``""YYYYY88888PPPP"""''__,,aadd8PP""''            8
  8       ""Y8a,_                     __,,aadd8PP""''                    8
  8           ""Y8a,_         __,,aadd8PP""''                            8
  8               ""Y8a,,,aadd8PP""''                                    8
  8                   "8P""''                                           _8
  8                    8                                         _,,aadd88
  8b,_                 8                                  _,,aadd88888888P
  8888ba,              8                           _,,aadd88888888PP""''
  `"Y8888b,_          8                    _,,aadd88888888PP""''
      `"Y8888ba,       8             _,,aadd88888888PP""''
        `"Y88888b,_   8      _,,aadd88888888PP""''
            ""88888ba,8,,aadd88888888PP""''
                `"Y888888888888PP""''
                  `"Y88PP""''
                      "

9 - Referências e Links úteis:

About

Guia prático da palestra "Mão na massa sem pantim com Python, visse?" apresentada no dia 17/06/2020 na terceira sessão das quarentena lives da comunidade Pyladies Recife e no TDC São Paulo em 28/08/2020.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages