Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ```C
- #include <stdlib.h>
- #include <stdio.h>
- #include <time.h> //random
- #include <windows.h>//colors
- #define N 40
- #define A 'O' //alive cell
- #define B ' ' //dead cell
- typedef struct _variables
- {
- int i;
- int j;
- int random;
- int cellcounter;
- char tab[N][N];
- } varstruct, *structvar;
- //prototypes
- void create(varstruct p);
- void process(varstruct p);
- void display(varstruct p);
- //
- void display(varstruct p)
- {
- for (p.i = 0; p.i < N; p.i++)
- {
- for(p.j = 0; p.j < N; p.j++)
- {
- printf("%c", p.tab[p.j][p.j]);
- }
- printf("\n");
- }
- //getchar();
- system("cls");
- process(p);
- }
- void process(varstruct p)
- {
- for(p.i = 0; p.i < N; p.i++)
- {
- p.cellcounter = 0;
- if(p.tab[p.i][p.i] == A)
- p.cellcounter++;
- if(p.tab[p.i-1][p.i] == A)
- p.cellcounter++;
- if(p.tab[p.i+1][p.i] == A)
- p.cellcounter++;
- if(p.tab[p.i][p.i+1] == A)
- p.cellcounter++;
- if(p.tab[p.i][p.i-1] == A)
- p.cellcounter++;
- if(p.tab[p.i+1][p.i+1] == A)
- p.cellcounter++;
- if(p.tab[p.i+1][p.i-1] == A)
- p.cellcounter++;
- if(p.tab[p.i-1][p.i+1] == A)
- p.cellcounter++;
- if(p.tab[p.i-1][p.i-1] == A)
- p.cellcounter++;
- // printf("%d\n", p.cellcounter);
- if(p.cellcounter >= 3)
- {
- // printf("Live cell placed for this spot\n");
- p.tab[p.i][p.i] = A;
- }
- else if(p.cellcounter < 3)
- {
- // printf("Dead cell placed for this spot\n");
- p.tab[p.i][p.i] = B;
- }
- }//end for i loop
- //getchar();
- system("cls");
- display(p);
- }
- void create(varstruct p)
- {
- //create
- for(p.i = 0; p.i <= N; p.i++)
- {
- p.random = rand()%2+1;
- if(p.random == 1)
- p.tab[p.i][p.i] = A;
- else if (p.random == 2)
- p.tab[p.i][p.i] = B;
- }
- //display
- for (p.i = 0; p.i < N; p.i++)
- {
- for(p.j = 0; p.j < N; p.j++)
- {
- printf("%c", p.tab[p.j][p.j]);
- }
- printf("\n");
- }
- //getchar();
- system("cls");
- process(p);
- }
- int main()
- {
- srand(time(NULL));//seeding
- varstruct p;
- create(p);
- //getchar();
- return 0;
- }
- ```
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement