Buenas, tengo que hacer un ejercicio que es un array que tiene como tipo base un enumerado, y no se bien como hacerlo. Os dejo por aqui las especificaciones del problema y a ver si podeis darme alguna idea de como resolverlo.
Dada la siguiente definición de tipos:
const int TAM = 10;
enum TColor { CRojo, CAzul, CNegro };
typedef TColor TMatriz[TAM][TAM];
Implementar los siguientes dos subalgoritmos:
// Muestra la matriz en pantalla
// Deberá mostrar cada casilla en color azul por un '*', cada casilla en color
// rojo con una '#' y las casillas en color negro con un espacio en blanco
void muestraMatriz( const TMatriz &matriz );
// Calcula la distancia desde un punto (x, y) de la matriz
// (suponer que la esquina superior izquierda tiene la coordenada (0,0))
// hasta el punto más cercano con el color pasado por parámetro sin
// pasar por ningún punto de color CNegro, siguiento la dirección dx, dy.
// Devuelve 0 si no encuentra ninguna casilla de color antes de salir de la matriz
// o pasa por una casilla de color CNegro
// -1 <= dx <= 1, -1 <= dy <= 1 Representan una dirección. Por ejemplo:
// dx = 0, dy = -1 es la dirección vertical hacia arriba
// dx = 1, dy = 1 es la dirección diagonal hacia abajo a la derecha
// Ejemplo de esta función. Para la siguiente matriz:
// NNNNNNNNNN
// NNNNNNNNNN
// NNNNNNNNNN
// NNNRRRRNNN
// NNNNAARNNN
// NNNNARRNNN
// NNNAARRNNN
// NNNNNNNNNN
// NNNNNNNNNN
// NNNNNNNNNN
// distancia( matriz, CRojo, 4, 7, 0, -1 ) devolvería 3
// distancia( matriz, CRojo, 2, 3, 1, 0 ) devolvería 0
// distancia( matriz, CRojo, 4, 8, 0, -1 ) devolvería 0
// distancia( matriz, CRojo, 3, 4, 1, 0 ) devolvería 2
int distancia( const TMatriz &matriz, TColor color, int x, int y, int dx, int dy );
Cualquier ayuda sera bien recibida.
Gracias.