Example #1
0
    public Csucs KovetkezoGyermek()
    {
        AbsztraktAllapot kovAllapot = null;

        while (kovAllapot == null || KorFigyeles(kovAllapot))
        {
            if (legutobbiOp == allapot.OperatorokSzama())
            {
                break;
            }
            kovAllapot = allapot.SzuperOperator(this.legutobbiOp);
            legutobbiOp++;
        }
        if (kovAllapot == null)
        {
            return(null);
        }

        Csucs gyermek = new Csucs(kovAllapot);

        gyermek.allapot     = kovAllapot;
        gyermek.melyseg     = this.melyseg + 1;
        gyermek.szulo       = this;
        gyermek.legutobbiOp = 0;
        return(gyermek);
    }
Example #2
0
    //Konstruktor

    public Csucs(AbsztraktAllapot k)
    {
        this.allapot     = k;
        this.melyseg     = 0;
        this.szulo       = null;
        this.legutobbiOp = 0; // hívás után kell növelni
    }
Example #3
0
    //Medódusok
    bool KorFigyeles(AbsztraktAllapot ujAllapot)
    {
        Csucs cs = this;

        while (cs != null)
        {
            if (cs.allapot.Equals(ujAllapot))
            {
                return(true);
            }
            cs = cs.szulo;
        }
        return(false);
    }