
Juego del Dominó C++
Publicado por Alberto Rodríguez (1 intervención) el 06/04/2018 18:21:13
Necesito ayuda. Por razones personales he faltado a las clases de las últimas 2 semanas de Algoritmos, y tengo un trabajo que entregar que requiere hacer un dominó con funciones recursivas y backtracking. No tengo mucho dinero pero puedo pagar aunque sea un poco por ayuda. Necesito que me ayuden a completar el trabajo y además intentar explicarme, si es posible, cómo se ha realizado, porque también quiero aprenderlo. Gracias por su tiempo. Mi email es [email protected] . Por favor, necesito ayuda cuanto antes.
Les dejo por aquí el enunciado para que puedan evaluar el ejercicio y si pueden ayudarme.
Práctica 1. El juego del dominó
OBJETIVO
El objetivo principal de esta práctica consiste en ejercitarse en el diseño y desarrollo de soluciones a
problemas empleando el esquema de vuelta atrás (backtracking). Además, se pretende que los alumnos
aprendan a modelar la información necesaria para la aplicación de dicho esquema.
ENUNCIADO
El juego de dominó se juega en una superficie plana utilizando 28 fichas cada una de las cuales está
dividida en 2 extremos. En estos extremos aparece una cantidad de puntos que van de cero (blanco)
hasta 6. Las fichas cubren todas las combinaciones posibles de estos números, siendo en total 28.
Existen, por lo tanto, 7 fichas diferentes para cada uno de los números (es decir, 7 fichas con el número
1, 7 con el 2, etc.); este concepto es importante para el juego de dominó. A las fichas que tienen el
mismo número en ambos extremos se les llama “dobles”. La puntuación de cada ficha viene
determinada por la suma de los puntos de sus 2 extremos.
El juego del dominó, en su variante para dos jugadores, se divide en las siguientes fases:
1. Inicio del juego. En esta fase se reparten las fichas entre los dos jugadores y se decide qué
jugador comenzará la partida. En nuestro caso, el reparto de fichas se hará́ aleatoriamente
asignando un determinado número de fichas a cada jugador y dejando las fichas restantes en el
“pozo”. Para comenzar la partida se realiza una subasta que gana el jugador que posea la ficha
“doble” de mayor puntuación. En el caso de que no haya ninguna ficha “doble” entre las fichas
repartidas a los dos jugadores, comenzará la partida el jugador que tenga la ficha de mayor
puntuación.
2. Realización de la partida. El jugador que gana la subasta inicial deposita la ficha ganadora sobre
la superficie de juego. El jugador que tenga el siguiente turno de juego intentará deshacerse de
una ficha. Para ello, la puntuación en uno de los extremos de la ficha debe ser igual a la
puntuación de uno de los extremos de la ficha inicial depositada en la superficie. Las 2 fichas
formarán una cadena en donde el nexo de unión está formado por los extremos con la misma
puntuación de ambas fichas. Los extremos de esta cadena servirán de referencia para que el
siguiente jugador deposite una nueva ficha y amplíe la cadena. Cuando un jugador esté en
posesión del turno de juego y no pueda deshacerse de una ficha, deberá́ adquirir una ficha del
“pozo” y ceder el turno al contrincante.
El jugador que antes se quede sin fichas será́ el que gane la partida. Tenga en cuenta que se pueden
producir tablas, ya que puede ocurrir que el “pozo” esté vacío y ninguno de los 2 jugadores pueda seguir
deshaciéndose de fichas. Si un jugador en posesión del turno de juego no puede jugar ninguna ficha y
además no quedan fichas en el “pozo”, entonces el jugador perderá́ el turno.
Veamos un ejemplo. Supongamos que cada jugador dispone de 2 fichas. Después de realizar el reparto
inicial cada jugador tiene las siguientes fichas:
Según las reglas establecidas, comenzaría a jugar el Jugador 2 ya es el que posee la ficha “doble” de
mayor puntuación. Por lo tanto, después de la primera jugada la situación sería:
El siguiente turno es del Jugador 1 que puede jugar la ficha cuyos extremos son 1 y 6. De esta manera,
formará una cadena de 2 fichas cuyos extremos serán 1 y 6. Por lo tanto, después de la segunda jugada
la situación seria:
En la siguiente jugada el turno es del Jugador 2, pero no tiene ninguna ficha para poner, por lo que roba
una ficha del pozo y cede turno.
Ahora la jugada es para el Jugador 1, que coloca la ficha cuyos extremos son 5 y 6. De esta forma
introduce la ficha en el extremo de la cadena con un 6 formando una nueva cadena con extremos 1 y 5.
El juego finaliza ya que el Jugador 1 se ha quedado sin fichas y, por tanto, ha ganado la partida.
SE PIDE
Desarrollar un algoritmo en C++ basado en el esquema de “Vuelta atrás” que determine la secuencia de
jugadas que debe realizar el Jugador 1 para ganar en la partida de dominó. La información devuelta
deberá́ incluir el orden en que se juegan las fichas por cada uno de los jugadores junto con el extremo
de la cadena donde se van incorporando a la misma y las fichas que son adquiridas del “pozo”. El
algoritmo devolverá́ el valor false si no existe dicha secuencia.
Es imprescindible la correcta realización de una memoria del trabajo realizado para superar la
evaluación de la práctica. Dicha memoria incluirá́, al menos, la explicación razonada del modelado
realizado y las estructuras de datos elegidas, la descripción de los algoritmos más importantes, la
complejidad en tiempo, T(n), y en memoria, M(n), empleada por el algoritmo desarrollado y los
resultados de las pruebas realizadas.
Les dejo por aquí el enunciado para que puedan evaluar el ejercicio y si pueden ayudarme.
Práctica 1. El juego del dominó
OBJETIVO
El objetivo principal de esta práctica consiste en ejercitarse en el diseño y desarrollo de soluciones a
problemas empleando el esquema de vuelta atrás (backtracking). Además, se pretende que los alumnos
aprendan a modelar la información necesaria para la aplicación de dicho esquema.
ENUNCIADO
El juego de dominó se juega en una superficie plana utilizando 28 fichas cada una de las cuales está
dividida en 2 extremos. En estos extremos aparece una cantidad de puntos que van de cero (blanco)
hasta 6. Las fichas cubren todas las combinaciones posibles de estos números, siendo en total 28.
Existen, por lo tanto, 7 fichas diferentes para cada uno de los números (es decir, 7 fichas con el número
1, 7 con el 2, etc.); este concepto es importante para el juego de dominó. A las fichas que tienen el
mismo número en ambos extremos se les llama “dobles”. La puntuación de cada ficha viene
determinada por la suma de los puntos de sus 2 extremos.
El juego del dominó, en su variante para dos jugadores, se divide en las siguientes fases:
1. Inicio del juego. En esta fase se reparten las fichas entre los dos jugadores y se decide qué
jugador comenzará la partida. En nuestro caso, el reparto de fichas se hará́ aleatoriamente
asignando un determinado número de fichas a cada jugador y dejando las fichas restantes en el
“pozo”. Para comenzar la partida se realiza una subasta que gana el jugador que posea la ficha
“doble” de mayor puntuación. En el caso de que no haya ninguna ficha “doble” entre las fichas
repartidas a los dos jugadores, comenzará la partida el jugador que tenga la ficha de mayor
puntuación.
2. Realización de la partida. El jugador que gana la subasta inicial deposita la ficha ganadora sobre
la superficie de juego. El jugador que tenga el siguiente turno de juego intentará deshacerse de
una ficha. Para ello, la puntuación en uno de los extremos de la ficha debe ser igual a la
puntuación de uno de los extremos de la ficha inicial depositada en la superficie. Las 2 fichas
formarán una cadena en donde el nexo de unión está formado por los extremos con la misma
puntuación de ambas fichas. Los extremos de esta cadena servirán de referencia para que el
siguiente jugador deposite una nueva ficha y amplíe la cadena. Cuando un jugador esté en
posesión del turno de juego y no pueda deshacerse de una ficha, deberá́ adquirir una ficha del
“pozo” y ceder el turno al contrincante.
El jugador que antes se quede sin fichas será́ el que gane la partida. Tenga en cuenta que se pueden
producir tablas, ya que puede ocurrir que el “pozo” esté vacío y ninguno de los 2 jugadores pueda seguir
deshaciéndose de fichas. Si un jugador en posesión del turno de juego no puede jugar ninguna ficha y
además no quedan fichas en el “pozo”, entonces el jugador perderá́ el turno.
Veamos un ejemplo. Supongamos que cada jugador dispone de 2 fichas. Después de realizar el reparto
inicial cada jugador tiene las siguientes fichas:
Según las reglas establecidas, comenzaría a jugar el Jugador 2 ya es el que posee la ficha “doble” de
mayor puntuación. Por lo tanto, después de la primera jugada la situación sería:
El siguiente turno es del Jugador 1 que puede jugar la ficha cuyos extremos son 1 y 6. De esta manera,
formará una cadena de 2 fichas cuyos extremos serán 1 y 6. Por lo tanto, después de la segunda jugada
la situación seria:
En la siguiente jugada el turno es del Jugador 2, pero no tiene ninguna ficha para poner, por lo que roba
una ficha del pozo y cede turno.
Ahora la jugada es para el Jugador 1, que coloca la ficha cuyos extremos son 5 y 6. De esta forma
introduce la ficha en el extremo de la cadena con un 6 formando una nueva cadena con extremos 1 y 5.
El juego finaliza ya que el Jugador 1 se ha quedado sin fichas y, por tanto, ha ganado la partida.
SE PIDE
Desarrollar un algoritmo en C++ basado en el esquema de “Vuelta atrás” que determine la secuencia de
jugadas que debe realizar el Jugador 1 para ganar en la partida de dominó. La información devuelta
deberá́ incluir el orden en que se juegan las fichas por cada uno de los jugadores junto con el extremo
de la cadena donde se van incorporando a la misma y las fichas que son adquiridas del “pozo”. El
algoritmo devolverá́ el valor false si no existe dicha secuencia.
Es imprescindible la correcta realización de una memoria del trabajo realizado para superar la
evaluación de la práctica. Dicha memoria incluirá́, al menos, la explicación razonada del modelado
realizado y las estructuras de datos elegidas, la descripción de los algoritmos más importantes, la
complejidad en tiempo, T(n), y en memoria, M(n), empleada por el algoritmo desarrollado y los
resultados de las pruebas realizadas.
Valora esta pregunta


0