Ejemplo n.º 1
0
 public ArrayLayout(Node node, space space, Address ptr, ReadOnlyCollection<Reg> dims)
 {
     Node = node;
     Space = space;
     Ptr = ptr;
     Dims = dims;
 }
Ejemplo n.º 2
0
    private void move()
    {
        current_space.decay();
        current_space = next_space;

        next_space = null;
    }
Ejemplo n.º 3
0
    // Update is called once per frame
    void Update()
    {
        // handle input

        if (Input.GetKeyDown(KeyCode.W))
        {
            space_to_move_to = current_space.get_connection(3);
        }

        if (Input.GetKeyDown(KeyCode.D))
        {
            space_to_move_to = current_space.get_connection(0);
        }

        if (Input.GetKeyDown(KeyCode.S))
        {
            space_to_move_to = current_space.get_connection(1);
        }

        if (Input.GetKeyDown(KeyCode.A))
        {
            space_to_move_to = current_space.get_connection(2);
        }

        if (space_to_move_to != null)
        {
            move();
        }
    }
Ejemplo n.º 4
0
        public ActionResult detail(int id)
        {
            List <space>        pvm  = new List <space>();
            IEnumerable <space> prod = sp.GetMany(x => x.owner_id == id);

            foreach (var u in prod)
            {
                space G = new space

                {
                    id          = u.id,
                    name        = u.name,
                    description = u.description,
                    adress      = u.adress,
                    loulepar    = u.loulepar,
                    rentalPrice = u.rentalPrice,
                    pic         = u.pic,
                    owner_id    = u.owner_id,

                    user = us.GetById(id)
                };

                pvm.Add(G);
            }

            return(View(pvm));
        }
Ejemplo n.º 5
0
    private void move()
    {
        current_space.decay();
        current_space    = space_to_move_to;
        space_to_move_to = null;
        anim.set_clip(1);

        if (!current_space.space_connected_to_goal())
        {
            // reload scene
            hit_player();
        }


        am.play(sounds[sound_index]);
        sound_index = (sound_index + 1) % sounds.Length;
        // Unlock obstackle space if you found the key
        if (current_space.is_key)
        {
            am.play("hover");
            current_space.obstacle_space.remove_obstacle();
        }
        if (current_space.is_goal)
        {
            am.play("win");
        }
    }
Ejemplo n.º 6
0
 public ArrayLayout(Node node, space space, Address ptr, ReadOnlyCollection <Reg> dims)
 {
     Node  = node;
     Space = space;
     Ptr   = ptr;
     Dims  = dims;
 }
        public ActionResult Create(SpaceViewModel svm, HttpPostedFileBase upload)
        {
            string userid = this.Session["LogedUserid"].ToString();

            try
            {
                // TODO: Add insert logic here


                if (ModelState.IsValid)
                {
                    ShowroomdbContext ctx = new ShowroomdbContext();
                    space             s   = new space();
                    s.adress      = svm.Adress;
                    s.rentalPrice = svm.Prix;
                    s.description = svm.Description;
                    s.owner_id    = Int32.Parse(userid);
                    if (upload != null && upload.ContentLength > 0)
                    {
                        s.pic = Guid.NewGuid().ToString() + Path.GetFileName(upload.FileName);
                        upload.SaveAs(Path.Combine(Server.MapPath("~/Content/SpaceImages"), s.pic));
                    }
                    ctx.spaces.Add(s);
                    ctx.SaveChanges();
                    //service.Add(s);
                    //service.Commit();
                    return(RedirectToAction("Index"));
                }
                return(View());
            }
            catch
            {
                return(View());
            }
        }
Ejemplo n.º 8
0
 private void Clear_Click_1(object sender, EventArgs e)
 {
     for (int i = 0; i < 64; i++)
     {
         space drawSpace = ((space)coordinates[i]);
         drawSpace.setOccupied(false);
         totalQueens = 0;
     }
     Invalidate();
 }
        public ActionResult DeleteConfirm(int id, FormCollection collection)
        {
            ShowroomdbContext cnt = new ShowroomdbContext();
            space             s   = service.GetById(id);

            service.Delete(s);
            service.Commit();
            //cnt.spaces.Remove(s);
            //cnt.SaveChanges();
            return(RedirectToAction("Index"));
        }
        public ActionResult Edit(int id, SpaceViewModel svm)
        {
            space s = service.GetById(id);

            s.id          = svm.Id;
            s.adress      = svm.Adress;
            s.description = svm.Description;
            s.rentalPrice = svm.Prix;
            s.pic         = svm.Urlimage;
            service.Update(s);
            service.Commit();
            return(RedirectToAction("Index"));
        }
Ejemplo n.º 11
0
 private void Player_Load(object sender, EventArgs e)
 {
     for (int i = 0; i < 8; i++)
     {
         for (int j = 0; j < 8; j++)
         {
             int   y          = (40 * i + 100);
             int   x          = (40 * j + 100);
             space boardSpace = new space(x, y, i, j);
             coordinates.Add(boardSpace);
         }
     }
 }
        // GET: Space/Details/5
        public ActionResult Details(int id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            space space = service.GetById(id);

            if (space == null)
            {
                return(HttpNotFound());
            }
            return(View(space));
        }
        // GET: Exposure/Details/5
        public ActionResult Details(int id)
        {
            if (id == 0)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            IEnumerable <artwork>          ListArtworkById = serviceA.ArtworkByIdArtwork(id);
            List <ArtworkForExposureModel> ArtById         = new List <ArtworkForExposureModel>();

            ShowroomdbContext ctx = new ShowroomdbContext();


            //user Artist = ServiceU.GetById(u.fk_artist.Value);
            //ExpositionArtwork ExpositionArtwork = ServicExpositionArtwork.GetOneExpoByIdExpo(id);
            //space space = ServiceS.GetById(ExpositionArtwork.fk_space);
            //exposure exposure = service.GetById(id);
            //int? FkOwner = space.fk_owner;
            //user Owner = ServiceU.GetById(FkOwner.Value);

            if (ListArtworkById == null)
            {
                return(HttpNotFound());
            }

            foreach (var x in ListArtworkById)
            {
                ArtworkForExposureModel ar = new ArtworkForExposureModel();

                user Artist = ServiceU.GetById((int)x.artist_id);
                ExpositionArtwork ExpositionArtwork = ServicExpositionArtwork.GetOneExpoByIdExpo(id);
                space             space             = ServiceS.GetById(ExpositionArtwork.fk_space);
                exposure          exposure          = service.GetById(id);
                int? FkOwner = space.owner_id;
                user Owner   = ServiceU.GetById(FkOwner.Value);
                ar.id           = x.id;
                ar.name         = x.name;
                ar.photo        = x.phot;
                ar.ArtistName   = Artist.firstName + Artist.lastName;
                ar.StartDate    = exposure.SDate.Value;
                ar.EndDate      = exposure.EDate.Value;
                ar.SpaceName    = space.name;
                ar.SpaceAddress = space.adress;
                ar.OwnerName    = Owner.firstName + Owner.lastName;
                ar.Priority     = ServicExpositionArtwork.GetByIdArtworkAndIdExposure(id, x.id);
                ArtById.Add(ar);
            }


            return(View(ArtById.OrderBy(a => a.Priority).ToList()));
        }
