/*
 */

import java.awt.*;

/*
 * Twister Colors: blue, yellow, red, green (spinner order)
 */

public class spinner extends java.applet.Applet implements Runnable {
    Thread spinner;
    Font font;
    Font font1;
    int speed;
    int gen;

    public void init() {
	font  = new java.awt.Font("TimesRoman", Font.PLAIN, 48);
	font1 = new java.awt.Font("TimesRoman", Font.PLAIN, 24);
	String att = getParameter("speed");
	speed = (att == null) ? 1000 : Integer.valueOf(att).intValue();
	if (speed < 1000) speed = 1000;
	gen = 0;
    }
    
    public void paint(Graphics g) {
	int col = (int)(Math.random() * 4);
	int x = 0;
	int y = 0;
	String word1, word2;

	gen ++;

	switch (col) {
          case 0: g.setColor(Color.blue); break;
          case 1: g.setColor(Color.yellow); break;
          case 2: g.setColor(Color.red); break;
          case 3: g.setColor(Color.green); break;
	  default: g.setColor(Color.black);
	}
	g.fillArc(100, 100,155,105, 0, 360);

	switch ((int)(Math.random() * 2)) {
          case 0: x=50;  word1 = "Left";  break;
          case 1: x=250; word1 = "Right"; break;
	  default: x=0; word1="";
	}

	switch ((int)(Math.random() * 2)) {
          case 0: y=50;  word2 = "Hand"; break;
          case 1: y=250; word2 = "Foot"; break;
	  default: y=0; word2="";
	}

	g.setFont(font);
	g.setColor(Color.black);
	g.drawString(word1, x, y);
	g.drawString(word2, x, y+50);
	g.setFont(font1);
	g.setColor(Color.black);
	g.drawString("Generation: " + gen,50, 350);
    }

    public void start() {
	spinner = new Thread(this);
	spinner.start();
    }
    public void stop() {
	spinner.stop();
    }
    public void run() {
	while (true) {
	try {Thread.currentThread().sleep(speed);} catch (InterruptedException e){}
	    repaint();
	}
    }
}
