Esto no es un tutorial como otros, lo único que traigo aquí es un mini juego de azar de interfaz de texto, para que veas un poco su funcionamiento, a continuación te dejo una captura de una partida en la que "gano".
El juego trata de hacer una apuesta y elegir entre 3 opciones que se dan, acto seguido se desvelará una de las opciones malas (en la que no ganas) y te pedirá que decidas si quieres aumentar la apuesta o cambiar de opción (solo quedan 2, y una es la tuya, por lo que el cambio será automático), para finalmente mostrar el resultado, si ganas tendrás la suma del saldo inicial de créditos y tu apuesta, si pierdes tendrás la resta.
random.seed() ace = random.randrange(3)
A continuación os dejo el código:
import io import random from encodings.idna import ace_prefix # coding=<UTF-8> class juego: def mostrar(ele,pos,ace,ch=0): aux2 = 0 if (ele == 0): print(".-. .-. .-.") print(" 1 2 3 ") elif (ele == 1): print(".-. .-. .-.") aux =0 ya = False while aux<=2: if (aux == ace or aux == pos or ya): print(" X ",end="") else: print(" Q ",end="") ya = True aux2 = aux aux += 1 print() else: aux = 0 while (aux <= 2): if (aux == ace): print(" A ",end="") else: print(" Q ",end="") aux += 1 print() posi = pos aux = "" if (ch == 0): while (posi > 0): aux = " "+aux posi-=1 print(aux+" ^ Elegida") return aux2 # Fin mostrar def eleccion(): op = 9 while (op < 0 or op >= 3): print("¿Que opción eliges (1,2,3)?") op = int(input()) # genera excepción si no se mete un número op -= 1 if(op < 0 or op >= 3): print("Solo puedes elegir del 1 al 3 cómo opción") return op def leerApuesta(creditos): error=True while error: print("Tienes "+str(creditos)+" créditos, ¿cuánto apuestas?") apuesta = int(input()) # genera excepción si no se mete un número if (apuesta > creditos): print("No tienes tantos créditos...") elif (apuesta <= 0): print("Apuesta no válida...") else: error = False return apuesta def cambiarOpcion(aux,op): if (aux != 0 and op != 0): return 0 elif (aux != 1 and op != 1): return 1 else: return 2 seguir = 'S' #EMPIEZA AQUI EL JUEGO creditos = 100 while (seguir.lower() =='s') and creditos>0: random.seed() ace = random.randrange(3) apuesta2 = 0 error = True apuesta = juego.leerApuesta(creditos) jugar = juego() juego.mostrar(0,0,0,1) opcion = juego.eleccion() juego.mostrar(0,opcion,ace) print("¿Confirmas esta elección?...S-N") seguro = input() if(seguro.lower() == 's'): print("ok") else: opcion = juego.eleccion() auxiliar = juego.mostrar(1, opcion, ace) repetir = True while repetir: print("[A]umentar apuesta, o [C]ambiar de opción") conf = input() if (conf.upper() =='A'): if ((creditos-apuesta) == 0): print("No puedes apostar más, ¡mira tus créditos!") print("¿Deseas cambiar de opción? (S/N)") deseo = input() if (deseo.lower() == 's'): opcion = juego.cambiarOpcion(auxiliar,opcion) else: apuesta2 = juego.leerApuesta(creditos-apuesta) repetir = False elif (conf.upper() =='C'): opcion = juego.cambiarOpcion(auxiliar,opcion) repetir = False else: print("Opcion erronea ><") print("¿Estás listo?... que emoción, pulsa enter, a ver que pasa") input() juego.mostrar(2,opcion,ace) if (ace == opcion): print("Sí, Tu ganas") creditos += (apuesta+apuesta2) else: print("Lo siento, no ganaste") creditos -= (apuesta+apuesta2) if (creditos==0): print("Lo siento, te quedaste sin créditos, bye, bye") else: print("Actualmente tienes "+str(creditos)+" créditos") print("Deseas seguir jugando (S-N)") seguir = input()En el código la variable ace, es la opción que va a ganar, se pintará al final como letra A, si es una opción que no gana se pintará como Q, puedes ver la opción que has elegido con el símbolo ^ que aparece debajo de la opción.
muy bueno si que te hace ver la lógica de otra perspectiva