Regala Una Vida A Tu Amigo, ¡es Gratis!
elvagallo20145 de Septiembre de 2014
585 Palabras (3 Páginas)167 Visitas
PRACTICA 4. Juego del Siete y Medio en Smalltalk
Objetivos
Realizar un pequeño desarrollo haciendo uso del lenguaje Smalltalk.
Duración
2 sesiones
Contenidos
Se trata de hacer una simulación del juego del siete y medio. Pueden participar varios jugadores, siempre más de uno. Los jugadores irán tomando una carta de la baraja en cada ronda. El juego termina cuando uno o más jugadores, que serían los ganadores, consiguen acumular entre 6 y 7.5 puntos. Cuando un jugador supera los 7.5 puntos queda apartado del juego. La puntuación de cada carta coincide con su número, salvo para las figuras que es de medio punto. Se usará una baraja española.
Estructura de clases
La estructura de clases propuesta se representa en el diagrama de clases UML de la figura. La sintaxis utilizada en el diagrama es la del JAVA que deberá acomodarse al lenguaje Smalltalk.
En la notación se utilizan las siguientes convenciones:
VariableSubrayada : variable de clase
# : ámbito protected para variables
+ : ámbito público para métodos
* métodoEnCursiva: método abstracto
Aunque para la implementación de esta práctica, bastaría con las clases Carta, Baraja, Jugador y Juego, observe que estas clases se han definido como clases abstractas. El objetivo es ampliar con facilidad esta estructura de clases en posteriores prácticas. Recuerde que en orientación a objetos las clases existentes pueden extenderse mediante herencia.
Observe que en el diagrama la representación de las asociaciones es redundante: se representan mediante asociaciones UML y mediante aquellas variables de instancia que se corresponden con colecciones (esta representación redundante no es muy legítima en UML y se utiliza por claridad).
Indicaciones
El orden de implementación más adecuado es: Carta, Baraja, BarajaEspañola, Jugador, JugadorDeSieteYMedio, Juego, JuegoSieteYMedio. Implemente cada una de las clases y pruebe sus métodos.
Clase Baraja
Para barajar las cartas puede utilizar las clases EspacioMuestralSinRepeticion y EspacioMuestralConRepetición, que se encuentran en los archivos espasr.st y espacr.st. El archivo practica4.txt indica cómo se utilizan estas clases (todos estos archivos se encuentran en Practica4Ejercicios.zip).
Clase BarajaEspañola
En su variable de clase BarajaInicial contiene las cartas de la baraja española. Esta variable se inicializa con el método de clase inicializa.
Cada vez que se crea una baraja se hace una copia de BarajaInicial en la variable de instancia cartas.
Clase JugadorDeSieteYMedio
El método sePlanta decide que un jugador se planta cuando tiene entre 6 y 7.5 puntos. Puede modificar este método para introducir cualquier algoritmo que determine cuando se planta un JugadorDeSieteYMedio.
Clase Juego
La variable baraja contiene una sola baraja. Para generalizar más esta clase baraja podría llamarse barajas y contener una colección de barajas.
Clase JuegoSieteYmedio
La ejecución del juego se realiza del siguiente modo:
(JuegoSieteYMedio new: numJugadores) partida:
Siendo numJugadores el número de jugadores.
El método inicializa realiza la lectura del nombre de cada jugador, crea el jugador y lo incorpora a la variable jugadores. También inicializa el resto de variables de instancia. Para leer los nombres de los jugadores puede utilizar el método de clase request: de la clase Dialog.
El método partida: debería tener una implementación semejante a esto:
1. Se baraja la baraja
2. Todos los jugadores apuestan
3. Cada jugador, por turnos, roba una carta y se evalúa si se pasa o se planta.
4. Se acaba el
...