#include #include "MyConIO.h" void clear_field(char field[79][25]) { int x,y; for(x=0;x<79;x++) for(y=0;y<25;y++) field[x][y]=' '; } void sow_field(char field[79][25]) { int x,y; char Dateiname[12],zeile[79]; FILE *vorgabe; printf("Dateiname: "); scanf("%s",&Dateiname); vorgabe = fopen(Dateiname,"r"); for(y=0;y<25;y++) { fscanf(vorgabe,"%s",&zeile); for(x=0;x<79;x++) { field[x][y]=zeile[x]; } } } void display_field(char field[79][25]) { int x,y; mc_gotoxy(1,1); for(x=0;x<79;x++) for(y=0;y<25;y++) { mc_gotoxy(x,y); putchar(field[x][y]); } } char get_field(int x,int y,char field[79][25]) { if (x==-1) x=78; if (y==-1) y=24; if (x==79) x=0; if (y==25) y=0; return field[x][y]; } void advance_generation(char field[79][25]) { int x,y; char status[79][25]; for(x=0;x<79;x++) for(y=0;y<25;y++) { status[x][y]=0; if (get_field(x-1,y-1,field)=='#') status[x][y]=status[x][y]+1; if (get_field(x ,y-1,field)=='#') status[x][y]=status[x][y]+1; if (get_field(x+1,y-1,field)=='#') status[x][y]=status[x][y]+1; if (get_field(x-1,y ,field)=='#') status[x][y]=status[x][y]+1; if (get_field(x+1,y ,field)=='#') status[x][y]=status[x][y]+1; if (get_field(x-1,y+1,field)=='#') status[x][y]=status[x][y]+1; if (get_field(x ,y+1,field)=='#') status[x][y]=status[x][y]+1; if (get_field(x+1,y+1,field)=='#') status[x][y]=status[x][y]+1; } for(x=0;x<79;x++) for(y=0;y<25;y++) { if ((status[x][y]==2) || (status[x][y]==3)) { if (status[x][y]==3) field[x][y]='#'; } else { field[x][y]=' '; } } } int main(void) { char spielfeld[79][25]; clear_field(spielfeld); sow_field(spielfeld); mc_init(); mc_clrscr(); do { advance_generation(spielfeld); display_field(spielfeld); mc_delay(100); } while (!mc_keypressed()); mc_exit(); return 0; }