// P0501.java:$B@17A@5(B6$B3Q7A$K$h$k:F5"?^7A(B

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

public class P0501 extends xApplet
	implements ItemListener,ActionListener
{	Choice ch;
	Button bt;
	xTurtle T;
	int N;
	int[]col={6,1,2,4,3,5};
	double r0=160.0,kr=1.0/3;

	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<6;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,1);
		T.setlp(0.0,0.0);
		T.setangle(90.0);
	}

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

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

	private void rec(double r,int n)
	{	T.fstar(6,r,col[n%6]);
		if(n<N)
		{	for(int i=0;i<6;i++)
			{	T.warp((1+kr)*r);
				if(n==0||i!=3)
					rec(kr*r,n+1);
				T.warp(-(1+kr)*r);
				T.turn(60.0);
			}
		}
	}
}
