Example #1
0
        /// <summary>
        ///小车移动函数,小车的横纵坐标每改变一次,窗体就执行重绘函数,就实现了小车的移动
        /// </summary>
        /// <param name="Elc"></param>
        public int SearchRoute(ElecMap Elc, int startX, int startY, int endX, int endY)//04022
        {
            AstarSearch astartSearch = new AstarSearch();

            Elc.mapnode[startX, startY].nodeCanUsed     = true; //小车自己所在的地方解除占用
            Elc.TempMapNode[startX, startY].nodeCanUsed = true; //小车自己所在的地方解除占用
            this.route = astartSearch.search(Elc, Elc.Width, Elc.Height, startX, startY, endX, endY);
            routeIndex = 0;
            if (this.route == null)
            {
                this.vehical_state = v_state.cannotToDestination;
            }
            for (int ii = 0; ii < this.route.Count; ii++)
            {
                this.cost = this.cost + 1;


                // Elc.mapnode[(int)this.route[ii].X, (int)this.route[ii].Y].vehiclePriority = new List<int>();
                // Elc.mapnode[(int)this.route[ii].Height, (int)this.route[ii].Width].vehiclePriority.Add(this.v_num);
            }
            //解除节点的占用
            for (int p = 0; p < Elc.heightNum; p++)
            {
                for (int q = 0; q < Elc.widthNum; q++)
                {
                    Elc.mapnode[p, q].nodeCanUsed     = true;
                    Elc.TempMapNode[p, q].nodeCanUsed = true;//小车自己所在的地方解除占用
                }
            }
            return(this.route.Count);
        }
Example #2
0
 /// <summary>
 /// 构造函数,初始化所有变量
 /// </summary>
 /// <param name="speed">速度</param>
 /// <param name="electricity">电量</param>
 /// <param name="acceleration">加速度</param>
 /// <param name="maxspeed">最大速度</param>
 public Vehicle(int x, int y, int speed, int electricity, int acceleration, int maxspeed)
 {
     this.startX        = x;
     this.startY        = y;
     this.X             = x;
     this.Y             = y;
     this.Speed         = speed;
     this.Electricity   = electricity;
     this.Acceleration  = acceleration;
     this.MaxSpeed      = maxspeed;
     this.vehical_state = v_state.normal;
 }