C/Visual C - ajedrez

 
Vista:

ajedrez

Publicado por jimmy (2 intervenciones) el 26/05/2001 04:25:52
necesito un algoritmo para realizar un programa que en un tablero de ajedrez ubique 8 damas o reinas de modo que ninguna de ellas amenace a otra
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Algoritmo para ubicar 8 damas en un tablero de ajedrez sin amenazas

Publicado por Alejandro (913 intervenciones) el 25/09/2024 19:53:27
Aquí tienes un algoritmo en C/Visual C que te permitirá ubicar 8 damas en un tablero de ajedrez de manera que ninguna de ellas se amenace entre sí:

1. Declara una matriz de 8x8 para representar el tablero de ajedrez.
2. Inicializa todas las casillas del tablero con ceros.
3. Define una función llamada "esSeguro" que tome como parámetros la posición de una dama y el tablero, y verifique si esa posición es segura o no.
4. En la función "esSeguro", verifica si hay alguna dama en la misma fila o columna que la posición dada. Si es así, devuelve falso.
5. Verifica si hay alguna dama en las diagonales de la posición dada. Si es así, devuelve falso.
6. Si no hay ninguna dama que amenace a la posición dada, devuelve verdadero.
7. Define una función llamada "ubicarDamas" que tome como parámetros el número de damas que se han ubicado hasta el momento, el tablero y la columna actual.
8. Si el número de damas es igual a 8, significa que se han ubicado todas las damas de manera segura. Imprime el tablero y devuelve verdadero.
9. Si la columna actual es mayor o igual a 8, significa que se ha recorrido todo el tablero sin encontrar una solución. Devuelve falso.
10. Para cada fila en la columna actual, verifica si la posición es segura utilizando la función "esSeguro". Si es segura, marca esa posición como ocupada por una dama en el tablero y llama recursivamente a la función "ubicarDamas" para ubicar las damas restantes.
11. Si la llamada recursiva devuelve verdadero, significa que se ha encontrado una solución. Devuelve verdadero.
12. Si la llamada recursiva devuelve falso, desmarca la posición actual en el tablero y continúa con la siguiente fila.
13. Si ninguna de las llamadas recursivas devuelve verdadero, devuelve falso.

Con este algoritmo, podrás encontrar una solución para ubicar 8 damas en un tablero de ajedrez sin que se amenacen entre sí. Recuerda implementar las funciones mencionadas y llamar a la función "ubicarDamas" para iniciar la búsqueda de soluciones. ¡Buena suerte, Jimmy!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar