// P0503.java:$B%7%'%k%T%s%9%-!<$N%.%c%9%1%C%H(B

import java.awt.*;
import java.awt.event.*;
import Glib.*;

public class P0503 extends xApplet
	implements ItemListener,ActionListener
{	Choice ch;
	Button bt;
	xTurtle T;
	int N;
	double r0=400.0;

	public void init()
	{	app_init(7);
		setLayout(new FlowLayout(FlowLayout.LEFT));
		Label lb=new Label("$B:F5"<!?t!'(BN=");
		add(lb);
		ch=new Choice();
		for(int i=0;i<8;i++)
			ch.add(Integer.toString(i));
		ch.addItemListener(this);
		add(ch);
		bt=new Button("$B>C5n(B");
		bt.addActionListener(this);
		add(bt);
		T=new xTurtle(getGraphics());
		T.set0(CA.x,(int)(4.0*CA.y/3),1);
		T.setlp(0.0,0.0);
		T.setangle(90.0);
	}

	public void itemStateChanged(ItemEvent evt)
	{	if(evt.getSource()==ch)
		{	N=ch.getSelectedIndex();
			sierp(r0,0);
		}
	}

	public void actionPerformed(ActionEvent evt)
	{	if(evt.getSource()==bt)
			repaint();
	}

	private void sierp(double r,int n)
	{	if(n<N)
		{	T.turn(180.0);
			T.fpolygon(3,r/2,1+n%6);
			T.turn(180.0);
			for(int i=0;i<3;i++)
			{	T.warp(r/2);
				sierp(r/2,n+1);
				T.warp(-r/2);
				T.turn(120.0);
			}
		}
		else
			T.fpolygon(3,r,0);
	}
}