Ejemplo n.º 14
0
        public ActionResult louer(int id)
        {
            space prod = sp.GetById(id);
            space a    = new space
            {
                id          = prod.id,
                name        = prod.name,
                description = prod.description,
                adress      = prod.description,
                rentalPrice = prod.rentalPrice,
                pic         = prod.pic,
                user        = us.GetById((int)prod.owner_id)
            };

            return(View(prod));
        }
Ejemplo n.º 15
0
    void find_desired_move()
    {
        space[]      avail = current_space.get_connections();
        List <space> valid = new List <space>();

        foreach (space s in avail)
        {
            if (s != null && !s.broken && !s.is_obstacle)
            {
                valid.Add(s);
            }
        }
        if (valid.Count > 0)
        {
            next_space = valid[(int)Random.Range(0, valid.Count)];
            move();
        }
    }
Ejemplo n.º 16
0
    // Returns true if the player can still reach the goal, false otherwise
    // breadth first search
    public bool space_connected_to_goal()
    {
        Queue <space> queue      = new Queue <space>();
        List <space>  visited    = new List <space>();
        bool          key_found  = false;
        bool          goal_found = false;

        queue.Enqueue(this);

        while (queue.Count > 0)
        {
            space s = queue.Dequeue();

            if (s.is_goal)
            {
                goal_found = true;
            }
            if (s.is_key)
            {
                key_found = true;
            }

            if ((Game_manager.key_exists && key_found && goal_found) || (!Game_manager.key_exists && goal_found))
            {
                return(true);
            }

            visited.Add(s);
            for (int i = 0; i < s.connections.Length; i++)
            {
                // check that it is not null, that it hasn't been visited and that it can be travelled accross
                if (s.connections[i] != null && !visited.Contains(s.connections[i]) && s.connections[i].broken == false)
                {
                    queue.Enqueue(s.connections[i]);
                }
            }
        }
        return(false);
    }
Ejemplo n.º 17
0
 private void Form1_MouseClick(object sender, MouseEventArgs e)
 {
     if (e.Button == MouseButtons.Left)
     {
         for (int i = 0; i < 64; i++)
         {
             space drawSpace = ((space)coordinates[i]);
             if (drawSpace.isClicked(e.X, e.Y))
             {
                 if (drawSpace.isValid(coordinates))
                 {
                     drawSpace.setOccupied(true);
                     totalQueens++;
                 }
                 else
                 {
                     System.Media.SystemSounds.Beep.Play();
                 }
             }
         }
     }
     if (e.Button == MouseButtons.Right)
     {
         for (int i = 0; i < 64; i++)
         {
             space drawSpace = ((space)coordinates[i]);
             if (drawSpace.isClicked(e.X, e.Y))
             {
                 if (drawSpace.isOccupied())
                 {
                     drawSpace.setOccupied(false);
                     totalQueens--;
                 }
             }
         }
     }
     Invalidate();
 }
        // GET: Space/Edit/5
        public ActionResult Edit(int id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            space          s   = service.GetById(id);
            SpaceViewModel svm = new SpaceViewModel();

            if (s == null)
            {
                return(HttpNotFound());
            }
            else
            {
                svm.Id          = s.id;
                svm.Prix        = (int)s.rentalPrice;
                svm.Adress      = s.adress;
                svm.Description = s.description;
                svm.Urlimage    = s.pic;
                return(View(svm));
            }
        }
Ejemplo n.º 19
0
        public ActionResult confirmlouer(int id, space s)
        {
            space prod = sp.GetById(id);

            if (prod != null)
            {
                rentspace r = new rentspace {
                    fk_artist = (int)Session["LogedUserid"],
                    fk_space  = prod.id,
                    rentDate  = (DateTime)s.rentdate,
                    price     = prod.rentalPrice
                };
                prod.disponibility = false;

                rs.Add(r);
                rs.Commit();

                sp.Update(prod);
                sp.Commit();
                return(RedirectToAction("Index", "Paypal", new { ids = id }));
            }

            return(View());
        }
Ejemplo n.º 20
0
        public static bool is_ptr(this Expression expr, space space)
        {
            if (!expr.is_ptr()) return false;
            if (space == 0) return true;

            var e_var = expr as Var;
            if (e_var != null) return (e_var.Space & ~space) == 0;

            var e_addr = expr as Address;
            if (e_addr != null)
            {
                var ok = true;

                var a_base = e_addr.Base as Var;
                if (a_base != null) ok &= ((a_base.Space & ~space) == 0);

                var o_base = e_addr.Offset.Base as Var;
                if (o_base != null) ok &= ((o_base.Space & ~space) == 0);

                return ok;
            }

            throw AssertionHelper.Fail();
        }
Ejemplo n.º 21
0
 cpSpatialIndexQuery(space.activeShapes, ref context, bb, new cpSpatialIndexQueryFunc(PointQuery), data);
Ejemplo n.º 22
0
        /// <summary>
        /// 获取电子围栏内所有摄像头信息
        /// </summary>
        public string GetElectricFenceCameraList(SafeworkcontrolEntity data)
        {
            string ComerId = string.Empty;

            try
            {
                //三维监控点位服务接口地址
                DataItemDetailBLL pdata   = new DataItemDetailBLL();
                var             ThreeDApi = pdata.GetItemValue("kbsThreeMonitoringPoints");
                space           sp        = new space();
                spacedata       sds       = new spacedata();
                List <spacegeo> geolist   = new List <spacegeo>();
                List <spacepnt> pntlist   = new List <spacepnt>();
                var             comList   = new KbscameramanageBLL().GetPageList("").Where(a => a.State == "在线" && a.CameraType == "枪机" && a.MonitoringArea != null).ToList();
                spacegeo        geo       = new spacegeo();
                geo.id = data.ID;
                if (data.Areacode != null)
                {//电子围栏坐标点
                    PositionsEntity alist = JsonConvert.DeserializeObject <PositionsEntity>(data.Areacode);
                    List <double>   dlist = new List <double>();
                    if (data.Areastate == 0)
                    {//矩形
                        geo.type     = 1;
                        geo.distance = 0;
                        //第一个点
                        dlist.Add(alist.positions[0].x);
                        dlist.Add(alist.positions[0].z);
                        //第二个点
                        dlist.Add(alist.positions[1].x);
                        dlist.Add(alist.positions[0].z);
                        //第三个点
                        dlist.Add(alist.positions[1].x);
                        dlist.Add(alist.positions[1].z);
                        //第四个点
                        dlist.Add(alist.positions[0].x);
                        dlist.Add(alist.positions[1].z);
                        //回到原点
                        dlist.Add(alist.positions[0].x);
                        dlist.Add(alist.positions[0].z);
                        geo.coor = dlist;
                        geolist.Add(geo);
                    }
                    else if (data.Areastate == 1)
                    {//圆形
                        geo.type = 0;
                        dlist.Add(alist.positions[0].x);
                        dlist.Add(alist.positions[0].z);
                        geo.distance = Convert.ToInt32(data.Radius);
                        geo.coor     = dlist;
                        geolist.Add(geo);
                    }
                    else if (data.Areastate == 2)
                    {//手绘多边形
                        foreach (var ac in alist.positions)
                        {
                            dlist.Add(ac.x);
                            dlist.Add(ac.z);
                        }
                        //闭合回到原点
                        dlist.Add(alist.positions[0].x);
                        dlist.Add(alist.positions[0].z);
                        geo.coor     = dlist;
                        geo.type     = 1;
                        geo.distance = 0;
                        geolist.Add(geo);
                    }

                    foreach (var com in comList)
                    {//摄像头坐标点集
                        PositionsEntity alist1 = JsonConvert.DeserializeObject <PositionsEntity>(com.MonitoringArea);
                        if (alist1.floorID == alist.floorID)
                        {
                            List <double> dlist1 = new List <double>();
                            foreach (var ac in alist1.positions)
                            {
                                dlist1.Add(ac.x);
                                dlist1.Add(ac.z);
                            }
                            //闭合回到原点
                            dlist1.Add(alist1.positions[0].x);
                            dlist1.Add(alist1.positions[0].z);
                            spacepnt pnt = new spacepnt()
                            {
                                id   = com.CameraId,
                                x    = 0,
                                y    = 0,
                                coor = dlist1
                            };
                            pntlist.Add(pnt);
                        }
                    }
                }
                sds.geo = geolist;
                sds.pnt = pntlist;
                sp.type = "2";
                sp.data = sds;
                string          rtn = HttpUtillibKbs.HttpThreeDPost(ThreeDApi, JsonConvert.SerializeObject(sp));
                List <RtnSpace> rss = JsonConvert.DeserializeObject <List <RtnSpace> >(rtn);
                foreach (var item in rss)
                {
                    if (string.IsNullOrEmpty(item.pntId))
                    {
                        continue;
                    }
                    ComerId += item.pntId + ',';
                }
                return(ComerId);
            }
            catch (Exception er)
            {
                return(ComerId);
            }
        }
