Sie sind auf Seite 1von 3

# -*- coding: utf-8 -*-

###########################
# Ahorcado
# Versi?n: 0.3
# Autor: Adrigm
# Email: adrigm.admin@gmail.com
# Web: www.adrigm.es
# Licencia: GPL
###########################

# Importaci?n de bibliotecas.
import random
import string
import pickle

# FUNCIONES.
# -------------------------------------------------------------------

# crea una lista con la longitud de la palabra


def ocultar(cadena):
ocultada = []
for i in cadena:
ocultada += "_"
return ocultada

# Convierte la cadena en una lista.


def listar(cadena):
listada = []
for letra in cadena:
listada += letra
return listada

# Devuelve -1 si no encuentra un caracter en una lista.


def buscar(lista, caracter):
for i in lista:
if i == caracter:
return 1
return -1

# sustituye la letra dada en la palabra oculta si existe en palabra.


def sustituir(palabra, oculta, letra):
n = 0
while n < len(palabra):
if palabra[n] == letra:
oculta[n] = letra
n += 1

# Quita el ?ltimo caracter de una lista de palabras.


def quitarultimo(lista):
n = 0
lista2 = range(len(lista))
while n < len(lista):
palabra = lista[n]
lista2[n] = palabra[:-1]
n += 1
return lista2

# Convierte una letra en minusculas.


def convminusculas(letra):
mayusculas = "ABCDEFGHIJKLMN?OPQRSTUVWXYZ"
minusculas = "abcdefghijklmn?opqrstuvwxyz"
n = 0
while n < len(mayusculas):
if mayusculas[n] == letra:
letra = minusculas[n]
n += 1
return letra

# -------------------------------------------------------------------

# Mu?eco en ASCII.
muneco = ["\n"*6 + " -----",\
" |\n"*6 + " -----",\
" ______\n" + " |\n"*6 + " -----",\
" ______\n" + " | |\n" + " |\n"*5 \
+ " -----",\
" ______\n" + " | |\n" + " O |\n" \
+ " |\n"*4 + " -----",\
" ______\n" + " | |\n" + " O |\n" \
+ " =[:]= |\n" + " |\n"*3 + " -----",\
" ______\n" + " | |\n" + " O |\n" \
+ " =[:]= |\n" + " / \ |\n" + " |\n"*2 \
+ " -----"]

# Lista de Palabras de archivos.


f = open("palabras.txt", "r")
lista1 = f.readlines()
lista = quitarultimo(lista1)

# Asignaci?n de palabra aleatoria y ocultar


palabra = lista[random.randint(0, len(lista)-1)]
listada = listar(palabra)
oculta = ocultar(palabra)

# Asignaci?n de vidas.
vidas = 7
nivel = 0

# Presentaci?n.
print "-"*20
print "?EL AHORCADO!"
print "-"*20
print "Tienes 7 vidas para adivinar la palabra\n"

# Bucle del juego.


while vidas > 0:
print "\nTe quedan", vidas, "vidas"
print muneco[nivel]
print oculta
letra = raw_input("Escribe una letra: ")
letra = convminusculas(letra)
if string.find(palabra, letra) == -1:
vidas -= 1
nivel += 1
else:
sustituir(listada, oculta, letra)
if buscar(oculta, "_") == -1:
print oculta
break
# Fin del juego.
if vidas > 0:
print "\nS?, has ganado, la palabra era", palabra, "\n"
resultado = 1
else:
print "\nLo siento, perdiste, la palabra era", palabra, "\n"
resultado = 0

# Estad?sticas.
try:
archivo = open("ahorcado.dat", "r")
jugadas = pickle.load(archivo)
ganadas = pickle.load(archivo)
perdidas = pickle.load(archivo)
archivo.close()
except:
archivo = open("ahorcado.dat", "w")
jugadas = 0
ganadas = 0
perdidas = 0
archivo.close()

jugadas += 1
if resultado == 1:
ganadas += 1
else:
perdidas += 1

archivo = open("ahorcado.dat", "w")


pickle.dump(jugadas, archivo)
pickle.dump(ganadas, archivo)
pickle.dump(perdidas, archivo)
archivo.close()

print "Partidas jugadas:", jugadas


print "Ganadas:", ganadas
print "Perdidas:", perdidas

Das könnte Ihnen auch gefallen