Riešenia (skupina D, 5. týždeň)

import java.awt.event.MouseEvent;

import sk.upjs.jpaz2.Turtle;
import sk.upjs.jpaz2.WinPane;


public class GrafickyEditor extends WinPane {
    private Turtle korytnacka = new Turtle();
    boolean laveDole = false;
    public GrafickyEditor(){
        this.add(korytnacka);
    }

    @Override
    protected void onMouseClicked(int x, int y, MouseEvent detail) {
        korytnacka.setPosition(x, y);
    }

    @Override
    protected void onMouseMoved(int x, int y, MouseEvent detail) {
        double startX = korytnacka.getX();
        double startY = korytnacka.getY();

        if(detail.isAltDown()){
            korytnacka.turnTowards(x, y);
            korytnacka.moveTo(x, y);
            korytnacka.setPosition(startX, startY);
        }


    }
    @Override
    protected void onMouseDragged(int x, int y, MouseEvent detail) {
        if(laveDole){
            korytnacka.moveTo(x, y);
        }

    }
    @Override
    protected void onMousePressed(int x, int y, MouseEvent detail) {
        // TODO Auto-generated method stub
        if (detail.getButton() == MouseEvent.BUTTON1){
            laveDole = true;
        }
    }

    @Override
    protected void onMouseReleased(int x, int y, MouseEvent detail) {
        // TODO Auto-generated method stub
        if (detail.getButton() == MouseEvent.BUTTON1){
            laveDole = false;
        }
    }



}


import java.awt.Color;
import java.awt.event.MouseEvent;

import sk.upjs.jpaz2.*;

public class Korytnackovo extends WinPane {

    Turtle[] korytnacky;

    public Korytnackovo() {
        korytnacky = new Turtle[10];
        for (int i = 0; i < 10; i++) {
            this.korytnacky[i] = new Turtle();
            this.korytnacky[i].setPosition(Math.random() * this.getWidth(),
                    Math.random() * this.getHeight());
            // this.korytnacky[i].setPosition(i*20,150);
            this.add(this.korytnacky[i]);

        }

    }

    public void posunITu(int idx, double dlzka) {
        korytnacky[idx].step(dlzka);

    }

    public void nahodneFarby() {

        for (int i = 0; i < korytnacky.length; i++) {
            korytnacky[i].setPenColor(new Color((int) (Math.random() * 256),
                    (int) (Math.random() * 256), (int) (Math.random() * 256)));

        }
    }

    public Color sFarbouVon(int index) {

        return korytnacky[index].getPenColor();
    }

    @Override
    protected void onMouseClicked(int x, int y, MouseEvent detail) {
        korytnacky[(int) (Math.random() * korytnacky.length)].moveTo(x, y);

    }

    public void krok() {
        Turtle ita;
        Turtle iplus1;
        for (int i = 0; i < 10; i++) {
            ita = korytnacky[i];
            iplus1 = korytnacky[(i + 1) % 10];

            ita.turnTowards(iplus1.getPosition());
            ita.step((ita.distanceTo(iplus1.getPosition())) / 10.0);

            // alebo
            // korytnacky[i].turnTowards(korytnacky[(i + 1) %
            // 10].getPosition());
            // korytnacky[i].step(korytnacky[i].distanceTo(korytnacky[(i + 1) %
            // 10].getPosition()) / 10);

        }

    }

    public void kroky(int pocetKrokov) {
        for (int i = 0; i < pocetKrokov; i++) {
            krok();
            JPAZUtilities.delay(100);

        }
    }

    public void doKruhu(double polomer) {
        for (int i = 0; i < korytnacky.length; i++) {
            korytnacky[i].center();
            korytnacky[i].setDirection(i * 36);
            korytnacky[i].penUp();
            korytnacky[i].step(polomer);
            korytnacky[i].penDown();

        }
    }
    public int pocetTopKorytnaciek(double zhora){
        int vysledok=0;
        for (int i=0; i<10; i++){
            if(korytnacky[i].getY()<zhora){
                vysledok++;
            }
        }
    return vysledok;
    }
}