Guest User

cm5-1

a guest
Mar 21st, 2016
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.24 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdint.h>
  3. #include <string.h>
  4.  
  5. #define WIDTH 64
  6. #define HEIGHT 48
  7.  
  8. #define bitRead(value, bit) (((value) >> (bit)) & 0x01)
  9.  
  10. int buffer[WIDTH+2][HEIGHT+2];
  11.  
  12. static uint16_t fn(uint16_t x)
  13. {
  14.     return ((x >> 0) ^ (x >> 4) ^ (x >> 13) ^ (x >> 15)) & 1;
  15. }
  16.  
  17. void print_screen()
  18. {
  19.     uint16_t i,j;
  20.     int pixel;
  21.     char v[WIDTH];
  22.     for (j = 0; j<HEIGHT; j++){
  23.         for (i = 0; i<WIDTH; i++){
  24.             pixel=buffer[i][j];
  25.            
  26.             if (j&4){
  27.                 if (pixel==0) v[WIDTH-i]=' ';
  28.                 else v[WIDTH-i]='X';
  29.             }
  30.             else if (pixel==0) v[i]=' ';
  31.             else v[i]='X';
  32.         }
  33.         v[WIDTH] = '\0';
  34.         puts(v);
  35.     }
  36. }
  37.  
  38. int main(void)
  39. {
  40.     uint16_t gen = 1;
  41.     int i,j;
  42.     for (;;)
  43.     {
  44.         /* ANSI sequence to clear terminal */
  45.         fputs("\033[2J\033[1;1H", stdout);
  46.        
  47.         for (i = 0; i < HEIGHT; i++)
  48.         {
  49.             uint16_t gen_bit = fn(gen);
  50.             gen = (gen_bit << 15) | (gen >> 1);
  51.             // uint16_t bit = ((gen >> 0) & (gen >> 1)) & 1;
  52.             uint16_t bit = bitRead(gen,0) & bitRead(gen,1);
  53.            
  54.             buffer[WIDTH][i]=bit;
  55.         }
  56.        
  57.         for(j=0; j<HEIGHT; j++) {
  58.             for(i=0; i<WIDTH; i++){
  59.                 if (buffer[i+1][j]==1) buffer[i][j]=1;
  60.                 else buffer[i][j]=0;
  61.             }
  62.         }
  63.         print_screen();
  64.        
  65.         fflush(stdout);
  66.         usleep(70000);
  67.     }
  68.    
  69.     return 0;
  70. }
Advertisement
Add Comment
Please, Sign In to add comment