Bruno Dantas - 2014-04-28

Código-fonte do script

from random import randint

# Função que retorna se o usuário ganhou ou não o carro.
def show(mude):
    portas = [0, 0, 0]
    # sorteia e coloca o carro em uma das portas.
    sorteio = randint(0, 2)
    portas[sorteio] = 1
    # escolhe uma porta.
    escolha = randint(0, 2)
    # elimina uma porta errada.
    for i in range(2):
        if portas[i] == 0:
            portas[i] = 2
            break
    # mudar de porta, se assim o usuário quis.
    if mude == 1:
        for i in range(2):
            if i != escolha and portas[i] != 2:
                escolha = i
                break
    # vamos ver se o usuário ganhou...
    if portas[escolha] == 1:
        return 1
    else:
        return 0

loop = 0
while loop == 0:
    # o usuário define quantas vezes o sorteio ocorrerá e se deseja mudar de porta.
    vezes = int(input("Número de vezes: "))
    mudar = input("Mudar a porta? (S/N): ")
    if mudar == "s" or mudar == "S":
        mudar = 1
    else:
        mudar = 0

    # Iniciar a mágica
    ganhou = 0
    perdeu = 0
    print()
    for t in range(vezes):
        progresso = 100 * (t + 1) // vezes
        print("\rProcessando... {}%".format(progresso), end="")
        if show(mudar) == 1:
            ganhou += 1
        else:
            perdeu += 1

    # mostra os resultados.
    p_ganhou = 100 * ganhou // vezes
    p_perdeu = 100 * perdeu // vezes
    print("\n\nVocê ganhou {} vezes ({}%) e perdeu {} vezes ({}%)\n".format(ganhou, p_ganhou, perdeu, p_perdeu))