Foros del Web » Programación para mayores de 30 ;) » C/C++ »

El Juego de la Vida

Estas en el tema de El Juego de la Vida en el foro de C/C++ en Foros del Web. Hola: Antes que nada me gustaria saber si cuento con el apoyo de los programadores de esta sección en encontrar un problemita de mi programa ...
  #1 (permalink)  
Antiguo 29/12/2006, 17:11
Avatar de Warlord_Furia  
Fecha de Ingreso: mayo-2005
Mensajes: 31
Antigüedad: 19 años
Puntos: 0
El Juego de la Vida

Hola:
Antes que nada me gustaria saber si cuento con el apoyo de los programadores de esta sección en encontrar un problemita de mi programa "El Juego de la Vida".
Como saben el juego de la Vida es un juego de "0 jugadores" que simula el comportamiento de las bacterias.

Ya Tengo el Programa armado pero me he encontrado con un par de problemillas en tiempo de ejecucion que espero me ayuden a encontrarlos en la linea de codigo.

Les explico un poco la Arquitectura del Programa.
Es una matriz de 5x5 en la cual el 1 representa la (Vida) y el 0 represente la (Muerte).

Reglas.
Sobrevivencia: "Si una vida (1) esta rodeada por 2 o 3 Vidas".
Nacimiento: "Si una Muerte (0) esta rodeada por 3 vidas".
Muerte por soledad: "Si una Vida(1) esta rodeada por cero vidas(1)".
Muerte por sobrepoblacion: "Si una vida esta rodeada de 4 o más vidas(1)".

Problemas de Ejecucion.
Error por Memoria inaccesible. (Me Gustaria Saber que es lo que causa este error y porque.)

Desde ya Agradesco su apoyo.

Aqui el Codigo.

#include <iostream.h>
#include <stdlib.h>
#include <conio.h>

#define Filas 5
#define Columnas 5

class tablero{

public:
int tab[Filas][Columnas];

//Construye el Tablero de Juego.
tablero();
//Valida si existe Vecino
bool valida_vida(int f, int c);
//Aplica las Reglas de Juego
void aplica_reglas();
//Muestra el Tablero
void mostrar();
};
//Constructor
tablero::tablero(){
randomize();
for(int i=1; i<=Filas; i++){
for(int j=1; j<=Columnas; j++){
tab[i][j]=random(2);
cout<<tab[i][j]<<" ";
}
cout<<"\n";
}
}
//Valida Vidas
bool tablero::valida_vida(int f,int c){
return(f>0 && f<Filas && c>0 && c<Columnas);
}
//Aplica Reglas de Juego
void tablero::aplica_reglas(){
int cont=0;
for(int i=1; i<=Filas; i++){
for(int j=1; j<=Columnas; j++){
//Conteo de Vecinos Vivos si no cumple se suponen muertos
if(valida_vida(i-1,j-1) && tab[i-1][j-1]==1) cont++;
if(valida_vida(i-1,j ) && tab[i-1][j ]==1) cont++;
if(valida_vida(i-1,j+1) && tab[i-1][j]==1) cont++;

if(valida_vida(i,j-1) && tab[i][j-1]==1) cont++;
if(valida_vida(i,j+1) && tab[i][j+1]==1) cont++;

if(valida_vida(i+1,j-1) && tab[i+1][j-1]==1) cont++;
if(valida_vida(i+1,j ) && tab[i+1][j ]==1) cont++;
if(valida_vida(i+1,j+1) && tab[i+1][j+1]==1) cont++;

//cout<<tab[i][j]<<" ";
//-------------
//Reglas
//-------------

//Sobrevivencia
if(cont==2 || cont==3){ }else{tab[i][j]=0;}
//Nacimiento
if(tab[i][j]==0 && cont==3){tab[i][j]==1;}
//Muerte por soledad
if(cont==0){tab[i][j]=0;}
//Muerte por sobrepoblacion
if(cont>=4){tab[i][j]=0;}

cout<<cont<<"\n";
mostrar();
getche();
cont=0;
}
//cout<<"\n";
}
}

void tablero::mostrar(){
for (int i=1; i<=Filas; i++){
for (int j=1; j<=Columnas; j++){
cout<<tab[i][j]<<" ";
}
cout<<"\n";
}
cout<<"\n";
}
void main(){
tablero juego;
int op;

do{
cout<<"1: Iniciar.\t2: Detener.\t3: Salir.\t0:Salir.\tOPCION: "; cin>>op;

switch(op){
case 1: juego.aplica_reglas(); juego.mostrar(); break;
}
}while(op!=0);
}

P.D
Si alguien está interesado en formar un equipo de Programadores de Juegos. No duden en avisarme.

Última edición por Warlord_Furia; 29/12/2006 a las 20:59
  #2 (permalink)  
