Ver Mensaje Individual
  #1 (permalink)  
Antiguo 24/06/2010, 17:40
Nefzen
 
Fecha de Ingreso: junio-2010
Mensajes: 1
Antigüedad: 14 años, 6 meses
Puntos: 0
[Urgente] El juego de la vida!

Holaa buenasss...
Tengo que entregar mañana en la facultad el juego de la vida, si ya se que me tendria que haber metido antes a hacerlo pero soy asi XD todo para el final. El tema es que esta incompleto y no se como terminarlo ( no me doy cuenta ) y otro tema es que no me compila, me dice como que las funciones que tengo no estan declaradas o algo asi, les paso todo el codigo para q me digan.
Ante todo Muchas Gracias. Chauu.

Ah la idea era separar el codigo en 1 archivo.h y otro .cpp pero no me funcionaba bn XD.

#include <cstdlib>
#include <iostream>
//#include "Clase.h"
#include <conio.h>

using namespace std;

// Comienzo de la clase celula
class celula {
int estado;
int vecVivos;

public:
int vecVida;
// if muerta revive
void revivir(){
if (obtenerEstado() == 0) {
modEstado();
}
}

// Actualiza el valor de vecinos vivos // no se si esta bn esto!!
void actVec(int cantVecVivos){

vecVida = cantVecVivos + vecVida;
;
}

// if viva matar
void matar(){
if (obtenerEstado() == 1) {
modEstado();
}
}

// modifica estado
void modEstado(){
if (estado == 0) {
estado = 1;
}else{
estado = 0;
}
}

// return 1 o 0
int obtenerEstado(){
if (estado == 0) {
return 0;
}else{
return 1;
}
}

};
// Creacion del mapa

celula Map[20][20];

// Analiza el centro de la matriz

void centro(){
int cant;
for (int i=1;i<19,i++){
for (int j=1;j<19,j++)
{
cant=0;
if (Map[i-1][j-1].obtenerEstado() == 1 ) cant++;
if (Map[i-1][j].obtenerEstado() == 1 ) cant++;
if (Map[i-1][j+1].obtenerEstado() == 1 ) cant++;
if (Map[i][j-1].obtenerEstado() == 1 ) cant++;
if (Map[i][j+1].obtenerEstado() == 1 ) cant++;
if (Map[i+1][j-1].obtenerEstado() == 1 ) cant++;
if (Map[i+1][j].obtenerEstado() == 1 ) cant++;
if (Map[i+1][j+1].obtenerEstado() == 1 ) cant++;

Map[i][j].actVec(cant);
}
}
}

// Analiza las 4 esquinas
//Analiza esquina Superior Izq
void esquina1(){
int cant = 0;

if (Map[0][1].obtenerEstado() == 1) cant++;
if (Map[1][1].obtenerEstado() == 1 ) cant++;
if (Map[1][0].obtenerEstado() == 1 ) cant++;
if (Map[0][19].obtenerEstado() == 1 ) cant++;
if (Map[1][19].obtenerEstado() == 1 ) cant++;
if (Map[19][0].obtenerEstado() == 1 ) cant++;
if (Map[19][1].obtenerEstado() == 1 ) cant++;
if (Map[19][19].obtenerEstado() == 1 ) cant++;

Map[0][0].actVec(cant);

}

//Analiza esquina Superior Der
void esquina2(){
int cant = 0;

if (Map[0][18].obtenerEstado() == 1) cant++;
if (Map[1][18].obtenerEstado() == 1 ) cant++;
if (Map[1][19].obtenerEstado() == 1 ) cant++;
if (Map[0][0].obtenerEstado() == 1 ) cant++;
if (Map[1][0].obtenerEstado() == 1 ) cant++;
if (Map[19][0].obtenerEstado() == 1 ) cant++;
if (Map[19][1].obtenerEstado() == 1 ) cant++;
if (Map[19][19].obtenerEstado() == 1 ) cant++;

Map[0][19].actVec(cant);

}

//Analiza esquina Inferior Izq
void esquina3(){
int cant = 0;

if (Map[18][0].obtenerEstado() == 1) cant++;
if (Map[18][1].obtenerEstado() == 1 ) cant++;
if (Map[19][1].obtenerEstado() == 1 ) cant++;
if (Map[18][19].obtenerEstado() == 1 ) cant++;
if (Map[19][19].obtenerEstado() == 1 ) cant++;
if (Map[0][19].obtenerEstado() == 1 ) cant++;
if (Map[0][0].obtenerEstado() == 1 ) cant++;
if (Map[0][1].obtenerEstado() == 1 ) cant++;

Map[19][0].actVec(cant);

}


//Analiza esquina Inferior Der
void esquina4(){
int cant = 0;

if (Map[19][18].obtenerEstado() == 1) cant++;
if (Map[18][18].obtenerEstado() == 1 ) cant++;
if (Map[18][19].obtenerEstado() == 1 ) cant++;
if (Map[18][0].obtenerEstado() == 1 ) cant++;
if (Map[19][0].obtenerEstado() == 1 ) cant++;
if (Map[0][19].obtenerEstado() == 1 ) cant++;
if (Map[0][18].obtenerEstado() == 1 ) cant++;
if (Map[0][0].obtenerEstado() == 1 ) cant++;

Map[19][19].actVec(cant);

}


