Príloha 10 – prvé verzie tried Prievozník, Pasažier a HlavnáTrieda

Prevziať

Prievozník

public class Prievozník extends AnimovanýObjekt
{
    private final static int rozptylBrehov = 90;
    private final static int posunGrafikyX = -30;
    private final static int posunGrafikyY = 10;
    private final static int posunPopisuX = -30;
    private final static int posunPopisuY = 115;
 
    public Prievozník()
    {
        super("prievozník", posunGrafikyX, posunGrafikyY,
            posunPopisuX, posunPopisuY);
 
        domov(50, -25, 0);    // domovská pozícia [x, y] a domovský uhol
        zrýchlenie(2, false);
        nastavĽavý(domaX() - rozptylBrehov, domaY());
        nastavPravý(domaX() + rozptylBrehov, domaY());
 
        prievozník(this);
    }
 
    public void prejdiRieku()
    {
        if (pravýBreh())
            choďNaĽavý();
        else
            choďNaPravý();
    }
}

Pasažier

public class Pasažier extends AnimovanýObjekt
{
    public Pasažier(String meno, double posunX, double posunY,
        double posunPopisuX, double posunPopisuY,
        double pozíciaNaBrehuX, double pozíciaNaBrehuY)
    {
        super(meno, posunX, posunY, posunPopisuX, posunPopisuY);
        umožniAnimáciuChôdze();
        pozíciaNaBrehu(pozíciaNaBrehuX, pozíciaNaBrehuY);
    }
 
    public void pozíciaNaBrehu(double x, double y)
    {
        nastavĽavý(-x, y);
        nastavPravý(x, y);
    }
 
    public void choď()
    {
        switch (pozícia())
        {
            case pravýBreh:
                if (prievozník().pravýBreh())
                    choďNaPrievozníka();
                break;
 
            case ľavýBreh:
                if (prievozník().ľavýBreh())
                    choďNaPrievozníka();
                break;
 
            case prievozník:
                if (prievozník().ľavýBreh())
                    choďNaĽavý();
                else
                    choďNaPravý();
                break;
        }
    }
}

HlavnáTrieda

public class HlavnáTrieda extends GRobot
{
    private final Prievozník prievozník = new Prievozník();
    private final Pasažier vlk = new Pasažier("vlk", 0, 0, 0, 65, 200, 10);
    private final Pasažier koza = new Pasažier("koza", 0, -10, -5, 50, 280, 10);
    private final Pasažier kapusta = new Pasažier("kapusta", 0, -25, 0, 25, 360, 10);
 
    private HlavnáTrieda()
    {
        super(800, 300, "Prievozník…");
        svet.zbaľ();
 
        prievozník.choďNaPravý();
        vlk.choďNaPravý();
        koza.choďNaPravý();
        kapusta.choďNaPravý();
    }
 
    public static void main(String[] args)
    {
        new HlavnáTrieda();
    }
}