Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # -*- coding: utf-8 -*-
- vivos = True # condição pra permanecer no while
- voltando = False # condição pra facilitar a interface com o jogador
- def move_barco(origem, destino, canibais, missionarios):
- global voltando
- if canibais+missionarios == 1 or canibais+missionarios == 2: # só pode transportar 1 ou passageiros
- # tira os passageiros da margem de origem
- origem['canibais'] -= canibais
- origem['missionarios'] -= missionarios
- # adiciona os passageiros na margem destino
- destino['canibais'] += canibais
- destino['missionarios'] += missionarios
- voltando = not voltando # inverte o percurso do barco
- else:
- print("Verifique a quantidade de pessoas no barco.\n")
- def situacao_margens(margem_esq, margem_dir): # mostra as pessoas em cada margem
- print('\nmargem esquerda:',margem_esq)
- print('\nmargem direita:', margem_dir,'\n')
- def verifica_quantidade(margem_esq, margem_dir): # verifica a quantidade de missionários e canibais
- global vivos
- 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,
- print('Missionários morreram!\n') # os missionários morrem
- vivos = False # e o jogo é finalizado
- def main():
- global vivos
- margem_esq = {'canibais':3, 'missionarios':3}
- margem_dir = {'canibais':0, 'missionarios':0}
- while(vivos):
- print("---------------------------------------------------")
- print("Margem direita -> margem esquerda\n") if voltando else print("Margem esquerda -> margem direita\n") # facilita a interface com o jogador
- canibais = int(input("Quantidade de canibais no barco:\n")) # pergunta a quantidade de canibais no barco
- missionarios = int(input("Quantidade de missionários no barco:\n")) # pergunta a quantidade de missionários no barco
- if voltando: # se estiver voltando, vai da direita pra esquerda
- move_barco(margem_dir, margem_esq, canibais, missionarios)
- else: # se tiver indo, vai da esquerda pra direita
- move_barco(margem_esq, margem_dir, canibais, missionarios)
- if margem_dir['canibais'] == 3 and margem_dir['missionarios'] == 3: # se todos estiverem na margem direita, o jogo é finalizado
- vivos = False # não morreram, é apenas para sair do while
- situacao_margens(margem_esq, margem_dir) # verifica quais as pessoas em cada magem
- verifica_quantidade(margem_esq, margem_dir) # verifica a quantidade de missionários e canibais
- main()
Add Comment
Please, Sign In to add comment