public bool kitölt(int szam) { // a kapott számot beírjuk a következő üres cellába if (!preKitolt(szam)) { return(false); } BuvosKeresztAllapot ujAllapot = new BuvosKeresztAllapot(); for (int i = 0; i < 4; i++) { for (int j = 0; j < 4; j++) { if (tabla[i, j] == 0) { this.x = i; this.y = j; this.tabla[x, y] = szam; ujAllapot.tabla = (int[, ]) this.tabla.Clone(); //Console.WriteLine(next.ToString()); return(ÁllapotE()); } } } return(false); }
static void Main(string[] args) { Csúcs startCsúcs; GráfKereső kereső; AbsztraktÁllapot k = new BuvosKeresztAllapot(); startCsúcs = new Csúcs(k); Console.WriteLine("A kereső egy 20 mélységi korlátos és emlékezetes backtrack."); kereső = new BackTrack(startCsúcs, 20, true); kereső.megoldásKiírása(kereső.Keresés()); Console.ReadLine(); }
public override object Clone() { BuvosKeresztAllapot myClone = new BuvosKeresztAllapot(); myClone.x = this.x; myClone.y = this.y; for (int i = 0; i < 4; i++) { for (int j = 0; j < 4; j++) { myClone.tabla[i, j] = this.tabla[i, j]; } } return(myClone); }
public override bool Equals(object a) { BuvosKeresztAllapot masik = (BuvosKeresztAllapot)a; bool tablakEgyenlok = true; for (int i = 0; i < 4; i++) { for (int j = 0; j < 4; j++) { if (this.tabla[i, j] != masik.tabla[i, j]) { tablakEgyenlok = false; } } } return(this.x == masik.x && this.y == masik.y && tablakEgyenlok); }