Juego de dominó en Python: clases Ficha, Pila, Mesa, Jugador y Partida

Informática y TelecomunicacionesActualizado el 3,13 KB

Resumen

El documento describe la implementación de un juego de dominó en Python en el que un jugador humano compite contra tres computadoras, una de ellas aliada del jugador. Explica las clases principales (Ficha, Pila, Mesa, Jugador y Partida), sus atributos y métodos, y el flujo de ejecución de la partida. Sirve para entender cómo se organiza un juego por objetos siguiendo las reglas estándar del dominó.

Puntos clave

  • El juego enfrenta a un jugador humano contra tres computadoras, una de ellas aliada del jugador.
  • La clase Ficha almacena dos valores, permite rotarla y calcular su suma con el método valor().
  • La clase Pila genera las fichas del 0|0 al 6|6 y saca una ficha aleatoria con sacar_ficha().
  • La clase Mesa guarda las fichas jugadas y las agrega al principio o al final según el parámetro final.
  • La clase Jugador puede ser humano o computadora y usa buscar() para comprobar si una ficha se puede jugar.
  • La partida termina cuando un jugador se queda sin fichas o cuando se pasa cuatro veces seguidas.

Ponte a prueba

Introducción

Este código implementa un juego de dominó en Python. Permite a un jugador humano jugar contra tres computadoras, una de las cuales es un aliado del jugador. El juego sigue las reglas estándar del dominó.

Clases

Clase Ficha

Representa una ficha de dominó. Almacena dos valores (valor1, valor2) y permite rotar la ficha.

  • __init__(self, x, y): Inicializa una ficha con los valores x e y.
  • get(self): Retorna una lista con los valores de la ficha.
  • rotar(self): Intercambia los valores de la ficha.
  • valor(self): Retorna la suma de los valores de la ficha.

Clase Pila

Representa la pila de fichas. Genera todas las fichas del dominó (del 0|0 al 6|6) y permite sacar una ficha aleatoria.

  • __init__(self): Inicializa la pila y genera las fichas.
  • sacar_ficha(self): Retorna una ficha aleatoria de la pila y la elimina de la misma.

Clase Mesa

Representa la mesa de juego. Almacena las fichas que se han jugado.

  • __init__(self): Inicializa la mesa.
  • poner(self, x, final): Agrega una ficha x a la mesa. Si final es True, la agrega al final; si no, al principio.
  • imprimir(self): Imprime el estado actual de la mesa.

Clase Jugador

Representa a un jugador. Puede ser humano o computadora.

  • __init__(self, nombre, com, pila, mesa): Inicializa al jugador con un nombre, un indicador de si es computadora (com), la pila de fichas y la mesa.
  • buscar(self, x): Verifica si la ficha x se puede jugar. Retorna una lista con la ficha y un booleano indicando si debe ir al final o al principio de la mesa, o False si no se puede jugar.
  • jugar(self): Permite al jugador realizar una jugada. Si es humano, solicita la entrada del usuario. Si es computadora, realiza una jugada automáticamente.
  • valor_mano(self): Retorna la suma de los valores de las fichas en la mano del jugador.
  • imprimir_fichas(self): Imprime las fichas del jugador (solo para humanos).
  • convertir_ficha(self, s): Convierte una cadena de texto en una ficha.

Clase Partida

Controla el flujo del juego.

  • __init__(self, nombre): Inicializa una nueva partida.
  • nueva(self, nombre): Crea una nueva partida con los jugadores.
  • termino(self, pasar): Verifica si la partida ha terminado.
  • main(self, termino): Ejecuta el bucle principal del juego.

Ejecución del juego

El juego comienza solicitando el nombre del jugador humano y luego crea una nueva partida. El juego continúa hasta que un jugador se queda sin fichas o se pasa cuatro veces seguidas. Al final, se muestran los puntajes y se declara al ganador.

Descargar

PDF Word HTML

Preguntas frecuentes

¿Cuántas fichas genera la clase Pila?

La clase Pila genera todas las fichas del dominó, desde la 0|0 hasta la 6|6. Luego permite sacar una ficha aleatoria y la elimina de la pila.

¿Qué devuelve el método buscar() de la clase Jugador?

Devuelve una lista con la ficha y un booleano que indica si debe ir al final o al principio de la mesa. Si la ficha no se puede jugar, devuelve False.

¿Cuándo termina una partida?

La partida termina cuando un jugador se queda sin fichas o cuando se pasa cuatro veces seguidas. Al final se muestran los puntajes y se declara al ganador.

Ponte a prueba

Tarjetas de repaso

Pulsa una tarjeta para ver la respuesta.

Test

1. ¿Cuántas computadoras juegan contra el jugador humano?
2. ¿Qué método de la clase Ficha intercambia los valores de la ficha?
3. ¿Qué hace el método sacar_ficha() de la clase Pila?
4. ¿Dónde agrega la clase Mesa una ficha cuando el parámetro final es True?
5. ¿Qué método de la clase Partida ejecuta el bucle principal del juego?
6. ¿Cuántas veces seguidas debe pasarse un jugador para que termine la partida por pasos?

Preguntas generadas con IA a partir del documento: comprueba las respuestas con el texto.