亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? cfind.cs

?? 一個用java設計的推箱子的程序。很不錯的。呵呵
?? CS
字號:
using System;
using System.Collections.Generic;
using System.Text;

namespace PushBox
{
    public class ObjectPoint
    {
        public int X;
        public int Y;
        public ObjectPoint()
        {
            X = 0;
            Y = 0;
        }
        public ObjectPoint(int x, int y)
        {
            X = x;
            Y = y;
        }
    }
    public class Node
    {
        private double g = 0;//父點到當前點的耗費
        private double h = 0;//當前點到終點的耗費
        private int x = 0;  //坐標
        private int y = 0;
        public double F //總耗費
        {
            get
            {
                return g + h;
            }
        }
        public double G
        {
            get
            {
                return g;
            }
            set
            {
                g = value;
            }
        }
        public double H
        {
            get
            {
                return h;
            }
            set
            {
                h = value;
            }
        }
        public int X
        {
            get
            {
                return x;
            }
            set
            {
                x = value;
            }
        }
        public int Y
        {
            get
            {
                return y;
            }
            set
            {
                y = value;
            }
        }
        private bool canMove = true;
        public bool CanMove
        {
            get
            {
                return canMove;
            }
            set
            {
                canMove = value;
            }
        }
        protected Node parentNode = null;
        public Node ParentNode
        {
            get
            {
                return parentNode;
            }
            set
            {
                parentNode = value;
            }
        }
    }
    public class Finder
    {
        private System.Collections.ArrayList openLine = new System.Collections.ArrayList();
        private System.Collections.ArrayList closeLine = new System.Collections.ArrayList();
        private Node[] fn;
        private ObjectPoint startOP = null;
        private ObjectPoint endOP = null;
        public Finder(Node[] afn)
        {
            fn = afn;
        }
        //設置所有節點的H值;
        private void SetH()
        {
            for (int i = 0; i < fn.Length; i++)
            {
                fn[i].H = Math.Abs(endOP.X - fn[i].X) + Math.Abs(endOP.Y - fn[i].Y);
            }
        }
        public Node GetNode(int ax, int ay)
        {
            for (int i = 0; i < fn.Length; i++)
            {
                if ((fn[i].X == ax) && (fn[i].Y == ay))
                {
                    return fn[i];
                }
            }
            return null;
        }
        public bool CanFind()
        {
            Node bn = GetNode(this.endOP.X, endOP.Y);
            if (bn == null) return false;
            for (int i = 0; i < openLine.Count; i++)
            {
                if (bn == openLine[i]) return true;
            }
            return false;
        }
        protected bool IsInOpenLine(Node afn)
        {
            for (int i = 0; i < this.openLine.Count; i++)
            {
                if (afn == openLine[i]) return true;
            }

            return false;
        }
        protected bool IsInCloseLine(Node afn)
        {
            for (int i = 0; i < this.closeLine.Count; i++)
            {
                if (afn == closeLine[i]) return true;
            }
            return false;
        }
        protected void AddToOpenLine(Node afn)
        {
            if (!afn.CanMove) return;  //如果不能移動的就不加了。
            for (int i = 0; i < this.openLine.Count; i++)
            {
                if (afn == openLine[i]) return;
            }
            for (int i = 0; i < this.closeLine.Count; i++)
            {
                if (afn == closeLine[i]) return;
            }
            //排序
            for (int i = 0; i < this.openLine.Count; i++)
            {
                if (afn.F <= ((Node)openLine[i]).F)
                {
                    openLine.Insert(i, afn);
                    return;
                }
            }
            openLine.Add(afn);
        }
        protected void AddToCloseLine(Node afn)
        {
            for (int i = 0; i < this.closeLine.Count; i++)
            {
                if (afn == closeLine[i]) return;
            }
            closeLine.Add(afn);
        }
        //找出并設置相領的節點.
        protected void FindNearNode(Node afn)
        {
            int mx, my;
            mx = afn.X;
            my = afn.Y;
            FindNearNodeXY(afn, mx - 1, my);
            FindNearNodeXY(afn, mx + 1, my);
            FindNearNodeXY(afn, mx, my - 1);
            FindNearNodeXY(afn, mx, my + 1);
            this.openLine.Remove(afn);
            this.AddToCloseLine(afn);
        }
        protected void FindNearNodeXY(Node afn, int ax, int ay)
        {
            Node newNode = null;
            newNode = GetNode(ax, ay);
            if (newNode != null)
            {
                if (!newNode.CanMove)
                {
                    AddToCloseLine(newNode);
                    return;
                }
                if ((!IsInOpenLine(newNode)) && (!IsInCloseLine(newNode)))
                {
                    newNode.ParentNode = afn;
                    newNode.G = afn.G + 10;
                    AddToOpenLine(newNode);
                }
                else
                {
                    if ((!IsInCloseLine(newNode)) && (newNode.F > afn.F + 10))
                    {
                        newNode.ParentNode = afn;
                        newNode.G = afn.G;
                    }
                }
            }
        }
        public string Find(ObjectPoint aStartOP, ObjectPoint aEndOP)
        {
            this.startOP = new ObjectPoint(aStartOP.X, aStartOP.Y);
            this.endOP = new ObjectPoint(aEndOP.X, aEndOP.Y);

            Node SP = GetNode(startOP.X, startOP.Y);

            SP.G = 0;

            this.SetH();
            AddToOpenLine(GetNode(startOP.X, startOP.Y));
            while ((!CanFind()) && openLine.Count > 0)
            {
                this.FindNearNode((Node)(openLine[0]));
            }
            //找出了以后
            Node EP = GetNode(endOP.X, endOP.Y);
            string str = "";
            if (EP.ParentNode == null) return "false";
            while (EP.ParentNode != SP)
            {
                str = (EP.ParentNode.Y * 15 + EP.ParentNode.X).ToString() + "F" + str;
                EP = EP.ParentNode;
            }
            str += (endOP.Y * 15 + endOP.X).ToString() + "F";
            return str;
        }
    }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91网站最新地址| 国产一区二区剧情av在线| 国产精品美女久久久久久久久久久| 欧美一区二区在线观看| 欧美天堂亚洲电影院在线播放| 91美女片黄在线观看| 在线免费一区三区| 欧美日韩不卡一区| 精品少妇一区二区三区| 日韩久久久精品| 久久九九国产精品| 日韩一区在线看| 亚洲综合激情网| 免费观看在线色综合| 激情五月激情综合网| 国产宾馆实践打屁股91| 99国产精品视频免费观看| 97久久超碰国产精品| 欧美日韩一区二区三区高清 | 韩日av一区二区| 粉嫩av一区二区三区| 色婷婷综合激情| 日韩亚洲欧美成人一区| 国产拍欧美日韩视频二区| 亚洲三级免费观看| 日本女人一区二区三区| 懂色av一区二区三区免费看| 91麻豆国产自产在线观看| 欧美久久一区二区| 欧美激情在线一区二区三区| 综合在线观看色| 免费欧美高清视频| 91免费在线播放| 日韩精品自拍偷拍| 亚洲一区在线电影| 成人午夜av在线| 久久久天堂av| 91丝袜美女网| 欧洲精品一区二区| 精品福利av导航| 一区二区三区四区在线| 国产精一区二区三区| 欧美天天综合网| 中文字幕亚洲在| 黑人巨大精品欧美黑白配亚洲| 91福利精品视频| 国产清纯美女被跳蛋高潮一区二区久久w| 亚洲欧美二区三区| 国产激情一区二区三区| 4438x成人网最大色成网站| 中文字幕一区二区三区在线不卡| 蜜臀久久99精品久久久久久9| 日本大香伊一区二区三区| 国产色爱av资源综合区| 蜜臀91精品一区二区三区| 欧美亚洲一区二区在线| 最好看的中文字幕久久| 成人h动漫精品| 亚洲精品一区二区三区福利| 日日摸夜夜添夜夜添精品视频| 91国产成人在线| 亚洲乱码国产乱码精品精小说| 国产一区二区三区在线观看免费视频| 欧美日韩精品一区二区三区| 亚洲免费观看高清完整版在线| 国产盗摄女厕一区二区三区| 久久综合久久鬼色中文字| 另类小说图片综合网| 91精品黄色片免费大全| 日韩综合一区二区| 56国语精品自产拍在线观看| 亚洲一区二区精品视频| 欧美亚洲禁片免费| 香蕉久久夜色精品国产使用方法| 在线免费亚洲电影| 午夜精品福利在线| 日韩一区二区三区四区| 免费欧美在线视频| 欧美精品一区在线观看| 精品一二三四区| 国产三级精品三级在线专区| 国产精品91一区二区| 中文一区在线播放| 91丝袜呻吟高潮美腿白嫩在线观看| 自拍偷在线精品自拍偷无码专区| voyeur盗摄精品| 亚洲伦理在线精品| 91精品国产乱| 国产乱码精品一品二品| 国产精品私人影院| 色哟哟一区二区在线观看 | 日韩午夜激情视频| 精品在线播放免费| 国产精品夫妻自拍| 在线一区二区三区| 美女一区二区三区| 中文一区在线播放| 欧美日韩精品一二三区| 国产一区视频网站| 成人免费小视频| 欧美揉bbbbb揉bbbbb| 国产在线不卡一区| 一区二区三区在线不卡| 日韩欧美中文字幕制服| 豆国产96在线|亚洲| 亚洲444eee在线观看| 亚洲精品一区二区三区在线观看| 成人黄色小视频| 日韩国产欧美视频| 中文字幕在线不卡视频| 欧美麻豆精品久久久久久| 国产成人精品午夜视频免费| 亚洲在线一区二区三区| 久久精品男人天堂av| 欧美午夜理伦三级在线观看| 国产一区视频在线看| 午夜视频一区在线观看| 国产精品视频一二| 日韩视频免费直播| 91久久一区二区| 国产凹凸在线观看一区二区| 天堂久久一区二区三区| 国产精品午夜在线| 欧美大片一区二区三区| 在线视频欧美精品| 成人高清免费在线播放| 日韩福利视频网| 亚洲在线观看免费| 亚洲国产成人一区二区三区| 91麻豆精品国产91久久久使用方法| youjizz国产精品| 国内精品国产三级国产a久久| 亚洲综合丁香婷婷六月香| 国产欧美日产一区| 久久久久久9999| 欧美成人a∨高清免费观看| 在线一区二区三区四区五区| 成人av免费观看| 国产大陆精品国产| 国产91在线看| 国产精品一区一区三区| 久久精品av麻豆的观看方式| 亚洲444eee在线观看| 尤物av一区二区| 亚洲精品高清视频在线观看| 国产精品免费久久| 欧美国产精品v| 久久精品水蜜桃av综合天堂| 久久久久久久久免费| www国产精品av| 日韩精品影音先锋| 日韩精品一区二区三区视频在线观看| 欧美日韩国产免费| 欧美日韩大陆一区二区| 欧美丰满高潮xxxx喷水动漫| 欧美日韩一级二级三级| 欧美日本一道本| 欧美日韩免费一区二区三区视频| 欧美性大战久久久久久久蜜臀| 在线视频欧美区| 91精品国产综合久久精品性色| 欧美精品免费视频| 日韩久久久精品| 国产亚洲午夜高清国产拍精品| 国产人久久人人人人爽| 国产欧美日韩视频一区二区| 国产精品久久久久四虎| 亚洲欧美日韩中文字幕一区二区三区 | 亚洲国产毛片aaaaa无费看| 一区二区三区 在线观看视频| 亚洲国产精品久久一线不卡| 亚洲国产精品一区二区久久恐怖片 | 午夜精品久久久久久久99水蜜桃 | 中文字幕不卡一区| 亚洲线精品一区二区三区八戒| 亚洲国产一二三| 久久99热这里只有精品| 国产精品538一区二区在线| 不卡区在线中文字幕| 欧美在线|欧美| 久久综合久久综合九色| 亚洲人吸女人奶水| 日韩和欧美一区二区| 国产福利视频一区二区三区| 色婷婷亚洲精品| 久久伊99综合婷婷久久伊| 亚洲欧美综合色| 蜜桃视频一区二区| 成人精品一区二区三区中文字幕| 欧美综合一区二区| 26uuu久久天堂性欧美| 亚洲免费观看在线视频| 韩国视频一区二区| 色偷偷一区二区三区| 日韩精品一区二区三区中文不卡| 综合精品久久久| 国产综合色精品一区二区三区| 日本韩国一区二区三区视频| 久久亚洲精精品中文字幕早川悠里 | 大胆欧美人体老妇|