public PointToPointPathFinder(Map map, Point start)
            : base(map, new BoxState(new Point[] { start }))
        {
            var p1 = new MapCheckPolicy(this.map);
            var p2 = new DuplicationsDetectPolicy(this.queue);

            this.checker.AddPolicy(p1);
            this.checker.AddPolicy(p2);
        }
        public KakuBoxMovingFinder(Map map, KakuBoxState start)
            : base(map, start)
        {
            var p1 = new MapCheckPolicy(this.map);
            var p2 = new OverlappingCheckPolicy();
            var p4 = new KakuMovingDuplicationsDetectPolicy(this.map, this.queue);
            var p3 = new KakuMovingCheckPolicy(this.map);


            this.checker.AddPolicy(p1);
            this.checker.AddPolicy(p2);
            this.checker.AddPolicy(p3);
            this.checker.AddPolicy(p4);
        }