#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <unistd.h>

#define SIZE_HEAD 9 
#define SIZE_BODY 3 
#define SIZE_LASER 5 
char dancers_head[9][4] = { "_o_", "_o/", "\\o/", "|o_", 
		 		   "|o|", "|o/", "\\o|", "_o|", 
	 			   "\\o_" };

char dancers_body[SIZE_BODY][4] = { " | ", " < ", " > " };

char dancers_feet[9][4] = { "/ \\", "< \\", "/ >", "< >",
				   "/ /", "\\ \\", "< /", "\\ >",
				   "> <" };

char laser[SIZE_LASER][6] = { "-----", "=====", "_____", "\\/\\/\\", "....." };

int main(void)
{
  int i;

  srand(time(NULL));
  while(1) {
    usleep(300000);

    for (i = 0; i < 12; i ++ ) {
      printf("%s", laser[rand() % SIZE_LASER]);
    }

    printf("\n\n");

    for (i = 0; i < 12; i ++) {
      printf("%s  ", dancers_head[rand() % SIZE_HEAD]);
    }

    printf("\n");

    for (i = 0; i < 12; i ++) {
      printf("%s  ", dancers_body[rand() % SIZE_BODY]);
    }

    printf("\n");

    for (i = 0; i < 12; i ++) {
      printf("%s  ", dancers_feet[rand() % SIZE_HEAD]);
    }   

    fflush(stdout);
    printf("\033[64D");
    printf("\033[4A");
  }

  return (0);
}
