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