Ejemplo n.º 23
0
	cpSpaceLock(space); {
Ejemplo n.º 24
0
        protected override void OnPaint(PaintEventArgs e)
        {
            base.OnPaint(e);
            Graphics g        = e.Graphics;
            Image    newimage = Image.FromFile("queen-icon.png");

            g.DrawString("Queen Count: " + totalQueens, Font, Brushes.Black, 140, 17);
            for (int i = 0; i < 64; i++)
            {
                space     drawSpace = ((space)coordinates[i]);
                Rectangle rect      = drawSpace.getRect();
                int       X         = drawSpace.getX();
                int       Y         = drawSpace.getY();
                if ((i / 8) % 2 == 0)
                {
                    if (i % 2 == 0)
                    {
                        if (!hints)
                        {
                            g.FillRectangle(Brushes.Black, rect);
                            g.DrawRectangle(Pens.Black, rect);
                            if (drawSpace.isOccupied())
                            {
                                g.DrawImage(newimage, new RectangleF(X, Y, 40, 40));
                            }
                        }
                        else
                        {
                            if (!drawSpace.isValid(coordinates))
                            {
                                g.FillRectangle(Brushes.Red, rect);
                                g.DrawRectangle(Pens.Black, rect);
                                if (drawSpace.isOccupied())
                                {
                                    g.DrawImage(newimage, new RectangleF(X, Y, 40, 40));
                                }
                            }
                            else
                            {
                                g.FillRectangle(Brushes.Black, rect);
                                g.DrawRectangle(Pens.Black, rect);
                                if (drawSpace.isOccupied())
                                {
                                    g.DrawImage(newimage, new RectangleF(X, Y, 40, 40));
                                }
                            }
                        }
                    }
                    else
                    {
                        if (!hints)
                        {
                            g.FillRectangle(Brushes.White, rect);
                            g.DrawRectangle(Pens.Black, rect);
                            if (drawSpace.isOccupied())
                            {
                                g.DrawImage(newimage, new RectangleF(X, Y, 40, 40));
                            }
                        }
                        else
                        {
                            if (!drawSpace.isValid(coordinates))
                            {
                                g.FillRectangle(Brushes.Red, rect);
                                g.DrawRectangle(Pens.Black, rect);
                                if (drawSpace.isOccupied())
                                {
                                    g.DrawImage(newimage, new RectangleF(X, Y, 40, 40));
                                }
                            }
                            else
                            {
                                g.FillRectangle(Brushes.White, rect);
                                g.DrawRectangle(Pens.Black, rect);
                                if (drawSpace.isOccupied())
                                {
                                    g.DrawImage(newimage, new RectangleF(X, Y, 40, 40));
                                }
                            }
                        }
                    }
                }
                else
                {
                    if (i % 2 == 1)
                    {
                        if (!hints)
                        {
                            g.FillRectangle(Brushes.Black, rect);
                            g.DrawRectangle(Pens.Black, rect);
                            if (drawSpace.isOccupied())
                            {
                                g.DrawImage(newimage, new RectangleF(X, Y, 40, 40));
                            }
                        }
                        else
                        {
                            if (!drawSpace.isValid(coordinates))
                            {
                                g.FillRectangle(Brushes.Red, rect);
                                g.DrawRectangle(Pens.Black, rect);
                                if (drawSpace.isOccupied())
                                {
                                    g.DrawImage(newimage, new RectangleF(X, Y, 40, 40));
                                }
                            }
                            else
                            {
                                g.FillRectangle(Brushes.Black, rect);
                                g.DrawRectangle(Pens.Black, rect);
                                if (drawSpace.isOccupied())
                                {
                                    g.DrawImage(newimage, new RectangleF(X, Y, 40, 40));
                                }
                            }
                        }
                    }
                    else
                    {
                        if (!hints)
                        {
                            g.FillRectangle(Brushes.White, rect);
                            g.DrawRectangle(Pens.Black, rect);
                            if (drawSpace.isOccupied())
                            {
                                g.DrawImage(newimage, new RectangleF(X, Y, 40, 40));
                            }
                        }
                        else
                        {
                            if (!drawSpace.isValid(coordinates))
                            {
                                g.FillRectangle(Brushes.Red, rect);
                                g.DrawRectangle(Pens.Black, rect);
                                if (drawSpace.isOccupied())
                                {
                                    g.DrawImage(newimage, new RectangleF(X, Y, 40, 40));
                                }
                            }
                            else
                            {
                                g.FillRectangle(Brushes.White, rect);
                                g.DrawRectangle(Pens.Black, rect);
                                if (drawSpace.isOccupied())
                                {
                                    g.DrawImage(newimage, new RectangleF(X, Y, 40, 40));
                                }
                            }
                        }
                    }
                }
            }
            if (totalQueens == 8)
            {
                for (int i = 0; i < 64; i++)
                {
                    space drawSpace = ((space)coordinates[i]);
                    drawSpace.setOccupied(false);
                    totalQueens = 0;
                }
                MessageBox.Show("Bạn đã thắng!");
            }
        }
Ejemplo n.º 25
0
        public String Process(String s_in)
        {
            // Initialize State to zero when we start
            State         st = State.zero;
            StringBuilder sb = new StringBuilder();

            for (int i = 0; i < s_in.Length; i++)
            {
                var   c  = s_in[i];
                space sp = space.none;
                switch (st)
                {
                case State.zero:
                    if (V1.Contains(c))
                    {
                        st = State.one;
                    }
                    else if (C1.Contains(c))
                    {
                        st = State.two;
                    }
                    else
                    {
                        throw new Exception("Invalid Input");
                    }
                    break;

                case State.one:
                    if (C1.Contains(c))
                    {
                        st = State.two;
                    }
                    else
                    {
                        throw new Exception("Invalid Input");
                    }
                    break;

                case State.two:
                    if (C2.Contains(c))
                    {
                        st = State.three;
                    }
                    else if (V2.Contains(c))
                    {
                        st = State.four;
                    }
                    else if (T.Contains(c))
                    {
                        st = State.five;
                    }
                    else if (V3.Contains(c))
                    {
                        st = State.six;
                    }
                    else if (C3.Contains(c))
                    {
                        sp = space.now;
                        st = State.zero;
                    }
                    else if (V1.Contains(c))
                    {
                        sp = space.before;
                        st = State.one;
                    }
                    else if (C1.Contains(c))
                    {
                        sp = space.before;
                        st = State.two;
                    }
                    else
                    {
                        throw new Exception("Invalid Input");
                    }
                    break;

                case State.three:
                    if (V2.Contains(c))
                    {
                        st = State.four;
                    }
                    else if (T.Contains(c))
                    {
                        st = State.five;
                    }
                    else if (V3.Contains(c))
                    {
                        st = State.six;
                    }
                    else if (C3.Contains(c))
                    {
                        sp = space.now;
                        st = State.zero;
                    }
                    else
                    {
                        throw new Exception("Invalid Input");
                    }
                    break;

                case State.four:
                    if (T.Contains(c))
                    {
                        st = State.five;
                    }
                    else if (V3.Contains(c))
                    {
                        st = State.six;
                    }
                    else if (C3.Contains(c))
                    {
                        sp = space.now;
                        st = State.zero;
                    }
                    else if (V1.Contains(c))
                    {
                        sp = space.before;
                        st = State.one;
                    }
                    else if (C1.Contains(c))
                    {
                        sp = space.before;
                        st = State.two;
                    }
                    else
                    {
                        throw new Exception("Invalid Input");
                    }
                    break;

                case State.five:
                    if (V3.Contains(c))
                    {
                        st = State.six;
                    }
                    else if (C3.Contains(c))
                    {
                        sp = space.now;
                        st = State.zero;
                    }
                    else if (V1.Contains(c))
                    {
                        sp = space.before;
                        st = State.one;
                    }
                    else if (C1.Contains(c))
                    {
                        sp = space.before;
                        st = State.two;
                    }
                    else
                    {
                        throw new Exception("Invalid Input");
                    }
                    break;

                case State.six:
                    if (C3.Contains(c))
                    {
                        // this will eliminate the need for a special state 7
                        sp = space.now;
                        st = State.zero;
                    }
                    else if (V1.Contains(c))
                    {
                        sp = space.before;
                        st = State.one;
                    }
                    else if (C1.Contains(c))
                    {
                        sp = space.before;
                        st = State.two;
                    }

                    else
                    {
                        throw new Exception("Invalid Input");
                    }
                    break;

                default:
                    throw new Exception("Invalid Input");
                }
                switch (sp)
                {
                case space.none:
                    sb.Append(c);
                    break;

                case space.before:
                    //When there is a character after the current character it will go to states 7 and 8 to trigger adding space
                    if (i < s_in.Length - 1)
                    {
                        sb.Append(" ");
                    }
                    sb.Append(c);
                    break;

                case space.now:
                    sb.Append(c);
                    if (i < s_in.Length - 1)
                    {
                        sb.Append(" ");
                    }
                    break;

                default:
                    break;
                }
            }
            return(sb.ToString());
        }
Ejemplo n.º 26
0
    void OnServerInitialized()
    {
        //---------------------------------------//
        //-----------------Prims-----------------//
        //---------------------------------------//

        //Everything in here is only done by the server.



        //Having some problems, this was to work-around some dumb error.
        space fakeSpace;

        fakeSpace.col               = 1000;
        fakeSpace.row               = 1000;
        fakeSpace.weight            = 1000000;
        fakeSpace.numAdjacentInPath = 0;
        fakeSpace.partOfPath        = false;

        //all spaces and possible starting Loc for algorithm.
        space[][]    allSpaces;
        List <space> possibleStarts = new List <space>(); // List containing all the nodes that can be started from.


        //create a randomly generated weighted graph.
        allSpaces = new space[mazeSize][];
        for (int i = 0; i < mazeSize; i++)
        {
            allSpaces[i] = new space[mazeSize];
            for (int j = 0; j < mazeSize; j++)
            {
                allSpaces[i][j].weight            = rng.Next() % 100;
                allSpaces[i][j].numAdjacentInPath = 0;
                allSpaces[i][j].partOfPath        = false;
                allSpaces[i][j].row = i;
                allSpaces[i][j].col = j;
            }
        }

        //Generation Loop.
        bool isGenerated = false;
        int  numRuns     = 0;
        int  curRow      = 0;
        int  curCol      = 0;

        List <space> avaliableMoves = new List <space>(); //list for possible moves THIS turn. (used later).

        //Kinda cheating I guess. First move is made automatically.
        //Add the starting move to the list of starting moves.
        possibleStarts.Add(allSpaces[0][0]);

        allSpaces[0][0].partOfPath = true;
        allSpaces[0][1].numAdjacentInPath++;
        allSpaces[1][0].numAdjacentInPath++;

        while (!isGenerated)
        {
            numRuns++;     //Debug

            //Debug.Log("running loop number " + numRuns );+
            //Debug.Log("++++++ running loop number " + numRuns + ", avaliable starts: " + possibleStarts.Count+" ++++++");


            //Choose a starting space.
            int choice = rng.Next() % possibleStarts.Count;
            curRow = possibleStarts[choice].row;
            curCol = possibleStarts[choice].col;


            //Debug.Log("starting at row "+ curRow + ", col "+ curCol);

            //Add all possible points to path.
            for (int i = 1; i < 5; i++)    // this for loop gets all nearby points.
            {
                int row = 0;
                int col = 0;

                //Sloppy I know.
                switch (i)
                {
                case 1: row = curRow; col = curCol + 1; break;

                case 2: row = curRow; col = curCol - 1; break;

                case 3: row = curRow + 1; col = curCol; break;

                case 4: row = curRow - 1; col = curCol; break;
                }

                if (row >= 0 && row < mazeSize && col >= 0 && col < mazeSize)                          //make sure its in bounds.
                {
                    if (allSpaces[row][col].numAdjacentInPath == 1 && !allSpaces[row][col].partOfPath) //This means it is near only one other used space! (which is what we want)
                    {
                        //Debug.Log("adding space at row" + row + ", col "+ col + "to possible moves.");
                        avaliableMoves.Add(allSpaces[row][col]);                 // adds the space onto a list of possible spaces
                    }
                }
            }    //All possible moves have been added.


            //dumb error work-around.
            space moveChoice = fakeSpace;

            //If there are moves avaliable...
            if (avaliableMoves.Count != 0)
            {
                //Debug.Log ("There are moves avaliable");
                //choose one by weight and make the move.
                for (int i = 0; i < avaliableMoves.Count; i++)        // count should be 1-3
                {
                    if (avaliableMoves[i].weight < moveChoice.weight)
                    {
                        moveChoice = avaliableMoves[i];
                    }
                }

                //Debug.Log("chose to move to space at row "+moveChoice.row + "and col "+moveChoice.col + ", added it to graph");
                //Move has been chosen. Add it to graph.
                possibleStarts.Add(moveChoice);


                for (int i = 1; i < 5; i++)        // this for loop gets all nearby points.
                {
                    int r = moveChoice.row;
                    int c = moveChoice.col;
                    allSpaces[r][c].partOfPath = true;             // move choice becomes part of graph

                    switch (i)
                    {
                    case 1: r++; break;

                    case 2: r--; break;

                    case 3: c++; break;

                    case 4: c--; break;
                    }

                    //Not going out of bounds...
                    if (c >= 0 && c < mazeSize && r >= 0 && r < mazeSize)
                    {
                        allSpaces[r][c].numAdjacentInPath++;                 // spaces near choice have numAdjacent incremented.
                    }
                }

                if ((avaliableMoves.Count - 1) == 0)
                {
                    //Debug.Log("after moving there were no more moves, removing row " + curRow +", col "+curCol +" from possible starts");
                    //that was our last move from this spot.
                    //Remove used space from starting list.
                    possibleStarts.RemoveAt(choice);
                }
            }
            else     // No moves?
            {
                //Debug.Log("no moves, removing space at row "+curRow + ",col " + curCol+ " from possible starts");
                //Remove used space from starting list.
                possibleStarts.RemoveAt(choice);
            }


            //If there are no more moves, end generation.
            if (possibleStarts.Count == 0)    //possibleStarts.Count == 0
            {
                //GGWP generation
                //Debug.Log("finished with " + numRuns + "runs!");
                isGenerated = true;         // ends loop.
            }

            avaliableMoves.Clear();
        }//End while. At this point, all spaces that are used have the "partofpath" bool set to true.



        foreach (space[] ss in allSpaces)
        {
            foreach (space s in ss)
            {
                if (s.partOfPath)
                {
                    WallScript ws = WallArray[s.row][s.col].GetComponent <WallScript>();
                    wallState[s.row][s.col] = 1; // keep track of state.
                    ws.SetHeight(1);             //Set wall down.
                }
                else
                {
                    WallScript ws = WallArray[s.row][s.col].GetComponent <WallScript>();
                    wallState[s.row][s.col] = 0; // keep track of state.
                    ws.SetHeight(0);             //Set wall down.
                }
            }
        }
    }
Ejemplo n.º 27
0
 protected bool is_ptr_or_null(Expression expr, space space)
 {
     return expr == null || expr.is_ptr(space);
 }
Ejemplo n.º 28
0
        //player 1= int 1
        //player 2=int 2
        private space GetBestMove(Board gb, int player)
        {
            //Console.WriteLine("i am player "+player);
            space bestSpace = null;

            //Dictionary<Board, int> AtateDic = new Dictionary<Board, int>();

            //List<space> openSpaces = getTuple(gb);
            for (int i = 0; i < gb._rows; i++)
            {
                for (int j = 0; j < gb._cols; j++)


                {
                    if (gb._board[i, j] == 'X')
                    {
                        //for (int i = 0; i < openSpaces.Count; i++)
                        //{
                        // System.Console.WriteLine(" iteration " + i);

                        Board newBoard = new Board(gb);

                        // Console.WriteLine("board for player "+ player);


                        space newSpace = new space(new Tuple <int, int>(i, j), 0);

                        newBoard.fillPlayerMove(newSpace.place.Item1, newSpace.place.Item2);
                        //newBoard.printTheBoard();


                        //  newBoard[newSpace.Item1, newSpace.Item2] = p;

                        if (hasWinner(newBoard, player) == 0)
                        {
                            space tempMove = GetBestMove(newBoard, changePlayers(player));  //a little hacky, inverts the current player
                            if (player == 1 && tempMove.rank == 1)
                            {
                                newSpace.rank = tempMove.rank;
                                return(newSpace);
                            }
                            if (player == 2 && tempMove.rank == -1)
                            {
                                newSpace.rank = tempMove.rank;
                                return(newSpace);
                            }
                            newSpace.rank = tempMove.rank;
                            //newSpace = tempMove;
                        }
                        else
                        {
                            // Console.WriteLine("reach to end");

                            /*
                             * if (player==1&& hasWinner(newBoard, player) == 1)
                             * {
                             *  newSpace.rank = 1;
                             *  return newSpace;
                             * }
                             */

                            int win = hasWinner(newBoard, player);
                            if (player == 1 && win == 2)
                            {
                                newSpace.rank = -1;
                            }

                            /*
                             * else if (player==2&& hasWinner(newBoard, player) == 2)
                             * {
                             *  newSpace.rank = -1;
                             *  return newSpace;
                             *
                             * }
                             */
                            else if (player == 2 && win == 1)
                            {
                                newSpace.rank = 1;
                            }
                        }

                        //If the new move is better than our previous move, take it
                        //1- maximum player
                        //2 -minimum player
                        if (bestSpace == null || (player == 1 && newSpace.rank > bestSpace.rank) || (player == 2 && newSpace.rank < bestSpace.rank))

                        {
                            bestSpace = newSpace;
                        }
                    }
                }
            }

            return(bestSpace);
        }
Ejemplo n.º 29
0
 protected bool is_ptr(Expression expr, space space)
 {
     return expr.is_ptr(space);
 }
Ejemplo n.º 30
0
        public Tuple <int, int> playYourTurn
        (
            Board board,
            TimeSpan timesup
        )
        {
            stopwatch = new Stopwatch();
            stopwatch.Start();



            //    while ((double)stopwatch.ElapsedMilliseconds < timesup.TotalMilliseconds - 10)
            //  {

            //}
            Tuple <int, int> toReturn = null;

            //if the board is square


            if (checkIfSquare(board))
            {
                toReturn = new Tuple <int, int>(1, 1);
                return(toReturn);
            }


            //check if it is a 2*something



            /*
             * if (checkIfReish(board))
             * {
             *  int numR = 0;
             *
             *  for (int x = 0; x < board._rows; x++)
             *  {
             *      if (board._board[x, 0] == 'X')
             *      {
             *          numR++;
             *      }
             *  }
             *  int numCul = 0;
             *
             *  for (int y = 0; y < board._rows; y++)
             *  {
             *      if (board._board[0, y] == 'X')
             *      {
             *          numCul++;
             *      }
             *  }
             *
             *
             *  if (numR > numCul)
             *  {
             *      toReturn = new Tuple<int, int>(numCul, 0);
             *      return toReturn;
             *
             *
             *  }
             *
             *  if (numCul > numR)
             *  {
             *      toReturn = new Tuple<int, int>(0, numR);
             *      return toReturn;
             *
             *
             *  }
             *
             * }
             */


            //end if the board is square
            resultDicPlayer1 = new Dictionary <char[, ], space>();
            resultDicPlayer2 = new Dictionary <char[, ], space>();


            /*
             * //Thread newThread = new Thread(Work.DoWork);
             * space res = null;
             * Thread newThread = new Thread(() => { res = getBestMove2(board, 1); });
             * newThread.Start();
             * newThread.Join((int)timesup.TotalMilliseconds - 5);
             * if (res!=null)
             * {
             *
             *  return res.place;
             * }
             */
            //Console.WriteLine(stopwatch.ElapsedMilliseconds.ToString());

            /*
             *
             * var result = default(space);
             * Action runTask = () => result = getBestMove2(board, 1);
             *
             * TimeSpan time = new TimeSpan(0, 0, 0, 0, (int)timesup.TotalMilliseconds - 5);
             * var task = Task.Factory.StartNew(runTask);
             * if (task.Wait(time))
             * {
             *  Console.WriteLine("1"+stopwatch.ElapsedMilliseconds.ToString());
             *  return result.place;
             *
             * }
             * Console.WriteLine("2" + stopwatch.ElapsedMilliseconds.ToString());
             *
             */

            //Console.WriteLine(stopwatch.ElapsedMilliseconds.ToString());

            /*
             *
             * var task = Task.Run(() => getBestMove2(board, 1));
             * if (task.Wait(TimeSpan.FromSeconds(timesup.TotalMilliseconds - 20)))
             *  return task.Result.place;
             * else
             * {
             */

            space res = getBestMove2(board, 1, timesup);

            // space res =GetBestMove(board, 1);

            if (res != null)
            {
                if (res.place.Item1 == 0 && res.place.Item2 == 0)
                {
                    return(chooseTheLast(board));
                }
                else
                {
                    return(res.place);
                }
            }

            return(chooseTheLast(board));
            //Console.WriteLine(stopwatch.ElapsedMilliseconds.ToString());

            /**/

            /*
             * int randomRow;
             * int randomCol;
             * Random random = new Random();
             * do
             * {
             *  randomRow = random.Next(0, board._rows);
             *  randomCol = random.Next(0, board._cols);
             * } while (board._board[randomRow, randomCol] != 'X' && check(board, randomRow, randomCol) == false); // == ' ');&& board.isTheGameEnded()
             * toReturn = new Tuple<int, int>(randomRow, randomCol);
             * //Random Algorithm - End
             * //  Console.WriteLine(stopwatch.ElapsedMilliseconds.ToString());
             * return toReturn;
             */
        }
Ejemplo n.º 31
0
 void Awake()
 {
     instance = this;
 }
Ejemplo n.º 32
0
        private space getBestMove2(Board gb, int player, TimeSpan timesup)
        {
            if (stopwatch.ElapsedMilliseconds > timesup.TotalMilliseconds - 5)
            {
                //Console.WriteLine(stopwatch.ElapsedMilliseconds);
                //Console.WriteLine(timesup.TotalMilliseconds-20);
                return(null);
            }

            space bestSpace = null;

            // Console.WriteLine("bllaaablaa");



            if (player == 1)
            {
                foreach (char[,] item in resultDicPlayer1.Keys)
                {
                    bool stop = false;
                    for (int i = 0; i < gb._rows && stop == false; i++)
                    {
                        for (int j = 0; j < gb._cols && stop == false; j++)
                        {
                            if (item[i, j].Equals(gb._board[i, j]) == false)
                            {
                                stop = true;
                            }
                        }
                    }

                    if (stop == false)
                    {
                        // Console.WriteLine("found");
                        return(resultDicPlayer1[item]);
                    }
                }
            }

            if (player == 2)
            {
                foreach (char[,] item in resultDicPlayer2.Keys)
                {
                    bool stop = false;
                    for (int i = 0; i < gb._rows && stop == false; i++)
                    {
                        for (int j = 0; j < gb._cols && stop == false; j++)
                        {
                            if (item[i, j].Equals(gb._board[i, j]) == false)
                            {
                                ///   Console.WriteLine("stopppp2222222222222222");

                                stop = true;
                            }
                        }
                    }

                    if (stop == false)
                    {
                        // Console.WriteLine("found");

                        return(resultDicPlayer2[item]);
                    }
                }
            }

            for (int i = 0; i < gb._rows; i++)
            {
                for (int j = 0; j < gb._cols; j++)


                {
                    if (gb._board[i, j] == 'X')
                    {
                        //for (int i = 0; i < openSpaces.Count; i++)
                        //{
                        // System.Console.WriteLine(" iteration " + i);

                        Board newBoard = new Board(gb);

                        // Console.WriteLine("board for player "+ player);


                        space newSpace = new space(new Tuple <int, int>(i, j), 0);

                        newBoard.fillPlayerMove(newSpace.place.Item1, newSpace.place.Item2);
                        //newBoard.printTheBoard();


                        //  newBoard[newSpace.Item1, newSpace.Item2] = p;

                        if (hasWinner(newBoard, player) == 0)
                        {
                            space tempMove = getBestMove2(newBoard, changePlayers(player), timesup);
                            if (stopwatch.ElapsedMilliseconds > timesup.TotalMilliseconds - 5)
                            {
                                // Console.WriteLine(stopwatch.ElapsedMilliseconds);
                                // Console.WriteLine(timesup.TotalMilliseconds - 20);
                                return(null);
                            }
                            if (player == 1 && tempMove.rank == 1)
                            {
                                newSpace.rank = tempMove.rank;
                                resultDicPlayer1.Add(gb._board, newSpace);
                                // resultDicPlayer1[gb._board] = newSpace;
                                return(newSpace);
                            }
                            if (player == 2 && tempMove.rank == -1)
                            {
                                newSpace.rank = tempMove.rank;
                                resultDicPlayer2.Add(gb._board, newSpace);
                                // resultDicPlayer2[gb._board] = newSpace;
                                return(newSpace);
                            }
                            newSpace.rank = tempMove.rank;

                            //newSpace = tempMove;
                        }
                        else
                        {
                            // Console.WriteLine("reach to end");

                            /*
                             * if (player==1&& hasWinner(newBoard, player) == 1)
                             * {
                             *  newSpace.rank = 1;
                             *  return newSpace;
                             * }
                             */

                            int win = hasWinner(newBoard, player);
                            if (player == 1 && win == 2)
                            {
                                newSpace.rank = -1;
                            }

                            /*
                             * else if (player==2&& hasWinner(newBoard, player) == 2)
                             * {
                             *  newSpace.rank = -1;
                             *  return newSpace;
                             *
                             * }
                             */
                            else if (player == 2 && win == 1)
                            {
                                newSpace.rank = 1;
                            }
                        }

                        //If the new move is better than our previous move, take it
                        //1- maximum player
                        //2 -minimum player
                        if (bestSpace == null || (player == 1 && newSpace.rank > bestSpace.rank) || (player == 2 && newSpace.rank < bestSpace.rank))
                        {
                            bestSpace = newSpace;
                        }
                    }
                }
            }
            if (player == 1)
            {
                resultDicPlayer1.Add(gb._board, bestSpace);
            }

            if (player == 2)
            {
                resultDicPlayer2.Add(gb._board, bestSpace);
            }
            return(bestSpace);
        }
Ejemplo n.º 33
0
        internal AIMLTagHandler GetTagHandlerU(User user, SubQuery query, Request request, Result result, XmlNode node, bool liText)
        {
            AIMLTagHandler tagHandlerU   = getBespokeTags(user, query, request, result, node);
            string         nodeNameLower = StaticAIMLUtils.ToLower(node.LocalName);
            AltBot         targetBot     = query.TargetBot;

            if (Equals(null, tagHandlerU))
            {
                switch (nodeNameLower)
                {
                case "template":
                case "answer":     //CML
                    tagHandlerU = new template(targetBot, user, query, request, result, node);
                    break;

                case "aiml":
                case "cml":     //CML
                    tagHandlerU = new aiml(targetBot, user, query, request, result, node);
                    break;

                case "aimlexec":
                case "eval":
                    tagHandlerU = new aimlexec(targetBot, user, query, request, result, node);
                    break;

                case "vars":
                case "root":
                case "predicates":     //CML
                    tagHandlerU = new root(targetBot, user, query, request, result, node, (() => query.TargetSettings));
                    break;

                case "properties":
                case "bots":
                    tagHandlerU = new root(targetBot, user, query, request, result, node,
                                           (() => request.TargetBot.GlobalSettings));
                    break;

                case "substitutions":
                    tagHandlerU = new root(targetBot, user, query, request, result, node,
                                           (() => request.TargetBot.InputSubstitutions));
                    break;

                case "topic":
                case "conversation":     //CML
                    tagHandlerU = new topic(targetBot, user, query, request, result, node);
                    break;

                case "category":
                case "conv":     //CML
                    tagHandlerU = new category(targetBot, user, query, request, result, node);
                    break;

                case "and":
                    tagHandlerU = new and(targetBot, user, query, request, result, node);
                    break;

                case "or":
                    tagHandlerU = new or(targetBot, user, query, request, result, node);
                    break;

                case "optional":
                    tagHandlerU = new optional(targetBot, user, query, request, result, node);
                    break;

                case "isa":
                    tagHandlerU = new isa(targetBot, user, query, request, result, node);
                    break;

                case "bot":
                    tagHandlerU = new bot(targetBot, user, query, request, result, node);
                    break;

                case "condition":
                case "options":     //cml
                    tagHandlerU = new condition_aima(targetBot, user, query, request, result, node);
                    break;

                case "li":
                    if (liText)
                    {
                        tagHandlerU = new liif(targetBot, user, query, request, result, node);
                    }
                    break;

                case "if":
                    tagHandlerU = new liif(targetBot, user, query, request, result, node);
                    break;

                case "personf":
                    tagHandlerU = new format(targetBot, user, query, request, result, node,
                                             new Func <string, string>(HttpUtility.UrlEncode),
                                             null);
                    break;

                case "date":
                    tagHandlerU = new date(targetBot, user, query, request, result, node);
                    break;

                case "formal":
                    tagHandlerU = new formal(targetBot, user, query, request, result, node);
                    break;

                case "gender":
                    tagHandlerU = new gender(targetBot, user, query, request, result, node);
                    break;

                case "get":
                    tagHandlerU = new get(targetBot, user, query, request, result, node);
                    break;

                case "gossip":
                    tagHandlerU = new gossip(targetBot, user, query, request, result, node);
                    break;

                case "get_ip":
                case "id":
                    tagHandlerU = new id(targetBot, user, query, request, result, node);
                    break;

                case "inputreq":
                    tagHandlerU = new inputreq(targetBot, user, query, request, result, node);
                    break;

                case "request":
                    tagHandlerU = new input(targetBot, user, query, request, result, node, 1);
                    break;

                case "input":
                    tagHandlerU = new input(targetBot, user, query, request, result, node, 1);
                    break;

                case "justthat":     // <input index="2"/>
                    tagHandlerU = new input(targetBot, user, query, request, result, node, 2);
                    break;

                case "beforethat":     // <input index="3"/>
                    tagHandlerU = new input(targetBot, user, query, request, result, node, 3);
                    break;

#if !(__MonoCS__)
                case "javascript":
                    tagHandlerU = new javascript(targetBot, user, query, request, result, node);
                    break;
#endif
                case "learn":
                case "load":
                case "noload":     // the commented version of <load>
                    tagHandlerU = new learn(targetBot, user, query, request, result, node);
                    break;

                case "lowercase":
                    tagHandlerU = new lowercase(targetBot, user, query, request, result, node);
                    break;

                case "person":
                    tagHandlerU = new substitute(targetBot, user, query, request, result, node);
                    break;

                case "person2":
                    tagHandlerU = new substitute(targetBot, user, query, request, result, node);
                    break;

                case "random":
                    tagHandlerU = new random(targetBot, user, query, request, result, node);
                    break;

                case "sentence":
                    tagHandlerU = new sentence(targetBot, user, query, request, result, node);
                    break;

                case "set":
                    tagHandlerU = new set(targetBot, user, query, request, result, node);
                    break;

                case "size":
                case "getsize":
                    tagHandlerU = new size(targetBot, user, query, request, result, node);
                    break;

                case "sr":
                    tagHandlerU = new sr(targetBot, user, query, request, result, node);
                    break;

                case "srai_odd":
                    tagHandlerU = new srai_odd(targetBot, user, query, request, result, node);
                    break;

                case "star":
                    tagHandlerU = new star(targetBot, user, query, request, result, node);
                    break;

                case "system":
                    tagHandlerU = new system(targetBot, user, query, request, result, node);
                    break;

                case "that":     //default <that index="1,1"/>
                    tagHandlerU = new that(targetBot, user, query, request, result, node, 1);
                    break;

                case "justbeforethat":     //treated as <that index="2,1"/>
                    tagHandlerU = new that(targetBot, user, query, request, result, node, 2);
                    break;

                case "response":     //treated as <that index="1,1"/>
                    tagHandlerU = new that(targetBot, user, query, request, result, node, 2);
                    break;

                case "thatstar":
                    tagHandlerU = new thatstar(targetBot, user, query, request, result, node);
                    break;

                case "think":
                    tagHandlerU = new think(targetBot, user, query, request, result, node);
                    break;

                case "topicstar":
                    tagHandlerU = new topicstar(targetBot, user, query, request, result, node);
                    break;

                case "uppercase":
                    tagHandlerU = new uppercase(targetBot, user, query, request, result, node);
                    break;

                case "version":
                case "getversion":
                    tagHandlerU = new version(targetBot, user, query, request, result, node);
                    break;

                case "cycsystem":
                    tagHandlerU = new cycsystem(targetBot, user, query, request, result, node);
                    break;

                case "cycretract":
                    tagHandlerU = new cycretract(targetBot, user, query, request, result, node);
                    break;

                case "cycassert":
                    tagHandlerU = new cycassert(targetBot, user, query, request, result, node);
                    break;

                case "cycterm":
                    tagHandlerU = new cycterm(targetBot, user, query, request, result, node);
                    break;

                case "cycquery":
                    tagHandlerU = new cycquery(targetBot, user, query, request, result, node);
                    break;

                case "cyccondition":
                    tagHandlerU = new cyccondition(targetBot, user, query, request, result, node);
                    break;

                case "cycphrase":
                    tagHandlerU = new cycphrase(targetBot, user, query, request, result, node);
                    break;

                case "cycparaphrase":
                    tagHandlerU = new cycphrase(targetBot, user, query, request, result, node);
                    break;

                case "guard":
                    tagHandlerU = new guard(targetBot, user, query, request, result, node);
                    break;

                case "guardstar":
                    tagHandlerU = new guardstar(targetBot, user, query, request, result, node);
                    break;

                case "cycrandom":
                    tagHandlerU = new cycrandom(targetBot, user, query, request, result, node);
                    break;

                case "tscore":
                    tagHandlerU = new tscore(targetBot, user, query, request, result, node);
                    break;

                case "space":
                    tagHandlerU = new space(targetBot, user, query, request, result, node);
                    break;

                case "markov":
                    tagHandlerU = new markov(targetBot, user, query, request, result, node);
                    break;

                case "soundcode":
                    tagHandlerU = new soundcode(targetBot, user, query, request, result, node);
                    break;

                // MSM
                case "msm":
                    tagHandlerU = new msm(targetBot, user, query, request, result, node);
                    break;

                case "processmsm":
                    tagHandlerU = new process_msm(targetBot, user, query, request, result, node);
                    break;

                case "setstate":
                    tagHandlerU = new setstate(targetBot, user, query, request, result, node);
                    break;

                case "state":
                    tagHandlerU = new state(targetBot, user, query, request, result, node);
                    break;

                case "transition":
                    tagHandlerU = new transition(targetBot, user, query, request, result, node);
                    break;

                case "setevidence":
                    tagHandlerU = new setevidence(targetBot, user, query, request, result, node);
                    break;

                case "evidenceassoc":
                    tagHandlerU = new evidence_assoc(targetBot, user, query, request, result, node);
                    break;

                case "evidencepattern":
                    tagHandlerU = new evidence_pattern(targetBot, user, query, request, result, node);
                    break;

                case "evidencestate":
                    tagHandlerU = new evidencestate(targetBot, user, query, request, result, node);
                    break;

                case "dependentmachine":
                    tagHandlerU = new dependentmachine(targetBot, user, query, request, result, node);
                    break;

                case "responsetopic":
                    tagHandlerU = new response_topic(targetBot, user, query, request, result, node);
                    break;

                case "push":
                    tagHandlerU = new push(targetBot, user, query, request, result, node);
                    break;

                case "pop":
                    tagHandlerU = new pop(targetBot, user, query, request, result, node);
                    break;

                case "peekstack":
                    tagHandlerU = new peekstack(targetBot, user, query, request, result, node);
                    break;

                case "lex":
                    tagHandlerU = new lex(targetBot, user, query, request, result, node);
                    break;

                case "lexset":
                    tagHandlerU = new lexset(targetBot, user, query, request, result, node);
                    break;

                case "lexis":
                    tagHandlerU = new lexis(targetBot, user, query, request, result, node);
                    break;

                case "dbpush":
                    tagHandlerU = new dbpush(targetBot, user, query, request, result, node);
                    break;

                case "dbquery":
                    tagHandlerU = new dbquery(targetBot, user, query, request, result, node);
                    break;

                case "dbupdate":
                    tagHandlerU = new dbupdate(targetBot, user, query, request, result, node);
                    break;

                case "dbdelete":
                    tagHandlerU = new dbdelete(targetBot, user, query, request, result, node);
                    break;

                case "dbload":
                    tagHandlerU = new dbload(targetBot, user, query, request, result, node);
                    break;


                case "regex":
                    tagHandlerU = new regex(targetBot, user, query, request, result, node);
                    break;

                case "bind":     // <bind>#$isa</bind>
                    tagHandlerU = new bind(targetBot, user, query, request, result, node);
                    break;

                case "#text":
                    if (!liText)
                    {
                        return(null);
                    }
                    return(new verbatum(node.Value, targetBot, user, query, request, result, node));

                case "#comment":
                    return(new verbatum(node.OuterXml, targetBot, user, query, request, result, node));

                case "br":
                    return(new verbatum("\n", targetBot, user, query, request, result, node));

                case "pre":
                    return(new verbatum(StaticXMLUtils.InnerXmlText(node), targetBot, user, query, request, result, node));

                case "p":
                    return(new verbatum("\n\n", targetBot, user, query, request, result, node));

                case "meta":
                    return(new verbatum(node.OuterXml, targetBot, user, query, request, result, node));

                default:
                    break;
                }
            }
            if (tagHandlerU != null)
            {
                return(tagHandlerU);
            }
            if (StaticAIMLUtils.IsHtmlTag(node.Name))
            {
                return(new recursiveVerbatum(node, targetBot, user, query, request, result, node, true));
            }
            if (tagHandlerU == null)
            {
                // "bot", "favorite", "fav"
                foreach (KeyValuePair <string, string> prefix in new[]
                {
                    new KeyValuePair <string, string>("get_", "get"),
                    new KeyValuePair <string, string>("set_", "set"),
                    new KeyValuePair <string, string>("bot_", "bot"),
                    new KeyValuePair <string, string>("favorite_", "bot"),
                    new KeyValuePair <string, string>("favorite", "bot"),
                    new KeyValuePair <string, string>("fav_", "bot"),
                    new KeyValuePair <string, string>("fav", "bot"),

                    new KeyValuePair <string, string>("get", "get"),
                    new KeyValuePair <string, string>("set", "set"),
                    new KeyValuePair <string, string>("bot", "bot"),
                })
                {
                    if (nodeNameLower.StartsWith(prefix.Key) && node.Name.Length > prefix.Key.Length)
                    {
                        string               name    = node.Name.Substring(prefix.Key.Length);
                        XmlNode              pn      = node.ParentNode;
                        LineInfoElementImpl  newnode = StaticXMLUtils.CopyNode(prefix.Value, node, false);
                        XmlAttributeLineInfo atr     = (XmlAttributeLineInfo)newnode.OwnerDocument.CreateAttribute("name");
                        atr.ReadOnly = false;
                        atr.Value    = name;
                        newnode.Attributes.Append(atr);
                        if (node.Name.ToLower() != newnode.Name.ToLower())
                        {
                            writeToLog("AIMLLOADER: converted " + node.OuterXml + " -> " + newnode.OuterXml);
                            return(targetBot.GetTagHandler(newnode, query, request, result, user, liText));
                        }
                        writeToLog("AIMLLOADER: ! convert " + node.OuterXml + " -> " + newnode.OuterXml);
                    }
                }
            }
            if (tagHandlerU != null)
            {
                return(tagHandlerU);
            }
            if (nodeNameLower == "name")
            {
                return(new bot(targetBot, user, query, request, result, node));
            }

            tagHandlerU = new lazyClosure(targetBot, user, query, request, result, node);
            writeToLog("AIMLLOADER:  lazyClosure: " + node.OuterXml);
            return(tagHandlerU);
        }
Ejemplo n.º 34
0
 ? new ListView(modelListView, application.CreateCollectionSource(space, objectType, modelView.Id), application, job.SelectedObjectsCriteria)