/* Kevin Fleming
   Final Exam
   Due5/11/98
   Tortoise and the Hare with a twist
*/

import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;

public class Race extends Applet {
        private Image turtle, hare, finish, victor;
        private int sleepTime = 100;
        private int count, hareX, turtleX, test = 1, num = 0, running, winner = 0;
        private Label title;

        public void init()
        {
                turtle = getImage(getDocumentBase(), "wile0.jpg");
                hare = getImage(getDocumentBase(), "rr0.jpg");
                finish = getImage(getDocumentBase(), "finish.jpg");

                title = new Label("Not Your Ordinary Tortoise and the Hare!");
                add(title);

        }

        public void start()
        {
                count = 0;
                hareX = 1;
                turtleX = 1;
                running = 0;
                winner = 0;
        }

        public void move()
        {
                if(turtleX < 450 && hareX < 450)
                {
                if(test > 0)
                {
                        num = 0;
                        test *= -1;
                }
                else
                {
                        num = 1;
                        test *= -1;
                }

                turtle = getImage(getDocumentBase(), "wile"+ num + ".jpg");
                hare = getImage(getDocumentBase(), "rr" + num + ".jpg");
                

                int h = (int)((Math.random()) * 10 + 1);
                int t = (int)((Math.random()) * 10 + 1);

                if(h == 1)
                        hareX += -12;
                else if(h > 1 && h < 4)
                        hareX += 0;
                else if(h > 3 && h < 6)
                        hareX += 9;
                else if(h > 5 && h < 9)
                        hareX += 1;
                else if(h > 11 && h < 8)
                        hareX += 2;

                if(t > 0 && t < 6)
                        turtleX += 3;
                else if(t > 5 && t < 8)
                        turtleX += -6;
                else if(t > 7)
                        turtleX += 1;
                }
                else
                {
                        if(hareX > 450)
                        {
                                showStatus("Yeah!! Roadrunner Wins!");
                                victor = getImage(getDocumentBase(), "winnerRR.jpg");
                        }
                        else if(turtleX > 450)
                        {
                                showStatus("Boo!! Wiley Coyote Wins!");
                                victor = getImage(getDocumentBase(), "winnerWiley.jpg");
                        }

                        running = 1;
                        winner = 1;
                }

        }
                

        public void paint(Graphics g)
        {
                if(running == 0)
                {
                        g.drawImage(finish, 475, 0, this);
                        g.drawImage(hare, hareX, 60, this);
                        g.drawImage(turtle, turtleX, 160, this);
                        
                        try{ Thread.sleep(sleepTime); }
                        catch(InterruptedException e) { showStatus(e.toString()); }
                        move();
                        repaint();

                }
                else
                        stop();

                if(winner == 1)
                        g.drawImage(victor, 75, 0, this);
                else
                        showStatus("GO!!!");

        }
}