Antiguo 30/12/2006, 06:06
 
Fecha de Ingreso: abril-2005
Mensajes: 3.083
Antigüedad: 19 años
Puntos: 17
Re: El Juego de la Vida

Cada vez que escribes esto, estás saliéndote de tu memoria:

Código:
for(int i=1; i<=Filas; i++){
for(int j=1; j<=Columnas; j++){
Los arrays en C empiezan en 0. ¿Vienes de Visual Basic? ;)

Cita:
Si alguien está interesado en formar un equipo de Programadores de Juegos. No duden en avisarme.
Yo, y muchos otros, estamos dispuestos; al igual que hay muchos proyectos que necesitan gente.

Pero tienes que tener un mínimo nivel para poder participar. Es decir, por ejemplo el código que has posteado aquí:

Código:
#include <iostream.h>
#include <stdlib.h>
#include <conio.h>

#define Filas 5
#define Columnas 5
Sólo esa parte ya haría que te expulsaran de un equipo ;)
  #3 (permalink)  
Antiguo 30/12/2006, 11:49
Avatar de Warlord_Furia  
Fecha de Ingreso: mayo-2005
Mensajes: 31
Antigüedad: 19 años
Puntos: 0
Re: El Juego de la Vida

Código:
Los arrays en C empiezan en 0. ¿Vienes de Visual Basic? ;)
No, no de Visual vengo de Pascal. Estoy con el Borland c++ 5.02.
El Material que he revisado acerca de programación en c++ no hacia mención de que los arrays empezaban con 0.


Código:
#include <iostream.h>
#include <stdlib.h>
#include <conio.h>

#define Filas 5
#define Columnas 5

Sólo esa parte ya haría que te expulsaran de un equipo ;)
No conosco muy bien c++ . pero, esta entre mis metas dominarlo.
Una Ayuda no me vendria mal.
por ejemplo al codigo no le veo nada de malo debido a mi nivel.pero si me dan ciertas pautas se que podre mejorar.
  #4 (permalink)  
Antiguo 30/12/2006, 12:00
 
Fecha de Ingreso: abril-2005
Mensajes: 3.083
Antigüedad: 19 años
Puntos: 17
Re: El Juego de la Vida

Aprende C primero, y entenderás el paso a C++ mejor.

Los que empezáis con C++ directamente termináis programando una especie de C con algún toque de C++, sin explorar sus posibilidades completamente.

En cambio, el que aprende C, al pasar a C++ aprende las cosas nuevas, y sabe que el resto ya era C.
  #5 (permalink)  
Antiguo 30/12/2006, 13:10
Avatar de Warlord_Furia  
Fecha de Ingreso: mayo-2005
Mensajes: 31
Antigüedad: 19 años
Puntos: 0
Re: El Juego de la Vida

Existe algún Manual de ""<<C>>"" de 21dias o menos?¿
por q las nociones las poseo solo me falta la guia.
Si posees informacion que me pueda servir, sera bienvenida.

<<No me Digan Nada - gRAVE eRROR DE MI pARTE - USA LAS PUTAS FAQS>>

Última edición por Warlord_Furia; 30/12/2006 a las 13:22
  #6 (permalink)  
Antiguo 30/12/2006, 13:37
Avatar de Instru  
Fecha de Ingreso: noviembre-2002
Ubicación: Mexico
Mensajes: 2.751
Antigüedad: 21 años, 5 meses
Puntos: 52
Re: El Juego de la Vida

Jajajajajaja.
Observador!!

De todos modos, el libro con el que realmente aprendi C se llamaba C en 24 horas.
Muy basico, muy facil, y muy muy didactico. Si lo logras conseguir, es excelente para empezar. Mas sin embargo no te puedes quedar con ese, hay que seguir leyendo, practicando y de todo porque ese libro es muy basico solo te enseña el estandar de C no a sacarle provecho.

Y bueno. Solo como comentario.
La programacion de videojuegos es junto con los sistemas operativos lo mas alto que un programador llega. Vamos, un videojuego de simulacion es simular condiciones realles y es meterte en fisica junto ocn programacion. No creas que es cualquier cosa. Programar videojuegos no es algo que hagas en un fin de semana, es realmente dificil, sobre todo un buen videojuego.

Cuando tengas un perfecto dominio de C, y aguas, que dije PERFECTO. Y sepas sacar el potencial de C++ sin dominarlo al 100% estaras preparado para hacer un buen videojuego. Cuando domines C++ nada te dentendra en cuanto a la programacion, NADA.

Espero que te haya ayudado.

Saludos
  #7 (permalink)  
Antiguo 30/12/2006, 16:00
 
Fecha de Ingreso: abril-2005
Mensajes: 3.083
Antigüedad: 19 años
Puntos: 17
Re: El Juego de la Vida

