Está en la página 1de 4

Escuela Superior Politécnica del Litoral

Fundamentos de Programación
Proyecto del Primer Parcial II Término 2017-2018

Su tarea consiste en desarrollar un juego similar a Apalabrados en la consola de PyCharm


utilizando sus conocimientos del lenguaje de programación Python.
Apalabrados, es un juego de mesa en el cual cada jugador intenta ganar más puntos
mediante la creación de palabras sobre un tablero, las palabras pueden formarse
horizontalmente o verticalmente y tienen que ser palabras que existan.

Objetivo
Ser el primero en acabar todas las fichas o, en su defecto, ser el que obtiene más
puntos.

Descripción
El juego se realizará entre dos jugadores y al inicio se muestra un menú con las opciones:
1. Jugar
2. Ver lista de ganadores
3. Salir

Jugar
Cuando se escoge Jugar, inicialmente se pedirá y almacenará el nombre de cada jugador.
Luego se puede empezar a jugar.
Primero hay que decidir que jugador empieza y como esto puede significar una ventaja
para el primero, es necesario que se realice de manera aleatoria. El jugador que logre
un mayor número en el lanzamiento del dado empezará.
Al inicio del juego se tendrá una lista con todas las letras disponible y sus puntajes
correspondientes. Las letras y los puntajes se muestran a continuación:

A B C D E F G H I J
1 3 3 2 1 4 2 4 1 8

K L M N O P Q R S T
3 1 3 1 1 3 5 1 1 1

U V X Y Z
1 4 8 4 10
De cada letra se tendrán:
12 A, 2 B, 4 C, 5 D, 12 E, 1 F, 2 G, 2 H, 6 I, 1 J, 4 L, 2 M, 5 N, 9 O, 2 P, 1 Q, 5 R, 6 S, 4 T, 5
U, 1 V, 1 X, 1 Y, 1 Z
Sumando un total de 94 fichas
Con estas fichas se empezará el juego, se reparten 7 fichas (letras) aleatorias a cada
jugador. Y esta mecánica se mantiene en cada turno del jugador.
Y el jugador puede ver sus fichas y a continuación ingresar la palabra que va a formar.
Puede ser una palabra de dos o más letras. y su posición puede ser vertical u horizontal.
En el caso de la orientación vertical, la palabra será ubicada de izquierda a derecha,
mientras que, en el caso de la orientación horizontal, la palabra será ubicada de arriba
hacia abajo.
Cada vez que el jugador usa las letras deben restarse de la cantidad de letras disponible.
Aquellas que no use, no se restarán y podrán seguirse usando en otra ocasión, siempre
y cuando, les sean asignadas de forma aleatoria.
La palabra debe ser válida y debe contener solo letras que le hayan sido asignadas al
jugador en ese turno. Para asegurar su validez, cada palabra ingresada deberá buscarse
en el listado diccionario de palabras mencionado anteriormente. Si la palabra no es
válida debe mostrarse el mensaje al usuario y pedir que ingrese otra palabra.
Además, el jugador debe indicar las coordenadas en las que se insertará y la posición
en la que quiere ingresar la palabra (horizontal o vertical), por ejemplo:

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
0
1
2 D I E S E L
3
4
5
6
7
8
9
10
11
12
13

14
Con cada palabra armada, el jugador almacena puntos de acuerdo con el puntaje de
cada letra.
Debe considerarse que la palabra puede cruzarse con otra(s) ya existente en el tablero.
En este caso el jugador debería reemplazar la letra de la palabra que va a reemplazarse
con una del tablero por un asterisco, por ejemplo:
Si desea ingresar la palabra PELIGRO en las coordenadas (1,5)

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
0
1 P
2 D I E S E L
3 L
4 I
5 G
6 R
7 O
8
9
10
11
12
13
14

Las letras usadas de otra palabra ya expuesta en el tablero no tienen puntaje.


Al ver sus fichas el jugador siempre tiene dos opciones: Jugar o Pasar. Si el jugador elije
jugar, la palabra va al tablero si no, se pasa el turno al otro jugador. Un jugador que pasa
tres veces seguidas pierde el juego.
Si el jugador usa todas las letras que le fueron asignadas en un turno ganará 50 puntos
adicionales.

Casilleros de premio
Algunas casillas van a estar premiadas. Para esto se van a considerar 4 tipos de
premios:
Letra doble: El puntaje de la letra donde está el premio se multiplica por 2.
Palabra doble: todo el puntaje de la palabra se multiplica por 2.
Letra triple: El puntaje de la letra donde está el premio se multiplica por 3.
Palabra triple: todo el puntaje de la palabra se multiplica por 3.
Estos premios van a ser ubicados en el tablero de forma aleatoria y solo cuando el
jugador ingrese las coordenadas y la palabra podrá enterarse, a través de un mensaje,
de si ha ganado un premio y cuál ha sido. Es recomendable usar las coordenadas para
definir los premios.

Fin del juego


Cuando ya no queden suficientes fichas para repartir en un turno (menos de 7). Se
utilizarán los puntajes almacenados por cada jugador. Ganará el que haya almacenado
más puntaje.
El jugador ganador será registrado en el archivo ganadores.txt con el formato:
nombre,fecha,puntos

Lista de Ganadores
Esta opción me mostrará la información almacenada en el archivo de texto
ganadores.txt

Salir
Esta será la única opción para poder terminar la ejecución del programa.

Consideraciones
• Tener en cuenta que las palabras NO pueden salir del límite del tablero.
• Siempre validar las palabras buscándolas en el diccionario.
• Las letras deben ser representadas en letras mayúsculas.
• Durante la ejecución del juego, todo el tiempo debe ser visible el turno de cada
jugador, así como el tablero actualizado con las palabras formadas y ubicadas.
• Desarrolle la aplicación pensando en la comodidad de usuario, es decir, que sea
fácil de visualizar y de entender, ya que al estar desarrollado en consola si no
ordenamos bien los elementos puede volverse un poco confuso.
• Considerar las validaciones necesarias (aunque no se mencionen en este escrito)
para el correcto funcionamiento del programa.

• Deberán enviar el proyecto en una carpeta comprimida zip que contenga además
el archivo txt de los ganadores con una ruta relativa en la referencia. Esta carpeta
comprimida tendrá el siguiente formato de nombre:
[FP8][PY1P]_Apellidos_nombres_Apellidos_Nombres

También podría gustarte