# -*- coding: utf-8 -*-
"""
Created on Thu Apr 14 15:39:38 2022

@author: baelo
"""
# Diseña un programa en Python que contenga lo siguiente:
    # Al menos un dato simple
    # Al menos una variable
    #Al menos una estructura de control
    # Al menos una función
    # Al menos tenga la capacidad de mostrar un mensaje de depuración de posibles errores,
    # en función del tipo de dato/s que requiera
    #Al menos una ejecución de la sentencia print() al final de su funcionamiento

#Juego de dados.

from random import randint
class Dado:
    #Representa la clase Dado 
    
    def __init__(self, num_caras, num_tiradas):
        #Se considera que el número de caras del dado y el número de tiradas
        
        self.num_caras = num_caras
        self.num_tiradas= num_tiradas
    
    def caras(self):
        return self.num_caras
    def tiradas(self):
        return self.num_tiradas

        
        
    def tirada(self):
        #Se establece que el dado devuelve un valor aleatorio entre 1 y el número de caras
        return randint(1,self.num_caras)
    
while True:
    try:    
        ncaras= int(input("Introduce las caras: "))
        print(f"las caras son ¨{ncaras}")
        ntiradas = int(input("Introduce las tiradas: "))
        print(f"las tiradas son: {ntiradas}")
    
        dado = Dado(ncaras, ntiradas)


#Hace las tiradas que se han definido y guarda el resultado en una lista

        results=[]

        for num_tirada in range(ntiradas):
            result = dado.tirada()
            results.append(result)
    
        print(f"El número de resultados obtenido es {results}")
        break
    except ValueError:

        print("Introduce un valor entero")

    except KeyboardInterrupt:
        fin = input("¿Deseas terminar el muestreo ? (S/N): ")
        if fin.upper == "S":
            print ("Programa terminado por el usuario")
    except: 
        print("Error inesperado")