C:\Users\***\Desktop\Programación C++\practicas\practicas\vida.cpp|4|error: 'Vida::Vida' nombra el constructor, no el tipo|
C:\Users\***\Desktop\Programación C++\practicas\practicas\vida.cpp|27|error: la declaración no puede resolver la dirección de la función sobrecargada|
C:\Users\***\Desktop\Programación C++\practicas\practicas\vida.cpp|28|error: qualified-id in declaration before '(' token|
C:\Users\***\Desktop\Programación C++\practicas\practicas\main.cpp|22|error: expected '}' at end of input|
El header es vida.h :
Código C++:
Ver original
#ifndef VIDA_H_INCLUDED #define VIDA_H_INCLUDED #include <iostream> #define FILAS 10 #define COLUMNAS 10 #define VIDA '*' #define MUERTE ' ' #define UMBRAL_INANICION 2 #define UMBRAL_SUPERPOBLACION 3 enum eDir{ ARR_IZQ=0, ARR=1, ARR_DER=2, DER=3, DER_ABJ=4, ABJ=5, ABJ_IZQ=6, IZQ=7 }; class Vida{ //Mapa char m_mapa[FILAS][COLUMNAS]; // Cuenta la cantidad de vidas adyacentes a la posición pasada como parámetro int contarAdyacentes(int fila, int columna); //Lee el valor de una posición según lo que indican los parámetros int leerValor(int fila, int columna, eDir dir); //Indica si la posición es válida o no bool posValida(int fila, int columna); public: Vida(); void Generar(); void Mostrar(); }; #endif // VIDA_H_INCLUDED
El vida.cpp donde inicializo funciones es:
Código C++:
Ver original
#include "vida.h" #include <memory.h> Vida::Vida; Vida::Vida(){ //Limpiar for(int i=0; i<FILAS;i++){ for(int j=0; j<COLUMNAS;j++) m_mapa[i][j] = ' '; } //Se pone valores en el mapa m_mapa[3][2]= '*'; m_mapa[3][4]= '*'; m_mapa[2][3]= '*'; m_mapa[4][3]= '*'; m_mapa[2][2]= '*'; m_mapa[4][4]= '*'; m_mapa[2][4]= '*'; m_mapa[4][2]= '*'; //REGLAS Vida::Generar; void Vida::Generar(){ int iConteo; char mapa[FILAS][COLUMNAS]; for(int i=0; i<FILAS; i++){ for(int j=0; j<COLUMNAS; j++){ iConteo = contarAdyacentes(i,j); // Cuando el numero es igual al umbral de inanicion no pasa nothing if(iConteo == UMBRAL_INANICION){ mapa[i][j] == MUERTE; } else if(iConteo > UMBRAL_INANICION && iConteo <= UMBRAL_SUPERPOBLACION){ mapa[i][j] = VIDA; } else if(iConteo > UMBRAL_SUPERPOBLACION){ mapa[i][j] = MUERTE; } }//FOR }//FOR }// Generar Vida::contarAdyacentes //Cuenta la cantidad de vidas adyacentes int Vida::contarAdyacentes(int fila, int columna){ return (leerValor(fila, columna, ARR_IZQ) + leerValor(fila, columna, ARR) + leerValor(fila, columna, ARR_DER) + leerValor(fila, columna, DER) + leerValor(fila, columna, DER_ABJ) + leerValor(fila, columna, ABJ) + leerValor(fila, columna, ABJ_IZQ) + leerValor(fila, columna, IZQ)); } Vida::leerValor; int Vida::leerValor(int fila, int columna, eDir dir) { if(dir == ARR_IZQ && posValida(fila-1,columna-1)){ return ((m_mapa[fila-1][columna-1] == VIDA)? 1:0); } else if(dir == ARR && posValida(fila-1, columna)){ return ((m_mapa[fila-1][columna] == VIDA)? 1:0); } else if(dir == ARR_DER && posValida(fila-1, columna+1)){ return ((m_mapa[fila-1][columna+1] == VIDA)? 1:0); } else if(dir == DER && posValida(fila, columna+1)){ return ((m_mapa[fila][columna+1] == VIDA)? 1:0); } else if(dir == DER_ABJ && posValida(fila+1, columna+1)){ return ((m_mapa[fila+1][columna+1] == VIDA)? 1:0); } else if(dir == ABJ && posValida(fila+1, columna)){ return ((m_mapa[fila+1][columna] == VIDA)? 1:0); } else if(dir == ABJ_IZQ && posValida(fila+1, columna-1)){ return ((m_mapa[fila+1][columna-1] == VIDA)? 1:0); } else if(dir == IZQ && posValida(fila, columna-1)){ return ((m_mapa[fila][columna-1] == VIDA)? 1:0); } else{ return 0; } }//Leer Valor Vida::posValida; bool Vida::posValida(int fila, int columna){ return(fila >= 0 && fila < FILAS && columna >= 0 && columna < COLUMNAS); } Vida::Mostrar; void Vida::Mostrar(){ for(int i = 0;i < FILAS;i++){ for(int j = 0; j < COLUMNAS; j++) cout << m_mapa[i][j]; cout << endl; } }//MOSTRAR }//VIDA!!!!!!
Y el main.cpp es:
Código C++:
Ver original
#include <iostream> #include <stdlib.h> #include <unistd.h> #include "vida.h" #include "vida.cpp" using namespace std; int main(){ Vida vida1; vida1.Mostrar(); for(int i = 0; i<100;i++){ sleep(100); vida1.Generar(); vida1.Mostrar(); } return 0; }
Agradecería sus colaboraciones de antemano y que tengan una excelente jornada.
PD: Uso CodeBlocks