Cita:
Iniciado por Warlord_Furia Ver Mensaje
Existe algún Manual de ""<<C>>"" de 21dias o menos?¿
por q las nociones las poseo solo me falta la guia.
Si posees informacion que me pueda servir, sera bienvenida.

<<No me Digan Nada - gRAVE eRROR DE MI pARTE - USA LAS PUTAS FAQS>>
Si eres un buen programador y ya tienes experiencia de antes, C dicen K&R que se aprende en 3 meses, pero no suele ser así si no lo estudias como tal.

Así que en 21 días, mucho menos :)
  #8 (permalink)  
Antiguo 30/12/2006, 16:03
 
Fecha de Ingreso: abril-2005
Mensajes: 3.083
Antigüedad: 19 años
Puntos: 17
Re: El Juego de la Vida

Cita:
Iniciado por Instru Ver Mensaje
Jajajajajaja.
Observador!!

De todos modos, el libro con el que realmente aprendi C se llamaba C en 24 horas.
Muy basico, muy facil, y muy muy didactico. Si lo logras conseguir, es excelente para empezar. Mas sin embargo no te puedes quedar con ese, hay que seguir leyendo, practicando y de todo porque ese libro es muy basico solo te enseña el estandar de C no a sacarle provecho.

Y bueno. Solo como comentario.
La programacion de videojuegos es junto con los sistemas operativos lo mas alto que un programador llega. Vamos, un videojuego de simulacion es simular condiciones realles y es meterte en fisica junto ocn programacion. No creas que es cualquier cosa. Programar videojuegos no es algo que hagas en un fin de semana, es realmente dificil, sobre todo un buen videojuego.

Cuando tengas un perfecto dominio de C, y aguas, que dije PERFECTO. Y sepas sacar el potencial de C++ sin dominarlo al 100% estaras preparado para hacer un buen videojuego. Cuando domines C++ nada te dentendra en cuanto a la programacion, NADA.

Espero que te haya ayudado.

Saludos
Sí, bueno, y después de dominar C++, toca aprender OpenGL, DirectX, matemáticas 3D, árboles binarios, que si polígonos, sombras, texturización, división en planos binarios, estructura de ficheros tipo .bsp, ....

#_#

Entonces es cuando yo lo dejé, porque no me daba tiempo a hacer algo vistoso compaginándolo con los estudios normales; además de que sin unas matemáticas y una física sólidas (las cuales en España no se dan) no iba a llegar a mucho, así que me decidí a aprender sistemas operativos (lo cual no se necesita nada especial fuera de lo dado en el bachillerato) y ya tendría tiempo de otras cosas más adelante.

Aún estoy por decidirme qué hacer :)
  #9 (permalink)  
Antiguo 30/12/2006, 22:19
Avatar de Warlord_Furia  
Fecha de Ingreso: mayo-2005
Mensajes: 31
Antigüedad: 19 años
Puntos: 0
Re: El Juego de la Vida

Pues en Matematicas y Fisica me va bien.
yo VideoJuegos es lo que quiero :( siempre me gustaron.

Con respecto a ese libro que me recomendaron.
Aprenda C en 24 Horas.
Existe alguna version electronica que pueda encontrar por la web?¿
o es recomendable que me compre el Libro?¿
  #10 (permalink)  
Antiguo 31/12/2006, 05:59
 
Fecha de Ingreso: abril-2005
Mensajes: 3.083
Antigüedad: 19 años
Puntos: 17
Re: El Juego de la Vida

Cita:
Iniciado por Warlord_Furia Ver Mensaje
Pues en Matematicas y Fisica me va bien.
yo VideoJuegos es lo que quiero :( siempre me gustaron.
Suerte entonces, pero creo que aún no eres capaz de ver la complejidad que requiere hacer un videojuego ;)

Te recomiendo que empieces haciendo juegos 2D (como todos hicimos), primero un Pong, luego un PacMan, después un mata-marcianos....

Y si llegas hasta ahí, podrías intentar un sencillo juego de estrategia o RPG, incluso con soporte para varios jugadores a través de UDP/IP o TCP/IP.

Luego, pasar a 3D es cambiar el modo de visualizar lo gráfico. Los menús normalmente seguirán siendo 2D y demás, y tendrás que cambiar todo tu código para empezar a representarlo en 3D.

A ver si me entiendes, no es complicado hacer alguna cosa sencilla, como un laberinto 3D o algo así (fui capaz de hacerlo antes de empezar bachillerato, dado que el dibujado de todo se encarga OpenGL o DirectX y no hacen falta matemáticas); pero cuando quieras hacer algo más real, vas a encontrarte con sucesivos problemas.

Mira, me has animado, quizás yo termine haciendo algo 3D en el próximo verano, ahora que han pasado años y tengo más experiencia.

Cita:
Con respecto a ese libro que me recomendaron.
Aprenda C en 24 Horas.
Existe alguna version electronica que pueda encontrar por la web?¿
o es recomendable que me compre el Libro?¿
Busca algún tutorial en Internet, legales, es más que suficiente.
  #11 (permalink)  
Antiguo 31/12/2006, 06:28
Avatar de dogduck  
Fecha de Ingreso: enero-2006
Ubicación: ¿Atlantida, Hesperides, Islas afortunadas?
Mensajes: 2.231
Antigüedad: 18 años, 4 meses
Puntos: 19
Re: El Juego de la Vida

Los grandes videojuegos ( quake, half-life,...) no creo que los haga solo un programador. Pienso que hay un equipazo detrás (texturizadores, programadores del motor, diseñadores, guionistas,...), es una tarea ingente. Es como si el arquitecto tuviera que hacer de aparejador, albañil, encofrador, ferrallista,peón,...
Una experiencia bastante interesante seria desarrollar un MOD de un juego ya existente . No aporta casi nada al tema de programación, pero te das cuenta de que un juego no es solo programar ...
Suerte
potsdata: C++ Tutorial
  #12 (permalink)  
Antiguo 31/12/2006, 06:43
 
Fecha de Ingreso: abril-2005
Mensajes: 3.083
Antigüedad: 19 años
Puntos: 17
Re: El Juego de la Vida

Cita:
Iniciado por dogduck Ver Mensaje
Los grandes videojuegos ( quake, half-life,...) no creo que los haga solo un programador. Pienso que hay un equipazo detrás (texturizadores, programadores del motor, diseñadores, guionistas,...), es una tarea ingente. Es como si el arquitecto tuviera que hacer de aparejador, albañil, encofrador, ferrallista,peón,...
...programadores de la física, programadores del código multijugador (redes), programadores de la lógica del juego, modeladores, mapeadores, testers, distribuidores, agentes de publicidad... ;)

