1.- Crea un pequeño programa que pida por teclado un alto y un ancho y crea una matriz de int con ese alto y ese ancho. Introduce en todas las celdas de esta matriz un valor de 0.
2.- Amplía el anterior para que escriba en pantalla la matriz (con forma), imprimiendo una X en lugar del valor de la matriz (o sea, algo así -> X X X X X)
3.- Dado un int X > 0 por teclado, devuelve int Y al azar, que cumpla 0 <= Y < X
4.- Dada la matriz anterior, te pida un int K > 0 por teclado, rellena K casillas al azar (OJO, casillas DISTINTAS!, si cae en una casilla que ya rellenaste, deberás pedirla otra vez) de la matriz de antes con un valor de -1. Por cierto, si K >= número de celdas de la matriz, pedir otro K.
5.- Amplía el anterior punto, para que rellene cada celda de la matriz con el número de casillas con -1 que tiene alrededor (en las 8 casillas, incluye diagonales, pero la matriz no es circular cuidado con los bordes, que no tienen las mismas casillas alrededor que las celdas del centro)
Ejemplo: 1 1 2 1 1 0
1 -1 2 -1 1 0
1 1 2 1 1 0
6.- Crea una estructura que contenga las siguientes variables: un boolean (o int, si usas C) de nombre 'cubierta' y un int, de nombre 'valor'. La estructura se llamará TCelda.
7.- Cambia el ejercicio 1 para que la matriz sea de tipo TCelda. Inicializa todas las celdas como cubierta = 1 (o true) y valor = 0;
8.- Combina los ejercicios 7, 4 y 5, seleccionando casillas al azar, rellena la variable valor con el -1 y las variables valor de las celdas de alrededor con el número de -1 que tengan alrededor.
9.- Cambia el ejercicio 2 para que use la matriz de TCelda del ejercicio 8. Deberá escribir en pantalla lo siguiente:
X -> si esta celda tiene cubierta = 1
@ -> si esta celda tiene cubierta = 0 y valor = -1
valor -> si esta celda tiene cubierta = 0 y valor > -1
10.- Crea una función que, dado un X y un Y, (X, Y) posicion de una celda, cambie la TCelda de la matriz que esté en la posición (X, Y), pòniendo su valor cubierta a 0. Si en esa celda, cubierta ya era 0, o esa posición (X, Y) no existe en la matriz, pide otra vez los valores X e Y.
Jejejeje. Seguro que todos sabeis de qué se trata, no?
Con esto enseñé a mi primo a programar C.
Si consigues llegar hasta el punto 10, seguro que sabrás terminar el juego tú sólo, si no, ya sabes dónde preguntar...
Un saludo.
Silverfox