rendered paste bodypackage chasingevading;
import javax.swing.*;
import javax.swing.event.ChangeListener;
import javax.swing.event.ChangeEvent;
import java.util.LinkedList;
import java.util.Random;
import java.awt.event.*;
import java.awt.*;
public class ChasingEvading extends JFrame implements ActionListener,
WindowListener {
private ChasingEvadingPanel myPanel;
public ChasingEvading(int rows, int cols) {
super("");
myPanel = new ChasingEvadingPanel(rows, cols);
setContentPane(myPanel);
addWindowListener(this);
pack();
setVisible(true);
}
public void actionPerformed(ActionEvent e) {
myPanel.paint(myPanel.getGraphics());
}
public void windowActivated(WindowEvent e) {
myPanel.paint(myPanel.getGraphics());
}
public void windowClosed(WindowEvent e) {
System.exit(0);
}
public void windowClosing(WindowEvent e) {
System.exit(0);
}
public void windowDeactivated(WindowEvent e) {
myPanel.paint(myPanel.getGraphics());
}
public void windowDeiconified(WindowEvent e) {
myPanel.paint(myPanel.getGraphics());
}
public void windowIconified(WindowEvent e) {
}
public void windowOpened(WindowEvent e) {
myPanel.paint(myPanel.getGraphics());
}
public void run(int startx, int starty) {
myPanel.runGame(startx, starty);
}
public static void main(String[] args) {
if (args.length != 2)
args = new String[] { "400", "400" };
int xsize = new Integer(args[0]).intValue();
int ysize = new Integer(args[1]).intValue();
if (xsize <= 120)
xsize = 120;
if (ysize <= 120)
ysize = 120;
ChasingEvading p = new ChasingEvading(xsize, ysize);
Random rand = new Random();
// lets have a fair start
int rndx = 0;
while (rndx <= 20 || rndx >= xsize - 20
|| Math.abs(rndx - p.myPanel.getPrey().getX()) <= 20) {
rndx = (int) (rand.nextFloat() * xsize);
}
int rndy = 0;
while (rndy <= 20 || rndy >= xsize - 20
|| Math.abs(rndy - p.myPanel.getPrey().getY()) <= 20) {
rndy = (int) (rand.nextFloat() * ysize);
}
p.run(rndx, rndy);
}
}