Witam!
Jest problem. Ponizej kod gry zycie.
Problem tkwi w tym ze chce zrobic aby gra "ewoluowala" i niby to robi ale niestety zdaje mi sie ze pracuje caly czas na jednej tablicy... a chce aby robilo sie tak - pobiera dane wejsciowe z jednej tablicy nastepnie "gra przechodzi" i efekt zapisywane jest w drugiej tablicy. Nastepnie ta "druga" tablica poddawana jest grze i zapisywane jest gdzie?! - moze w tej pierwszej!?! I tak w kolko...
Watpie zeby ktos to zrozumial co napisalem ale moze jednak... [green]
#include <iostream.h>
#include <stdio.h>
#include <conio.h>
#include <time.h>
#include <stdlib.h>
#include <dos.h>
int const N=15
;
int x=0;
int y=1;
int xx,yy;
int tab[N][N]=
{ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
;
int tab1[N][N] = { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
};
void life(int tab[N][N],int tab1[N][N])
{
for(int i=0;i<N;i++)
{
for(int j=0;j<N;j++)
{
int s=0; //suma
for(int k=-1;k<2;k++)
for(int l=-1;l<2;l++)
{
if((k!=0)||(l!=0))
if(((i+k)<=N)&&((i+k)>=1)&&((j+l)<=N)&&((j+l)>=1))
s+=tab[i+k][j+l];
}
if(s==3)
tab1[i][j]=y;
}
}
}
void clrscr(){
system("cls");
}
void swap(int& a , int &b) // zamiena elementow ze soba
{
int temp=a;
a=b;
b=temp;
}
void main()
{
//randomize();
printf(" ***ZASADY GRY ZYCIE!!!***\n");
printf(" 1.Komorka posiada 2 lub 3 sasiadow przezywa - 1\n");
printf(" 2.Komorka ma mniej niz 2 lub wiecej niz 3 sasiadow umier - 0\n");
printf(" 3.Komorka ma dokladnie 3 sasiadow rodzi sie - 1\n\n");
system("COLOR F1");
// int temp[N][N];
int* wsk1 = &tab[N][N];
int* wsk2 = &tab1[N][N];
printf("\n Stan poczatkowy");
for( int i=0;i<N;i++)
{
printf("\n");
for(int j=0;j<N;j++)
printf(" %d",tab[i][j]);
}
printf("\n\n");
int x=1;
system("PAUSE");
/**********************************************************************/
do{
clrscr();
life(tab,tab1);
for(i=0;i<N;i++)
{
printf("\n");
for(int j=0;j<N;j++)
{
printf(" %d",tab1[i][j]);
}
}
for(i=0;i<N;i++)
for(int j=0;j<N;j++)
tab1[i][j]=tab[i][j];
printf("\n\n");
// system("PAUSE");
for(xx = 0; xx < 4000; xx++)
{
for(yy = 0; yy < 20000; yy++)
{ }}
clrscr();
for(xx = 0; xx < 4000; xx++)
{
for(yy = 0; yy < 20000; yy++)
{ }
}
x++ ;
}while (x<50 );
system("PAUSE");
}