# -*- coding: utf-8 -*-
import os, random, time,sys
import os.path as path
msgInicio = "Bienvenido al ahorcado"
print(msgInicio.center(50, '='))
adivinar = ["lux", "darius", "kaile"]
def guardarArray(array):
text = ""
document = open("datos.txt", "w")
for x in range(len(array)):
if(len(array) -1 ==x):
text += array[x]
else:
text += array[x]+","
document.write(text)
document.close()
return(text)
def leer():
if(path.exists("datos.txt")):
document = open("datos.txt", "r")
contenido = document.readline()
deposito = contenido.split(',')
return(deposito)
document.close()
else:
contenido = guardarArray(adivinar)
deposito = contenido.split(',')
return(deposito)
def strToList(cadena):
lista = []
for i in range(len(cadena)):
lista += cadena[i].split()
return(lista)
def listToStr(lista):
txt=""
for i in range(len(lista)):
if(len(lista)-1==i):
txt += lista[i]
else:
txt += lista[i]+","
return(txt)
def agregarItem():
try:
print("Agregar/modificar/eliminar algun item a la lista".center(70, '='))
print("\nlista actual: ", leer())
obtener = str(input("agregar(para agregar varios solo debes usar (, ): "))
agregar = obtener.split(", ")
adivinar.extend(agregar)
print("\nnuevos items", adivinar)
guardarArray(adivinar)
time.sleep(3)
except:
print("ha ocurrido un error")
def jugar():
global adivinar
if(path.exists("datos.txt")):
#varibales que necesita
adivinar = leer()
rand = random.randint(0, len(adivinar) -1)
#esto es para comprobar que todo ande bien con el rand
print(rand)
azar = adivinar[rand].lower()
#sirve para validar los valores que se hayan agregado anteriormente
almacenar = []
ordenar = []
intentos = 0
vidas = 5
#para agregar '_' cantidad de caracteres de adivinar.
for cant in range(len(adivinar[rand])):
ordenar.append("_")
while True:
#este es el mensaje despues del clear
print("ahorcado".center(50, '-'))
intentos += 1
print(ordenar, "\nvidas:{0}\nintentos:{1}".format(vidas,intentos))
obtenerLetra = str(input("\nagregue una letra: ")).lower()
#esto hace que se busque una letra n de veces que se encuentre en el str
repeticionDeLetras = azar.count(obtenerLetra)
index = azar.find(obtenerLetra)
#esto es muy obvio.
if(vidas < 1):
print("lo siento mucho , has perdido :(")
break
#si se esciben dos letras en obtenerLetra (errar ya que es letra por letra)
if(len(obtenerLetra) > 1):
vidas -= 1
print("Error , solo se permite una letra a la vez")
time.sleep(2)
#si una letra se repite mas de una vez
elif(almacenar.count(obtenerLetra) > 0):
vidas -= 1
print("ese valor ya existe, vidas restantes:",vidas)
time.sleep(2)
#tengo dos formas , cuando se encuentren mas de de una letra
elif(repeticionDeLetras > 1):
clon = azar
#aca paso las letras de clon a clonList en forma array
clonList = strToList(clon)
for i in range(repeticionDeLetras):
#aca busco la letra para que me devuela su index
indexMOD = clonList.index(obtenerLetra)
clonList[indexMOD] = ""
#borrar el valor para luego remplazarlo
ordenar.pop(indexMOD)
ordenar.insert(indexMOD, obtenerLetra)
#envio el valor a almacenar para luego comprobarlo
almacenar.append(obtenerLetra)
print(ordenar)
#cuando se encuentra sola mente una ves la letra
elif(repeticionDeLetras == 1):
# almacenar.insert(index, obtenerLetra)
almacenar.append(obtenerLetra)
#borrar el valor para luego remplazarlo
ordenar.pop(index)
ordenar.insert(index, obtenerLetra)
print(ordenar)
else:
vidas -= 1
print("lo siento te has equivocado vidas restantes: {}".format(vidas))
time.sleep(2)
#si ya gano!
if(ordenar == strToList(azar)):
print("\nFelicidades la palabra era: {0}\nintentos: {1}".format(azar.capitalize(),intentos))
time.sleep(3)
os.system("cls")
break
os.system("cls")
else:
print("valores por default")
guardarArray(adivinar)
jugar()
menu = {
1: 'Jugar',
2: 'valores existentes',
3: 'Agregar/modificar/eliminar algun item a la lista',
4: 'Salir'
}
while True:
#para explorar el diccionario
for clave, valor in menu.items():
print('--', "{0})".format(clave), valor)
#por si informarMenu tiene algun error
try:
#decoracion (parte inferior)
print("".center(50, "="))
informeMenu = int(input("\npor favor ingresa el valor deseado: "))
#esta variable comprobara si el valor ingresado existe
comprobar = menu.get(informeMenu)
if(comprobar):
if(informeMenu == 1):
os.system("cls")
jugar()
elif(informeMenu == 2):
os.system("cls")
print("valores existentes", leer())
elif(informeMenu == 3):
os.system("cls")
agregarItem()
elif(informeMenu == 4):
print("hasta pronto")
sys.exit(0)
else:
print("no existe")
except ValueError:
os.system("cls")
print("valor no soportado, recuerda que el valor solo puede ser númerico")
Versión 1.0
Be the first to comment
You can use [html][/html], [css][/css], [php][/php] and more to embed the code. Urls are automatically hyperlinked. Line breaks and paragraphs are automatically generated.