// Analiza los 4 Laterales
void lateralIzq(){
int cant;
for (int i = 1; i<=18; i++)){
cant= 0;
if (Map[i-1][0].obtenerEstado() == 1) cant++;
if (Map[i-1][1].obtenerEstado() == 1 ) cant++;
if (Map[i][1].obtenerEstado() == 1 ) cant++;
if (Map[i+1][1].obtenerEstado() == 1 ) cant++;
if (Map[i+1][0].obtenerEstado() == 1 ) cant++;
if (Map[i-1][19].obtenerEstado() == 1 ) cant++;
if (Map[i][19].obtenerEstado() == 1 ) cant++;
if (Map[i+1][19].obtenerEstado() == 1 ) cant++;

Map[i][0].actVec(cant);

}

}

void lateralDer(){
int cant;
for (int i = 1; i<=18; i++)){
cant= 0;
if (Map[i-1][19].obtenerEstado() == 1) cant++;
if (Map[i-1][18].obtenerEstado() == 1 ) cant++;
if (Map[i][18].obtenerEstado() == 1 ) cant++;
if (Map[i+1][18].obtenerEstado() == 1 ) cant++;
if (Map[i+1][19].obtenerEstado() == 1 ) cant++;
if (Map[i-1][0].obtenerEstado() == 1 ) cant++;
if (Map[i][0].obtenerEstado() == 1 ) cant++;
if (Map[i+1][0].obtenerEstado() == 1 ) cant++;

Map[i][19].actVec(cant);

}

}


void lateralArriba(){
int cant;
for (int j = 1; j<=18; j++)){
cant= 0;
if (Map[0][j-1].obtenerEstado() == 1) cant++;
if (Map[1][j-1].obtenerEstado() == 1 ) cant++;
if (Map[1][j].obtenerEstado() == 1 ) cant++;
if (Map[0][j+1].obtenerEstado() == 1 ) cant++;
if (Map[1][j+1].obtenerEstado() == 1 ) cant++;
if (Map[19][j-1].obtenerEstado() == 1 ) cant++;
if (Map[19][j].obtenerEstado() == 1 ) cant++;
if (Map[19][j+1].obtenerEstado() == 1 ) cant++;

Map[0][j].actVec(cant);

}

}


void lateralAbajo(){
int cant;
for (int j = 1; j<=18; j++)){
cant= 0;
if (Map[19][j-1].obtenerEstado() == 1) cant++;
if (Map[18][j-1].obtenerEstado() == 1 ) cant++;
if (Map[18][j].obtenerEstado() == 1 ) cant++;
if (Map[18][j+1].obtenerEstado() == 1 ) cant++;
if (Map[19][j+1].obtenerEstado() == 1 ) cant++;
if (Map[0][j-1].obtenerEstado() == 1 ) cant++;
if (Map[0][j].obtenerEstado() == 1 ) cant++;
if (Map[0][j+1].obtenerEstado() == 1 ) cant++;

Map[19][j].actVec(cant);

}

}




// Carga Inicial del TABLERO y Menu!


void cargarTablero(celula Map[20][20],char op){
do
{
op = getche();
switch (op) {

case '1': cout << "Opcion 1" << endl;
Map[0][0].revivir();
Map[19][0].revivir();
Map[19][19].revivir();
Map[0][19].revivir();
break;

case '2': cout << "Opcion 2" << endl;
Map[9][9].revivir();
Map[9][8].revivir();
Map[9][7].revivir();
Map[8][8].revivir();
Map[7][8].revivir();
Map[6][8].revivir();
break;

case '3': cout << "Opcion 3" << endl;
Map[1][1].revivir();
Map[3][3].revivir();
Map[3][4].revivir();
Map[4][3].revivir();
Map[4][5].revivir();
Map[5][3].revivir();
break;

case 'q': cout << "Cerrando Programa" << endl;
default : cout << "Esta tecla no Sirve, elegi otra" << endl;
}
getch();
system("cls");
}
while (a != 'q');
}




//actualiza tablero e imprime 1 x 1
for (int i = 0; i<20; i++) {
for (int j = 0; j<20; j++){
if ((Map[i][j].obtenerEstado() == 0) && (Map[i][j].vecVida == 3)) {
Map [i][j].revivir();
}

if ((Map[i][j].obtenerEstado() == 1 ) && (Map[i][j].vecVida != 3) && (Map[i][j].vecVida != 2)){
Map [i][j].matar();
}
if (obtenerEstado == 1){
cout << " x";
}else{
cout << " O";
}

cout << endl;
}
}






int main(int argc, char *argv[])
{


system("PAUSE");
return EXIT_SUCCESS;
}