All pastes #755537 Raw Edit

Unbenannt

public text v1 · immutable
#755537 ·published 2007-10-30 19:27 UTC
rendered paste body
package 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);
	}
}