Cellular automata base Conways Game of life - base code Fred Angstadt - very thanks
Embed:
(wiki syntax)
Show/hide line numbers
main.cpp
00001 #include "mbed.h" 00002 #include "TFT_4DGL.h" 00003 00004 unsigned short int displayold[40][53]; 00005 unsigned short int displaynew[40][53]; 00006 00007 int sx,sy,clst,x,y,test,loops; 00008 00009 TFT_4DGL ecran(p9,p10,p11); 00010 00011 int main() { 00012 00013 srand(1); 00014 00015 while(1) 00016 { 00017 00018 for (sy = 1; sy <= 52; sy++) 00019 { 00020 for (sx = 1; sx <= 39; sx++) 00021 { 00022 00023 if (rand()%10 == 4) 00024 { 00025 displayold[sx][sy] = 1; 00026 } 00027 } 00028 } 00029 00030 for (loops = 0;loops <= 500; loops++) 00031 { 00032 for (sy = 1; sy <= 52; sy++) 00033 { 00034 for (sx = 1; sx <= 39; sx++) 00035 { 00036 00037 if (displayold[sx][sy] == 1) 00038 { 00039 test = displayold[sx-1][sy-1] + displayold[sx][sy-1] + displayold[sx+1][sy-1] + displayold[sx-1][sy] + displayold[sx+1][sy] + displayold[sx-1][sy+1] + displayold[sx][sy+1] + displayold[sx+1][sy+1]; 00040 if (test == 2 || test == 3) 00041 { 00042 displaynew[sx][sy] = 1; 00043 } 00044 else displaynew[sx][sy] = 0; 00045 } 00046 else 00047 { 00048 test = displayold[sx-1][sy-1] + displayold[sx][sy-1] + displayold[sx+1][sy-1] + displayold[sx-1][sy] + displayold[sx+1][sy] + displayold[sx-1][sy+1] + displayold[sx][sy+1] + displayold[sx+1][sy+1]; 00049 if (test == 3) 00050 { 00051 displaynew[sx][sy] = 1; 00052 } 00053 00054 } 00055 00056 } 00057 } 00058 00059 00060 for (sy = 1; sy <= 52; sy++) 00061 { 00062 for (sx = 1; sx <= 39; sx++) 00063 { 00064 if (displaynew[sx][sy] != displayold[sx][sy]) 00065 { 00066 displayold[sx][sy] = displaynew[sx][sy]; 00067 if (displaynew[sx][sy] == 1) ecran.circle(6*sx,6*sy,2,rand()); 00068 else ecran.circle(6*sx,6*sy,2,BLACK); 00069 00070 } 00071 00072 00073 } 00074 } 00075 00076 00077 } 00078 00079 } 00080 }
Generated on Mon Jul 18 2022 20:33:30 by
1.7.2
Kamil Ondrousek