Idea de proyecto:

El objetivo de este proyecto es crear un juego en Python en el que al usuario se le presenta un anagrama de una palabra y tiene que adivinar la palabra correcta en un número limitado de intentos.

Características del proyecto:

  1. El usuario tiene un número fijo de intentos para adivinar la palabra correcta. El número de intentos depende de la longitud de la palabra.
  2. Después de cada intento incorrecto, el usuario recibe una pista de la palabra correcta.
  3. Si el usuario no puede adivinar la palabra correcta dentro del número fijo de intentos, se muestra la palabra correcta y el juego pasa a la siguiente.
  4. Ctrl + C o Ctrl + D sale del juego.

Implementación:

Este tutorial es válido solo para sistemas basados ​​en Linux. Este tutorial está escrito en un sistema Linux Mint 17.1. Para implementar en otros sistemas Linux (Redhat, Arch), vea la nota especial al final de este tutorial.

En casi todos los sistemas basados ​​en Linux hay un archivo ubicado en la ubicación del directorio “/ usr / share / dict /” con diferentes nombres como “cracklib-small” (sistemas basados ​​en Ubuntu), “palabras” (Redhat, Arch) que contiene palabras del diccionario y muchas aplicaciones los utilizan a menudo para implementar funciones como el “corrector ortográfico”.

En este proyecto usaré el mismo archivo para crear un juego de anagramas.

La lectura del archivo puede proporcionarnos todas las palabras necesarias para el juego. Las palabras en el archivo están separadas con una nueva línea, por lo que mientras leemos el archivo, necesitamos dividir las palabras según el carácter de la nueva línea para obtener palabras individuales. El código para el mismo se vería así:

loc='/usr/share/dict/cracklib-small'
with open(loc) as f:
content=f.read().split('
')
f.close()

El archivo también contiene palabras como “zoo”, pero no queremos esas palabras en nuestro juego, por lo que podemos omitirlas. Para evitar que el juego sea demasiado simple, decidí omitir también palabras de menos de 5, pero este paso es opcional y se puede omitir. El código para el mismo se ve así:

l=len(content)
words=[]
for i in range(0,l):
    if ''' in content[i] or len(content[i])<5:
    continue
words.append(content[i])

El archivo también contiene palabras como “2nd, 3rd” al comienzo del archivo. Para evitar que aparezcan en nuestro juego, los omitimos de la siguiente manera:

words=words[1:]
d=len(words)
words=words[:d]

Finalmente, las “palabras” contienen todas las palabras que necesitamos para que el juego continúe.

Podemos elegir una palabra específica para una ronda particular del juego de la siguiente manera:

word=words[random.randint(0,d)]

La palabra se elegiría al azar de la lista de palabras creadas.

Para crear el anagrama de la palabra necesitamos mezclar los caracteres. Esto se puede hacer de la siguiente manera:

shuffle=list(word)
random.shuffle(shuffle)

Si la longitud de la palabra elegida para la ronda es más de 7, el usuario obtiene 7 intentos; de lo contrario, el número de intentos es 5.

if len(word)>7:
    chances=7
else:
    chances=5
    tries=0

La variable “intentos” realiza un seguimiento del número de intentos realizados por el usuario. Lo inicializamos a cero.
Durante cada intento del usuario, tomamos su entrada y la comparamos con la palabra correcta. Si coinciden, felicitamos al usuario y le presentamos el siguiente anagrama; de lo contrario, le damos una pista.

Para generar una pista para una palabra en particular, elegimos dos números enteros aleatorios entre 0 y la longitud de la palabra.

t1=random.randint(0,len(word))
t2=random.randint(0,len(word))

Mostramos los caracteres correctos en estas dos posiciones t1 y t2 y en todas las demás posiciones mostramos “.”.

hint=""
for i in range(0,len(word)):
    if i==t1 or i==t2:
        hint=hint+word[i]
    else:
        hint=hint+"."
print hint

Si el número de intentos = número de oportunidades, mostramos la palabra correcta y el juego continúa.

if tries==chances:
    print "The answer was "+word

Nota especial: para que el código sea lo más independiente posible de la plataforma, podemos elegir la ubicación del archivo dinámicamente utilizando el módulo de plataforma de python.

os=platform.dist()[0]
if os=='LinuxMint' or os=='Ubuntu':
    loc='/usr/share/dict/cracklib-small'
else:
    loc='/usr/share/dict/words'

Herramientas de software necesarias:El juego se puede implementar en Python usando módulos de plataforma y aleatorios.

Enlace de Github: https://github.com/sub123/practice/blob/master/python/anagramwa.py

Esta idea es aportada por Subham.Si le gusta GeeksforGeeks y le gustaría contribuir, también puede escribir un artículo y enviarlo por correo a [email protected] Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *