Guest User

Untitled

a guest
Feb 21st, 2018
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.64 KB | None | 0 0
  1. # -*- coding: utf-8 -*-
  2. vivos = True # condição pra permanecer no while
  3. voltando = False # condição pra facilitar a interface com o jogador
  4.  
  5. def move_barco(origem, destino, canibais, missionarios):
  6. global voltando
  7. if canibais+missionarios == 1 or canibais+missionarios == 2: # só pode transportar 1 ou passageiros
  8. # tira os passageiros da margem de origem
  9. origem['canibais'] -= canibais
  10. origem['missionarios'] -= missionarios
  11. # adiciona os passageiros na margem destino
  12. destino['canibais'] += canibais
  13. destino['missionarios'] += missionarios
  14. voltando = not voltando # inverte o percurso do barco
  15. else:
  16. print("Verifique a quantidade de pessoas no barco.\n")
  17.  
  18. def situacao_margens(margem_esq, margem_dir): # mostra as pessoas em cada margem
  19. print('\nmargem esquerda:',margem_esq)
  20. print('\nmargem direita:', margem_dir,'\n')
  21.  
  22. def verifica_quantidade(margem_esq, margem_dir): # verifica a quantidade de missionários e canibais
  23. global vivos
  24. if margem_esq['canibais'] > margem_esq['missionarios'] and margem_esq['missionarios'] != 0 or margem_dir['canibais'] > margem_dir['missionarios'] and margem_dir['missionarios'] != 0: # se em alguma das margens houver mais canibais que missionários,
  25. print('Missionários morreram!\n') # os missionários morrem
  26. vivos = False # e o jogo é finalizado
  27.  
  28. def main():
  29. global vivos
  30. margem_esq = {'canibais':3, 'missionarios':3}
  31. margem_dir = {'canibais':0, 'missionarios':0}
  32. while(vivos):
  33. print("---------------------------------------------------")
  34. print("Margem direita -> margem esquerda\n") if voltando else print("Margem esquerda -> margem direita\n") # facilita a interface com o jogador
  35. canibais = int(input("Quantidade de canibais no barco:\n")) # pergunta a quantidade de canibais no barco
  36. missionarios = int(input("Quantidade de missionários no barco:\n")) # pergunta a quantidade de missionários no barco
  37. if voltando: # se estiver voltando, vai da direita pra esquerda
  38. move_barco(margem_dir, margem_esq, canibais, missionarios)
  39. else: # se tiver indo, vai da esquerda pra direita
  40. move_barco(margem_esq, margem_dir, canibais, missionarios)
  41. if margem_dir['canibais'] == 3 and margem_dir['missionarios'] == 3: # se todos estiverem na margem direita, o jogo é finalizado
  42. vivos = False # não morreram, é apenas para sair do while
  43. situacao_margens(margem_esq, margem_dir) # verifica quais as pessoas em cada magem
  44. verifica_quantidade(margem_esq, margem_dir) # verifica a quantidade de missionários e canibais
  45.  
  46. main()
Add Comment
Please, Sign In to add comment