﻿# jeu du lancer des trois dés du devoir n° 1


from random import randint


def double(a, b, c):
    return a == b or a == c or b == c
    # l'expression, a == b or a == c or b == c renvoie True ou False


def triple(a, b, c):
    return a == b and b == c
    # le dernier test, c == a est alors inutile


def somme(a, b, c):
    return a + b + c
    # tout simplement


def jeu():
    a = randint(1, 6)
    b = randint(1, 6)
    c = randint(1, 6)
    return triple(a, b, c) or (somme(a, b, c) >= 13 and (double(a, b, c) and not triple(a, b, c)))
    # cette denière ligne peut être simplifiée...


def frequence_victoires(nb_lancers):
    victoires = 0
    for k in range(nb_lancers):
        if jeu():                   # a le même effet que, if jeu() == True:
            victoires += 1
    frequence = round(victoires * 100 / nb_lancers, 2)
    return frequence


def premiere_victoire():
    nb_lancers = 1
    while not jeu():                # a le même effet que: if jeu() == False
        nb_lancers += 1
    return nb_lancers


# programme principal
nb_lancers = 30000
print("fréquences de réussite : ", end="")
print(frequence_victoires(nb_lancers))
print("Première réussite au lancer numéro : ", end="")
print(premiere_victoire())
