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); }
//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 }
//Medódusok bool KorFigyeles(AbsztraktAllapot ujAllapot) { Csucs cs = this; while (cs != null) { if (cs.allapot.Equals(ujAllapot)) { return(true); } cs = cs.szulo; } return(false); }