Título: validar gato Publicado por: lopez fer en 26 Enero 2021, 23:13 pm Podrian ayuderme con estre problema, soy principiante y no logro entender que debo hacer.
Como en el juego del gato, en este problema se desea verificar si en un tablero se presenta el mismo VALOR en todas las celdas de un renglón, una columna, la diagonal principal o la diagonal secundaria, para determinar si un jugador ha ganado. A continuación se muestra un tablero de 3x3, en la cual se tienen valores 1 y 0. Se observa que en el segundo renglón, la última columna o la diagonal principal todas las celdas tienen el valor 1. En el caso del juego del gato, esto representaría que el jugador asociado al valor 1, ha ganado. En la primer línea el valor entero a buscar en el tablero. En la segunda línea separados por un espacio, la cantidad 3<=n<=10 de renglones y columnas para una matriz (tablero) de forma cuadrada. A partir de la tercera línea, se presentan separadas por un espacio los números de cada renglón de la matriz, se inicia con el renglón 0 y se termina con el renglon n-1 , y en cada renglón se inicia con la columna 0 y se termina con la columna . n-1 Se debe imprimir el número entero 1, si el valor a buscar, se encuentra en todas las celdas de cualquier renglón, columna, diagonal principal o en la diagonal secundaria. Retorna 0 en otro caso. Ejemplo Título: Re: validar gato Publicado por: K-YreX en 27 Enero 2021, 09:12 am Primero, para situarnos, vemos que se habla del juego del gato (conocido también como el 3 en raya si el tablero es de 3x3). Esto se juega entre dos jugadores que ponen sus fichas en el tablero y el primero que consigue completar una fila, columna o diagonal (principal o secundaria) con sus fichas, gana. Hasta aquí todo claro.
Lo que parece que pide es un algoritmo que determine si un jugador en concreto ha ganado. Para ello tienes que pasar una entrada al programa en el formato que te dicen: Citar En la primer línea el valor entero a buscar en el tablero. En la segunda línea separados por un espacio, la cantidad 3<=n<=10 de renglones y columnas para una matriz (tablero) de forma cuadrada. A partir de la tercera línea, se presentan separadas por un espacio los números de cada renglón de la matriz, se inicia con el renglón 0 y se termina con el renglon n-1 , y en cada renglón se inicia con la columna 0 y se termina con la columna . n-1 Suponiendo que los valores pueden ser: {0, 1, 2} para representar: {casilla vacía, jugador1, jugador2}, respectivamente. Un ejemplo de entrada podría ser: Código: 1 // Vamos a ver si ha ganado el jugador 1 Como se puede ver, en este caso sí ha ganado el jugador 1 porque tiene la diagonal principal completa con sus fichas. Entonces tu algoritmo tiene que devolver 1 (lo que viene a traducirse como true). En caso de que el jugador 1 no hubiese ganado (bien porque ha ganado el jugador 2 o porque no ha ganado ninguno todavía), debería devolver un 0 (que equivale a false).4 // En un tablero de 4x4 cuyos valores actuales son: (Y ahora escribimos la matriz que representa el tablero) 1 0 0 2 1 1 2 2 2 1 1 2 0 0 0 1 No sé si este programa tienes que hacerlo en C o C++ pero una idea para empezar (en C) puede ser: Código
Tenía ganas de escribir algo en C así que creo que con eso ya te he dejado más que suficiente... :silbar: :silbar: Con implementar la función comprobarGanador(), el código debería funcionar correctamente (si no he olvidado nada). Luego ya puedes cambiar lo que quieras o necesites. Si lo pruebas con el ejemplo de entrada que puse antes el resultado debería ser: Código: El jugador 1 ha ganado la partida?: 1 |