Cita:
Una experiencia bastante interesante seria desarrollar un MOD de un juego ya existente. No aporta casi nada al tema de programación, pero te das cuenta de que un juego no es solo programar ...
Huy, depende... Por ejemplo lo bueno de Half-Life 2 es que permite editar su código fuente :))

Toda esa maraña de archivos fuentes (que son sólo la parte lógica del juego, nada del motor gráfico que lo dan como binario) hace ver que un videojuego 3D no es hacer el Juego de la vida de 400 líneas, sino un paquete de a lo mejor 15 MB de texto comprimidas de 1 millón de líneas C/C++ y otras tantas de scripts, makefiles y demás.
  #13 (permalink)  
Antiguo 24/10/2008, 11:21
 
Fecha de Ingreso: octubre-2008
Mensajes: 3
Antigüedad: 15 años, 6 meses
Puntos: 0
De acuerdo Respuesta: El Juego de la Vida

Hola, no se si todabia tengas ese problema porque fijat que estoy haciendo el mismo juego y ya lo voy a terminar de todos modos t mando el codigo dentro de unos 2 dias para que lo analices ç,
vos y como esta eso de formar parte de un equipo de programadores de juegos porque a mi si me interesaria de todos modos ahi me contactas.......... Saludos
  #14 (permalink)  
Antiguo 24/10/2008, 11:28
 
Fecha de Ingreso: octubre-2008
Mensajes: 3
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: El Juego de la Vida

ALQUIEN M PUEDE DECIR LOS FUNDAMENTOS DE HACER JUEGOS O FORMAR UN EQUIPO DE PROGRAMADORES QUE SE DEDIQUEN A ESO Y LOS PROGRAMAS PARA FORMAR LOS MODELOS, PUE VERAN ESOY ESTUDIANDO INGENIERIA EN SISTEMAS Y QUISIERA SABER LES DEJO MI CORREO:
[email protected]
  #15 (permalink)  
Antiguo 31/10/2008, 12:59
 
Fecha de Ingreso: octubre-2008
Mensajes: 3
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: El Juego de la Vida

HOLAAAA

ALGUIEN ME PUDIERA AYUDAR CON LAS LIBRERIAS GRAFICAS DE C++, VERAN ESTOY USANDO GRAPHIC.H Y ME TIRA EL SIGUIENTE ERROR:

ERROR DIRECTIVE:BGI graphics not supported under Windows


SI ALGUIEN ME PUDIERA AYUDAR CO EL PROBREMA SE LOS AGRADECERIA MUCHO
LES DEJO MI CORREO:
[email protected]
  #16 (permalink)  
Antiguo 19/04/2010, 18:01
 
Fecha de Ingreso: abril-2010
Mensajes: 1
Antigüedad: 14 años
Puntos: 0
Respuesta: El Juego de la Vida

me podrian enviar porfavor a mi correo el juego porfavor lo necesito urgente [email protected]
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:07.