Wolfram 1D cellular automata - 640x480 vga

Dependencies:   fastlib mbed vga640x480g

Committer:
JLS
Date:
Mon Feb 27 20:55:25 2012 +0000
Revision:
0:106895e78e6d

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
JLS 0:106895e78e6d 1 #include "mbed.h"
JLS 0:106895e78e6d 2 #include "vga640x480g.h"
JLS 0:106895e78e6d 3
JLS 0:106895e78e6d 4 void DisplayState(int s[],int len, int row);
JLS 0:106895e78e6d 5
JLS 0:106895e78e6d 6 int main() {
JLS 0:106895e78e6d 7
JLS 0:106895e78e6d 8 init_vga();
JLS 0:106895e78e6d 9
JLS 0:106895e78e6d 10 vga_cls();
JLS 0:106895e78e6d 11
JLS 0:106895e78e6d 12 int iteration = 479;
JLS 0:106895e78e6d 13 int lenght = 639;
JLS 0:106895e78e6d 14
JLS 0:106895e78e6d 15 int rules[8] = {1,1,1,0,1,0,0,1};
JLS 0:106895e78e6d 16
JLS 0:106895e78e6d 17 int row = 0;
JLS 0:106895e78e6d 18
JLS 0:106895e78e6d 19 int state[lenght];
JLS 0:106895e78e6d 20 int newstate[lenght];
JLS 0:106895e78e6d 21 int i,j,k;
JLS 0:106895e78e6d 22
JLS 0:106895e78e6d 23 while(1) {
JLS 0:106895e78e6d 24
JLS 0:106895e78e6d 25 for (i=0;i<lenght;i++)
JLS 0:106895e78e6d 26
JLS 0:106895e78e6d 27 state[i]= int (rand()%2);
JLS 0:106895e78e6d 28
JLS 0:106895e78e6d 29 for (i=0;i<iteration;i++) {
JLS 0:106895e78e6d 30
JLS 0:106895e78e6d 31 for (j=0;j<lenght;j++) newstate[j] = 0;
JLS 0:106895e78e6d 32
JLS 0:106895e78e6d 33 for (j=0;j<lenght;j++) {
JLS 0:106895e78e6d 34
JLS 0:106895e78e6d 35 k = 4*state[(j-1+lenght)%lenght] + 2*state[j] + state[(j+1)%lenght];
JLS 0:106895e78e6d 36 newstate[j] = rules[k];
JLS 0:106895e78e6d 37 }
JLS 0:106895e78e6d 38
JLS 0:106895e78e6d 39 for (j=0;j<lenght;j++) state[j] = newstate[j];
JLS 0:106895e78e6d 40
JLS 0:106895e78e6d 41 DisplayState(state,lenght,row);
JLS 0:106895e78e6d 42 row = row + 1;
JLS 0:106895e78e6d 43 if (row == 480) row = 0;
JLS 0:106895e78e6d 44 }
JLS 0:106895e78e6d 45
JLS 0:106895e78e6d 46 }
JLS 0:106895e78e6d 47
JLS 0:106895e78e6d 48 }
JLS 0:106895e78e6d 49
JLS 0:106895e78e6d 50
JLS 0:106895e78e6d 51 void DisplayState(int s[],int len, int row)
JLS 0:106895e78e6d 52 {
JLS 0:106895e78e6d 53 int i;
JLS 0:106895e78e6d 54
JLS 0:106895e78e6d 55 for (i=0;i<len;i++) {
JLS 0:106895e78e6d 56
JLS 0:106895e78e6d 57 if (s[i] == 1){
JLS 0:106895e78e6d 58 vga_plot(i,row,WHITE);
JLS 0:106895e78e6d 59 }
JLS 0:106895e78e6d 60
JLS 0:106895e78e6d 61 else{
JLS 0:106895e78e6d 62 vga_plot(i,row,BLACK);
JLS 0:106895e78e6d 63 }
JLS 0:106895e78e6d 64 }
JLS 0:106895e78e6d 65 }