package ch.zhaw.ads;

public class SnowflakeServer implements CommandExecutor {
	Turtle turtle;
    double dist = 0.7;

	/* (non-Javadoc)
	 * @see ch.zhaw.ads.CommandExecutor#execute(java.lang.String)
	 */
	@Override
	public String execute(String command) throws Exception {
		int stufe = Integer.parseInt(command);
                turtle = new Turtle(0.1 , 0.7);
                snowflake(stufe, dist);
                turtle.turn(-120);
                snowflake(stufe, dist);
                turtle.turn(-120);
                snowflake(stufe, dist);
                return turtle.getTrace();                
	}
	

	void snowflake(int stufe, double dist) {
		if (stufe == 0) {
			turtle.move(dist);
		} else {
			stufe --;
			dist = dist / 3;
			snowflake(stufe, dist);
			turtle.turn(60);
			snowflake(stufe, dist);
			turtle.turn(-120);
			snowflake(stufe, dist);
			turtle.turn(60);
			snowflake(stufe, dist);
		}
	}

}
