namespace  { using System; using System.Collections.ObjectModel; internal class  : IComparable { internal int ; internal int ; internal . ; internal . ; private . ; internal double ; private double ; private . (int X, int Y) { int num = this. - this..; int num2 = this. - this..; int num3 = this.. - this..; int num4 = this.. - this..; double num5 = Math.Abs((int) ((num * num4) - (num3 * num2))) * 0.005; return new .(X, Y, this. + num5, this, this., this.); } internal Collection<.> ( Pathfinder) { Collection<.> collection = new Collection<.>(); if (Pathfinder.–(this., this., this. - 1, this.)) { collection.Add(this.(this. - 1, this.)); } if (Pathfinder.–(this., this., this. + 1, this.)) { collection.Add(this.(this. + 1, this.)); } if (Pathfinder.–(this., this., this., this. + 1)) { collection.Add(this.(this., this. + 1)); } if (Pathfinder.–(this., this., this., this. - 1)) { collection.Add(this.(this., this. - 1)); } if (Pathfinder.–(this., this., this. - 1, this. + 1)) { collection.Add(this.(this. - 1, this. + 1)); } if (Pathfinder.–(this., this., this. - 1, this. - 1)) { collection.Add(this.(this. - 1, this. - 1)); } if (Pathfinder.–(this., this., this., this. + 1)) { collection.Add(this.(this., this. + 1)); } if (Pathfinder.–(this., this., this., this. - 1)) { collection.Add(this.(this., this. - 1)); } if (Pathfinder.–(this., this., this. + 1, this. + 1)) { collection.Add(this.(this. + 1, this. + 1)); } if (Pathfinder.–(this., this., this. + 1, this. - 1)) { collection.Add(this.(this. + 1, this. - 1)); } return collection; } public (int X, int Y, double Cost, . Parent, . Goal, . Start) { this. = Parent; this. = Start; this. = Goal; this. = X; this. = Y; this. = Cost; } int IComparable.CompareTo(object obj) { return -this.().CompareTo(((.) obj).()); } internal double goalEstimate { get { if (this. == null) { return 0.0; } int num = 2 * this.; int num2 = ((2 * this.) + (this. % 2)) - this.; int num3 = ((-2 * this.) - (this. % 2)) - this.; int num4 = 2 * this..; int num5 = ((2 * this..) + (this.. % 2)) - this..; int num6 = ((-2 * this..) - (this.. % 2)) - this..; return Math.Max(Math.Abs((int) (num - num4)), Math.Max(Math.Abs((int) (num2 - num5)), Math.Abs((int) (num3 - num6)))); } set { this. = value; } } internal double totalCost { get { return (this. + this.()); } } } }