Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdint.h>
- #include <string.h>
- #define WIDTH 64
- #define HEIGHT 48
- #define bitRead(value, bit) (((value) >> (bit)) & 0x01)
- int buffer[WIDTH+2][HEIGHT+2];
- static uint16_t fn(uint16_t x)
- {
- return ((x >> 0) ^ (x >> 4) ^ (x >> 13) ^ (x >> 15)) & 1;
- }
- void print_screen()
- {
- uint16_t i,j;
- int pixel;
- char v[WIDTH];
- for (j = 0; j<HEIGHT; j++){
- for (i = 0; i<WIDTH; i++){
- pixel=buffer[i][j];
- if (j&4){
- if (pixel==0) v[WIDTH-i]=' ';
- else v[WIDTH-i]='X';
- }
- else if (pixel==0) v[i]=' ';
- else v[i]='X';
- }
- v[WIDTH] = '\0';
- puts(v);
- }
- }
- int main(void)
- {
- uint16_t gen = 1;
- int i,j;
- for (;;)
- {
- /* ANSI sequence to clear terminal */
- fputs("\033[2J\033[1;1H", stdout);
- for (i = 0; i < HEIGHT; i++)
- {
- uint16_t gen_bit = fn(gen);
- gen = (gen_bit << 15) | (gen >> 1);
- // uint16_t bit = ((gen >> 0) & (gen >> 1)) & 1;
- uint16_t bit = bitRead(gen,0) & bitRead(gen,1);
- buffer[WIDTH][i]=bit;
- }
- for(j=0; j<HEIGHT; j++) {
- for(i=0; i<WIDTH; i++){
- if (buffer[i+1][j]==1) buffer[i][j]=1;
- else buffer[i][j]=0;
- }
- }
- print_screen();
- fflush(stdout);
- usleep(70000);
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment