vendredi 9 octobre 2020

Stopping a coin flip simulation after required conditions are met [closed]

The following code is a response to a question someone asked a few years back. I'm trying to do something similar, but instead of stopping after 3 consecutive flips, I want to learn how to stop after a predetermined number of heads/tails have been reached (a different amount for each one). So stop the code if heads comes up 7 times, or tails comes up 8 times.

import random

def flips():
        """Coin flip simulation."""

    # sum of coins
    sum_heads = 0
    sum_tails = 0

    last_3_results = []

    # Simulation
    while True:
        coin = random.randint(0,1)
        if coin == 0:
            sum_heads += 1
            print("heads")
        else:
            print("tails")
            sum_tails += 1
        if sum_heads == 8:
            print("Simulation complete! 8 total heads were flipped.")
            break
        if sum_tails == 9:
            print("Simulation complete! 9 total tails were flipped.")
            break

        last_3_results.append(coin)

        if len(last_3_results) > 3:
            last_3_results.pop(0)

        if len(last_3_results) ==3 and len(set(last_3_results)) == 1 and last_3_results[0] == 0:
            break

    # Ask user for repeat    
    result = input("Would you like to run the simulation again (yes/no)? ").lower()
    while result == "yes":
        flips()
        break
flips()



Aucun commentaire:

Enregistrer un commentaire