#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void clear()
{
printf("\033[H\033[J");
}
void clearLine()
{
printf("\033[K");
}
void move(int x, int y)
{
printf("\033[%d;%dH", y, x);
}
void doColor(int c)
{
if (c >= 0 && c <= 7)
printf("\033[3%dm", c);
}
void undoColor()
{
printf("\033[m");
}
void delay()
{
int i;
for (i=0; i<500; i++)
move(0, 21);
}
int main(int argc, char *argv[])
{
float x, y, dx, dy, oldx, oldy;
srand(time(NULL));
x = 10;
y = 10;
dx = 0.07;
dy = 0.03;
oldx = 10;
oldy = 10;
clear();
move(0, 21);
doColor(2);
printf("______________________________"
"______________________________");
while (1)
{
move((int) oldx, (int) oldy);
clearLine();
move((int) x, (int) y);
doColor(3);
printf("*");
undoColor();
move(0, 21);
fflush(stdout);
delay();
if (dx > 0 && x >= 60)
dx = -dx;
if (dx < 0 && x <= 0)
dx = -dx;
if (dy > 0 && y >= 20)
dy = -dy;
if (dy < 0 && y <= 0)
dy = -dy;
oldx = x;
oldy = y;
x += dx;
y += dy;
dy += 0.0005;
}
undoColor();
move(0, 21);
return 0;
}