Snow



import java.awt.*;
import java.util.*;


class Snow
{
	private int xco, yco;
	private int depth;
	private int weight;
	private int drift;
	private int driftSign;
	private int maxY, maxX;
	private boolean alive;
	private int size;

	public Snow(int width,int height)
	{
		this.maxY = height;
		this.maxX = width;
		driftSign = 1;

	}

	public boolean isAlive()
	{
		return alive;
	}

	private void enable()
	{
		alive = true;
	}

	private void disable()
	{
		alive = false;
	}

	private void randSnowFlake()
	{
		setYco(0);
		setXco((int)(Math.random()*maxX));
		setWeight((int)(Math.random()*8));
		setDepth((int)(Math.random()*3));
		setSize((int)(Math.random()*2)+1);
		enable();
	}

	public void newFlake()
	{
		randSnowFlake();
	}

	private void setXco(int x)
	{
		this.xco = x;
	}

	private void setYco(int y)
	{
		this.yco = y;
	}

	private void setDepth(int d)
	{
		this.depth = d;
	}

	private void setSize(int s)
	{
		size = s;
	}

	private void setWeight(int w)
	{
		if (w > 2)
		this.weight = w;
		else this.weight = 2;
	}

	public void move()
	{
		if (getYco()%2 == 0) drift();
		setYco(getYco()+weight/2);
		setXco(getXco()+getDrift());
		if (getYco() > maxY) disable();
	}

	public void dodge(int x)
	{
		setXco(getXco()+x);
	}

	private void drift()
	{
		if (drift <= 0)
		{
			drift = (int)(Math.random()*10);
			driftSign = driftSign*(-1);
		}
		drift--;
	}

	private int getDrift()
	{
		if (drift >0) return driftSign;
		else return 0;
	}

	public int getYco()
	{
		return yco;
	}

	public int getXco()
	{
		return xco;
	}

	public int getDepth()
	{
		return depth;
	}

	public int getSize()
	{
		return size;
	}

}

Return to index

How to Add Java Applets to Your Site

New on the Java Boutique:

New Review:

Time Management Made Easy with the Quartz Enterprise Job Scheduler
Why not just use the Java timer API? This open source scheduling API boasts simplicity, ease-of-integration, a well-rounded feature set, and it's free!

New Applet:

Reverse Complement
Reverse Complement is a simple applet that converts DNA or RNA sequences into three useful formats.

Elsewhere on internet.com:

WebDeveloper Java
Lots of Java information on webdeveloper.com

WDVL Java
Thorough Java resource at the Web Developer's Virtual Library.

ScriptSearch Java
Hundreds of free Java code files to download.

jGuru: Your View of the Java Universe
Customizable portal with online training, FAQs, regular news updates, and tutorials.