def inicial(self,a0): cond = (a0>=1 and a0<=self._resto) mensaje = "'inicial' debe ser mayor que 1 y menor que el resto(%d)"%(self._resto,) valida(cond,a0,mensaje) self._inicial = a0 self._novamas.inicial = a0 self._inicializa()
def maximo_de_la_ruleta(self, x): if x is not None: mnm = self._limites["ruleta"][_minimo_] mxm = max(self._limites[k][_maximo_] for k in self._limites if k != "ruleta") cond = x >= mnm and x >= mxm mensaje = "El máximo de la ruleta debe ser mayor o igual que el mínimo de ruleta y\nmayor o igual que el mayor de los máximos de las apuestas unitarias." valida(cond, x, mensaje) self._limites["ruleta"][_maximo_] = x
def minimo_de_la_ruleta(self, x): if x is not None: mxm = self._limites["ruleta"][_maximo_] cond = 0 < x <= mxm mensaje = ( "El mínimo de la ruleta debe ser mayor o igual que cero y\nmenor o igual que el máximo de la ruleta." ) valida(cond, x, mensaje) self._limites["ruleta"][_minimo_] = x
def __setitem__(self, k, v): keys = set(apuestas_unitarias) cond = k in keys mensaje = "La clave debe de estar en el conjunto: " + repr(keys) valida(cond, k, mensaje) minimo, maximo = v mnm, mxm = self._limites["ruleta"] cond = 0 < minimo <= maximo <= mxm and minimo <= mnm mensaje = "Se debe cumplir 0 < mínimo <= máximo <= máximo de la ruleta y\nmínimo <= mínimo de la ruleta." valida(cond, v, mensaje) self._limites[k] = v
def __init__(self, tipo="europea", limites=None): cond = tipo in ruletas mensaje = "Sólo hay tres tipos de ruleta: {0}, {1} y {2}".format(*ruletas.keys()) valida(cond, tipo, mensaje) self._tipo = tipo R = ruletas[tipo] self._limites = R["limites"] keys = set(["ruleta"]) | set(apuestas_unitarias) cond = limites is None or set(limites) <= keys mensaje = "'limites' debe ser 'None' o un diccionario con claves en {0}".format(repr(keys)) valida(cond, limites, mensaje) if limites is not None: Rmax = limites["ruleta"][_maximo_] cond = all(0 < x[_minimo_] <= x[_maximo_] <= Rmax for x in limites.values()) mensaje = "Se debe cumplir 0 < mínimo <= máximo <= máximo de la ruleta" valida(cond, limites, mensaje) for k, v in limites.items(): self._limites[k] = v self._zeros = R["zeros"] self._pagoalcero = R["pagoalcero"]
def __init__(self, ruleta = 'europea', apuesta = 18, inicial = 1, funcion = ('apuesta','constante'), param = None, resto = 100 ): self._apuesta = Apuesta(ruleta=ruleta,multiplicidad=apuesta) cond = (resto >= 1) mensaje = "El resto debe ser mayor que 1" valida(cond,resto,mensaje) self._resto = resto cond = (inicial >= 1 and inicial <= self._resto) mensaje = "'inicial' debe ser mayor o igual que 1 y menor o igual que el resto(%d)"%(self._resto,) valida(cond,inicial,mensaje) self._inicial = inicial self._param = param cond = (funcion in NoVaMas.funciones) mensaje = "'funcion' debe ser una de "+repr(NoVaMas.funciones.keys()) valida(cond,funcion,mensaje) self._funcion = funcion clase,tipo = funcion params = {'inicial':self._inicial,'param':self._param,'ratio':self._apuesta.ratio} self._novamas = NoVaMas(clase,tipo,params) self._inicializa()
def __init__(self,ruleta='europea',multiplicidad=18): mltps = apuestas_unitarias.keys() cond = (multiplicidad in mltps) mensaje = "Las multiplicidades de las apuestas unitarias son: "+repr(mltps) valida(cond,multiplicidad,mensaje) self._multiplicidad = multiplicidad self._nombre = apuestas_unitarias[self._multiplicidad] R = Ruleta(tipo=ruleta) self._minima,self._maxima = R[self._multiplicidad] self._zeros = R['zeros'] self._exito = float(self._multiplicidad)/(36+self._zeros) self._fallo = 1-self._exito self._media = 1/self._exito self._varianza = (1-self._exito)/self._exito/self._exito self._moda = 1.0 self._mediana = math.ceil(-1/math.log(1-self._exito,2)) self._ratio = 36/self._multiplicidad-1 self._pago = (self._ratio,1)
def __init__(self, clase = 'apuesta', tipo = 'constante', argumentos = {'inicial':1,'param':None,'ratio':1} ): cond = (clase in NoVaMas.clases) mensaje = "'clase' debe ser '{0}' o '{1}'".format(*NoVaMas.clases) valida(cond,clase,mensaje) self._clase = clase cond = (tipo in NoVaMas.tipos) mensaje = "'tipo' debe ser uno de "+repr(NoVaMas.tipos) valida(cond,tipo,mensaje) self._tipo = tipo cond = (set(argumentos) == NoVaMas.__parametros) mensaje = "Los parámetros válidos son: {0}, {1} y {2}".format(*NoVaMas.__parametros) valida(cond,argumentos,mensaje) self._argumentos = argumentos funcion = dict(zip(NoVaMas.funckeys,NoVaMas.funciones[(clase,tipo)])) inicial = self._argumentos.setdefault('inicial',1) param = self._argumentos.setdefault('param',None) validaparam = funcion['validaparam'] cond = eval(validaparam[0]) mensaje = validaparam[1] valida(cond,param,mensaje) self._validaparam = validaparam self._codigo = funcion['codigo'] self._descripcion = funcion['descripcion'] self._funcion = self._genfunc() self._novamas = self._funcion_novamas()
def probabilidad(self,n): cond = (n>=1) mensaje="La longitud de la racha debe ser mayor o igual que 1" valida(cond,n,mensaje) return self._exito*(1-self._exito)**(n-1)
def resto(self,resto): cond = (resto >= 1) mensaje = "El resto debe ser mayor que 1" valida(cond,resto,mensaje) self._resto = resto self._inicializa()
def racha(self,n): cond = (n>=1 and n<=self._long) mensaje = "El número de jugada debe estar entre 1 y {0} ambos incluidos".format(self._long) valida(cond,n,mensaje) n = n-1 return self._Apuesta[n],self._Coste[n],self._Ganancia[n],self._Resto[n],self._prbs[n]