/*
  044110  乳原 梓
*/

#include<stdio.h>
#include<stdlib.h>
#include<eggx.h>

int main()
{
  int win;
  float x, a, b, s, t, delta, color;

  win = gopen(400, 400);
  winname(win, "Animated");

  for(x = 200.0; x > 5.0; x-= 5.0)
    {
      gclr(win);
      fillarc(win, 200.0, 200.0, x, x, 0.0, 360.0, 1);
      msleep(50);
    }
  for(x = 5.0; x < 200.0;  x+= 5.0)
    {
      gclr(win);
      fillarc(win, 200.0, 200.0, x, x, 0.0, 360.0, 1);
      msleep(50);
    }
  for(x = 390.0; x >= 10.0; x-= 5.0)
    {
      gclr(win);
      fillarc(win, 200.0, x, 10.0, 10.0, 0.0, 360.0, 1);
      msleep(50);
    }

  s = 10.0;
  t = 200.0;
  a = 200.0;
  b = 10.0;
  delta = 2.5;
  for(x = 10.0; x <= 390.0; x+= 5.0)
    {
      gclr(win);
      fillarc(win, 200.0, 10.0, 10.0, 10.0, 0.0, 360.0, 1);
      fillarc(win, 200.0, x, 10.0, 10.0, 0.0, 360.0, 1);
      fillarc(win, t, s, 10.0, 10.0, 0.0, 360.0, 1);
      fillarc(win, a, s, 10.0, 10.0, 0.0, 360.0, 1);
      fillarc(win, t, b, 10.0, 10.0, 0.0, 360.0, 1);
      fillarc(win, a, b, 10.0, 10.0, 0.0, 360.0, 1);
      fillarc(win, t, 10.0, 10.0, 10.0, 0.0, 360.0, 1);
      fillarc(win, a, 10.0, 10.0, 10.0, 0.0, 360.0, 1);
      a = a - delta;
      b = b + delta * 2;
      s = s + delta;
      t = t + delta;
      if(s > 200.0)
	break;
      msleep(50); 
    }
  for(x = 200.0; x <= 390.0; x+= 5.0)
    {
      gclr(win);
      fillarc(win, x, 10.0, 10.0, 10.0, 0.0, 360.0, 1);
      fillarc(win, 390.0, 10.0, 10.0, 10.0, 0.0, 360.0, 1);
      fillarc(win, 390.0, 200.0, 10.0, 10.0, 0.0, 360.0, 1);
      fillarc(win, 390.0, 390.0, 10.0, 10.0, 0.0, 360.0, 1);
      fillarc(win, 200.0, 390.0, 10.0, 10.0, 0.0, 360.0, 1);
      fillarc(win, 10.0, 390.0, 10.0, 10.0, 0.0, 360.0, 1);
      fillarc(win, 10.0, 200.0, 10.0, 10.0, 0.0, 360.0, 1);
      fillarc(win, 10.0, 10.0, 10.0, 10.0, 0.0, 360.0, 1);
      msleep(50);
    }
  for(x = 10.0; x <= 200.0; x+= 5.0)
    {
      gclr(win);
      fillarc(win, 390.0, x, 10.0, 10.0, 0.0, 360.0, 1);
      fillarc(win, 390.0, 200.0, 10.0, 10.0, 0.0, 360.0, 1);
      fillarc(win, 390.0, 390.0, 10.0, 10.0, 0.0, 360.0, 1);
      fillarc(win, 200.0, 390.0, 10.0, 10.0, 0.0, 360.0, 1);
      fillarc(win, 10.0, 390.0, 10.0, 10.0, 0.0, 360.0, 1);
      fillarc(win, 10.0, 200.0, 10.0, 10.0, 0.0, 360.0, 1);
      fillarc(win, 10.0, 10.0, 10.0, 10.0, 0.0, 360.0, 1);
      msleep(50);
    }
  for(x = 200.0; x <= 390.0; x+= 5.0)
    {
      gclr(win);
      fillarc(win, 390.0, x, 10.0, 10.0, 0.0, 360.0, 1);
      fillarc(win, 390.0, 390.0, 10.0, 10.0, 0.0, 360.0, 1);
      fillarc(win, 200.0, 390.0, 10.0, 10.0, 0.0, 360.0, 1);
      fillarc(win, 10.0, 390.0, 10.0, 10.0, 0.0, 360.0, 1);
      fillarc(win, 10.0, 200.0, 10.0, 10.0, 0.0, 360.0, 1);
      fillarc(win, 10.0, 10.0, 10.0, 10.0, 0.0, 360.0, 1);
      msleep(50);
    }
  for(x = 390.0; x >= 200.0; x-= 5.0)
    {
      gclr(win);
      fillarc(win, x, 390.0, 10.0, 10.0, 0.0, 360.0, 1);
      fillarc(win, 200.0, 390.0, 10.0, 10.0, 0.0, 360.0, 1);
      fillarc(win, 10.0, 390.0, 10.0, 10.0, 0.0, 360.0, 1);
      fillarc(win, 10.0, 200.0, 10.0, 10.0, 0.0, 360.0, 1);
      fillarc(win, 10.0, 10.0, 10.0, 10.0, 0.0, 360.0, 1);
      msleep(50);
    }
  for(x = 200.0; x >= 10.0; x-= 5.0)
    {
      gclr(win);
      fillarc(win, x, 390.0, 10.0, 10.0, 0.0, 360.0, 1);
      fillarc(win, 10.0, 390.0, 10.0, 10.0, 0.0, 360.0, 1);
      fillarc(win, 10.0, 200.0, 10.0, 10.0, 0.0, 360.0, 1);
      fillarc(win, 10.0, 10.0, 10.0, 10.0, 0.0, 360.0, 1);
      msleep(50);
    }
  for(x = 390.0; x >= 200.0; x-= 5.0)
    {
      gclr(win);
      fillarc(win, 10.0, x, 10.0, 10.0, 0.0, 360.0, 1);
      fillarc(win, 10.0, 200.0, 10.0, 10.0, 0.0, 360.0, 1);
      fillarc(win, 10.0, 10.0, 10.0, 10.0, 0.0, 360.0, 1);
      msleep(50);
    }
  for(x = 200.0; x >= 10.0; x-= 5.0)
    {
      gclr(win);
      fillarc(win, 10.0, x, 10.0, 10.0, 0.0, 360.0, 1);
      fillarc(win, 10.0, 10.0, 10.0, 10.0, 0.0, 360.0, 1);
      msleep(50);
    }
  color = 1;
  for(x = 10.0; x <= 200.0; x+= 5.0)
    {
      gclr(win);
      fillarc(win, x, 10.0, 10.0, 10.0, 0.0, 360.0, 1);
      msleep(50);
    }
  for(x = 10.0; x <= 200.0; x+= 5.0)
    {
      gclr(win);
      fillarc(win, 200.0, x, 10.0, 10.0, 0.0, 360.0, 1);
      msleep(50);
    }
  for(x = 5.0; x < 300.0;  x+= 5.0)
    {
      if(color != 15)
	color++;
      else if(color == 15)
	color = 1;
      newpen(win, color);
      gclr(win);
      fillarc(win, 200.0, 200.0, x, x, 0.0, 360.0, 1);
      msleep(100);
    }

  gclr(win);

  newpen(win, 5);
  for(x = 10.0; x <= 380.0; x+= 10.0)
    {
      fillrect(win, 20.0, x, 10.0, 10.0);
      msleep(50);
    }
  for(x = 20.0; x <= 100.0; x+= 10.0)
    {
      fillrect(win, x, 380.0, 10.0, 10.0);
      fillrect(win, x, 180.0, 10.0, 10.0);
      fillrect(win, x, 10.0, 10.0, 10.0);
      msleep(50);
    }
  for(x = 10.0; x <= 190.0; x+= 10.0)
    {
      fillrect(win, 150.0, x, 10.0, 10.0);
      msleep(50);
    }
  for(x = 150.0; x <= 240.0; x+= 10.0)
    {
      fillrect(win, x, 180.0, 10.0, 10.0);
      msleep(50);
    }
  for(x = 10.0; x <= 180.0; x+= 10.0)
    {
      fillrect(win, 240.0, x, 10.0, 10.0);
      msleep(50);
    }
  for(x = 10.0; x <= 380.0; x+= 10.0)
    {
      fillrect(win, 380.0, x, 10.0, 10.0);
      msleep(50);
    }
  for(x = 290.0; x <= 380.0; x+= 10.0)
    {
      fillrect(win, x, 180.0, 10.0, 10.0);
      fillrect(win, x, 10.0, 10.0, 10.0);
      msleep(50);
    }
  for(x = 10.0; x <= 180.0; x+= 10.0)
    {
      fillrect(win, 290.0, x, 10.0, 10.0);
      msleep(50);
    }


  ggetch();
  gclose(win);

  return 0;
}
