Dev - C++ - ayuda con el codigo del juego de la vida

   
Vista:
Imágen de perfil de Daniel

ayuda con el codigo del juego de la vida

Publicado por Daniel (4 intervenciones) el 14/01/2015 22:49:44
de antemano muchas gracias por las respuestas , bueno la verdad es que no entiendo por que razon me falla y es que al momento de poner el bloque que es una vida estatica deveria permanecer segun las reglas del juego pero no lo hace y en cambio se crea un caos total , que es lo que nesesito para que corra de manera eficiente,
pd: no busco hacerlo con obciones ni nada haci solo trato de crear uno clasico


#include <iostream>
#include <cstdlib>
using namespace std;

int main()
{
char A[20][50]={' '};
int X=20 , Y=20;
int v=0;
A[0][0]='*';A[0][1]='*';
A[1][0]='*';A[1][1]='*';

while(true)
{
////////////se limpia pantalla/////////////////////
system("cls");
////////////se inprime la malla////////////////////
for(int i=0;i<X;i++)
{
for(int j=0;j<Y;j++)
{
cout<<A[i][j];
}
cout<<"\n";
}
////////////////////////////////////////////////////
///////////se realiza el chequeo///////////////////
/*/*/for(int i=0;i<X;i++)/*/*/
{
for(int j=0;j<Y;j++)
{
v=0;
//////verificador alrededor de la casillla/////
///arriba
if(A[i-1][j-1]=='*'){v++;}
if(A[i-1][j]=='*'){v++;}
if(A[i-1][j+1]=='*'){v++;}
///medio
if(A[i][j-1]=='*'){v++;}
if(A[i][j+1]=='*'){v++;}
///abajo
if(A[i+1][j-1]=='*'){v++;}
if(A[i+1][j]=='*'){v++;}
if(A[i+1][j+1]=='*'){v++;}

////////////////////////////////////////////////////
/////////////decide si vive o muere/////////////////
if(v<2||v>3)
{A[i][j]=' ';}
else if(v==2||v==3)
{A[i][j]='*';}

}
}

/////////////////////////////////////////////////////
}
return 0;
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

ayuda con el codigo del juego de la vida

Publicado por carlos alberto (1 intervención) el 29/10/2016 02:29:20
yo lo ize asi, pero tienes que presionar enter para que avanze

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
#include<iostream>
#include<time.h>
#include<stdlib.h>
#include<conio.h>
 
using namespace std;
void Reclutar();
void AnalizarN();
void MostrarN();
void MostrarY();
void AnalizarY();
int n[100][100],pc,x=1,y[100][100],i,j,z[100][100];
 
int main (){
	Reclutar();
 
	do{
	MostrarN();
	AnalizarN();
	system("pause");
	system("cls");
	MostrarY();
	AnalizarY();
	system("pause");
	system("cls");
 
}
while (x==1);
	return 0;
}
void Reclutar(){					//numeros aleatorios
	srand(time(NULL));
	for (int i=0;i<29;i++){
		for (int j=0;j<90;j++){
			n[i][j]=0 + rand()%(2);
		}
	}
 
 
}
 
 
/*void Reclutar(){				//el usuario pone los numeros
	int n3,c=1;
	for (int i=0;i<29;i++){
		for (int j=0;j<90;j++){
			n[i][j]=0;
		}
	}
	cout<<"cuantos 1 quiere poner: ";cin>>n3;
	while (c<=n3){
	cout<<"ingrese el 1, pimero la fila despues la columna: ";
	cin>>i>>j;
	n[i-1][j-1]=1;
	c++;
}
	}
*/
void AnalizarN(){
	for (int i=0;i<29;i++){
		for (int j=0;j<90;j++){
			if (n[i][j]==1){
			if ((n[i+1][j]+n[i-1][j]+n[i][j+1]+n[i][j-1]+n[i-1][j-1]+n[i-1][j+1]+n[i+1][j-1]+n[i+1][j+1]!=3)&&(n[i+1][j]+n[i-1][j]+n[i][j+1]+n[i][j-1]+n[i-1][j-1]+n[i-1][j+1]+n[i+1][j-1]+n[i+1][j+1]!=2)){
				y[i][j]=0;
			}
			if ((n[i+1][j]+n[i-1][j]+n[i][j+1]+n[i][j-1]+n[i-1][j-1]+n[i-1][j+1]+n[i+1][j-1]+n[i+1][j+1]==3)||(n[i+1][j]+n[i-1][j]+n[i][j+1]+n[i][j-1]+n[i-1][j-1]+n[i-1][j+1]+n[i+1][j-1]+n[i+1][j+1]==2)){
				y[i][j]=1;
			}
		}
		else if (n[i][j]==0){
 
			if (n[i+1][j]+n[i-1][j]+n[i][j+1]+n[i][j-1]+n[i-1][j-1]+n[i-1][j+1]+n[i+1][j-1]+n[i+1][j+1]==3){
				y[i][j]=1;
			}
			if (n[i+1][j]+n[i-1][j]+n[i][j+1]+n[i][j-1]+n[i-1][j-1]+n[i-1][j+1]+n[i+1][j-1]+n[i+1][j+1]!=3){
				y[i][j]=0;
			}
		}
		}
	}
}
void MostrarN(){
	for (int i=0;i<29;i++){
		for (int j=0;j<90;j++){
			if (n[i][j]==1){
				cout<<0;
			}
			else if (n[i][j]==0){
				cout<<' ';
			}
		}
		cout<<endl;
	}
}
 
void MostrarY(){
	for (int i=0;i<29;i++){
		for (int j=0;j<90;j++){
				if (y[i][j]==1){
				cout<<0;
			}
			else if (y[i][j]==0){
				cout<<' ';
			}
		}
		cout<<endl;
	}
}
void AnalizarY(){
	for (int i=0;i<29;i++){
		for (int j=0;j<90;j++){
			if (y[i][j]==1){
			if ((y[i+1][j]+y[i-1][j]+y[i][j+1]+y[i][j-1]+y[i-1][j-1]+y[i-1][j+1]+y[i+1][j-1]+y[i+1][j+1]!=3)&&(y[i+1][j]+y[i-1][j]+y[i][j+1]+y[i][j-1]+y[i-1][j-1]+y[i-1][j+1]+y[i+1][j-1]+y[i+1][j+1]!=2)){
				n[i][j]=0;
			}
			if ((y[i+1][j]+y[i-1][j]+y[i][j+1]+y[i][j-1]+y[i-1][j-1]+y[i-1][j+1]+y[i+1][j-1]+y[i+1][j+1]==3)||(y[i+1][j]+y[i-1][j]+y[i][j+1]+y[i][j-1]+y[i-1][j-1]+y[i-1][j+1]+y[i+1][j-1]+y[i+1][j+1]==2)){
				n[i][j]=1;
			}
		}
		else if (y[i][j]==0){
 
			if (y[i+1][j]+y[i-1][j]+y[i][j+1]+y[i][j-1]+y[i-1][j-1]+y[i-1][j+1]+y[i+1][j-1]+y[i+1][j+1]==3){
				n[i][j]=1;
			}
			if (y[i+1][j]+y[i-1][j]+y[i][j+1]+y[i][j-1]+y[i-1][j-1]+y[i-1][j+1]+y[i+1][j-1]+y[i+1][j+1]!=3){
				n[i][j]=0;
			}
		}
		}
	}
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar