示例#1
0
        public void Clear()
        {
            Polygons = new List <GLPolygon>();

            for (var i = 0; i < LabyrinthWidth; i++)
            {
                for (var j = 0; j < LabyrinthHeight; j++)
                {
                    LabMatrix[i, j] = 0;
                }
            }

            UnLockedFinishPolygons.Clear();
            LockedFinishPolygons.Clear();

            BonusItems.Clear();
            Path.Clear();
        }
示例#2
0
        public void PickUpBonusItem(GLObject item)
        {
            var   found         = false;
            Point indexToRemove = new Point();

            foreach (var kvp in BonusItems)
            {
                if (kvp.Value == item)
                {
                    indexToRemove = kvp.Key;
                    found         = true;
                    break;
                }
            }

            if (found)
            {
                BonusItems.Remove(indexToRemove);
                FinishCount++;

                string sound;
                if (FinishCount >= BonusItemsCount)
                {
                    sound  = "lastdiamond.mp3";
                    Locked = false;
                }
                else
                {
                    sound = "diamond.mp3";
                }

                Task.Run(() =>
                {
                    var player = Plugin.SimpleAudioPlayer.CrossSimpleAudioPlayer.Current;
                    player.Load(sound);
                    player.Play();
                });
            }
        }
示例#3
0
        // GET: SendBonus
        public ActionResult Index(string spCodesTemp, string userID, string counts, string companyId)
        {
            ViewBag.companyId = companyId;

            InitJsapi(companyId);
            companyId      = Base64MIMA.JIE(companyId);
            ViewBag.counts = int.Parse(Base64MIMA.JIE(counts));
            ViewBag.count  = counts;//加密的
            string userid = Base64MIMA.JIE(userID);

            ViewBag.userid = userID;
            string sqlstr = string.Format("exec proc_BonusOutput 'SelectItem','{0}','{1}'", userid, companyId);

            DataSet           ds             = sql.GetDataSetCommand(sqlstr);
            List <BonusItems> BonusItemsList = new List <BonusItems>();

            if (ds?.Tables.Count > 0)
            {
                #region 奖金项

                if (ds?.Tables[0].Rows.Count > 0)
                {
                    for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
                    {
                        BonusItems bi = new BonusItems();
                        bi.BonusItemsId = ds.Tables[0].Rows[i]["BonusItemID"].ToString();
                        bi.BonusName    = ds.Tables[0].Rows[i]["BIName"].ToString();
                        bi.BonusMoney   = double.Parse(ds.Tables[0].Rows[i]["sumRemainMoney"].ToString());
                        bi.BonusType    = 1;//奖金项的
                        BonusItemsList.Add(bi);
                    }
                }
                if (ds?.Tables[1].Rows.Count > 0)
                {
                    for (int i = 0; i < ds.Tables[1].Rows.Count; i++)
                    {
                        BonusItems bi = new BonusItems();
                        bi.BonusItemsId = ds.Tables[1].Rows[i]["BonusItemID"].ToString();
                        bi.BonusName    = ds.Tables[1].Rows[i]["BIName"].ToString();
                        bi.BonusMoney   = double.Parse(ds.Tables[1].Rows[i]["sumRemainMoney"].ToString());
                        bi.BonusType    = 2;//授权的
                        BonusItemsList.Add(bi);
                    }
                }
                //得到授权的奖金项

                if (BonusItemsList.Where(b => b.BonusType == 2).Count() > 0)
                {
                    //判断授权的可用余额是否大于这个奖金项的余额
                    foreach (var item in BonusItemsList.Where(b => b.BonusType == 2))
                    {
                        string    ss    = string.Format(@"select ISNULL(SUM(RemainMoney),0) re from RuleData 
where BonusItemID='{0}'
and EndDate>GETDATE()", item.BonusItemsId);
                        DataTable dt_ss = sql.GetDataTableCommand(ss);
                        if (dt_ss.Rows.Count > 0)
                        {
                            if (double.Parse(dt_ss.Rows[0]["re"].ToString()) < item.BonusMoney)
                            {
                                item.BonusMoney = double.Parse(dt_ss.Rows[0]["re"].ToString());
                            }
                        }
                    }
                }


                ViewBag.BonusItemsList = BonusItemsList;
                #endregion

                #region 奖金金额
                List <BonusParameter> BonusParamList = new List <BonusParameter>();
                if (ds?.Tables[2].Rows.Count > 0)
                {
                    for (int i = 0; i < ds.Tables[2].Rows.Count; i++)
                    {
                        BonusParameter bp = new BonusParameter();
                        bp.BonusSetID = int.Parse(ds.Tables[2].Rows[i]["BonusSetID"].ToString());
                        bp.TypeName   = ds.Tables[2].Rows[i]["TypeName"].ToString();
                        bp.BonusNum   = int.Parse(ds.Tables[2].Rows[i]["BonusNum"].ToString());
                        BonusParamList.Add(bp);
                    }
                    ViewBag.BonusParamList = BonusParamList;
                }
                else
                {
                    ViewBag.BonusParamList = null;
                }
                #endregion

                #region 常用原因
                List <BonusReson> BonusResonList = new List <BonusReson>();
                if (ds.Tables[3].Rows.Count > 0)
                {
                    for (int i = 0; i < ds.Tables[3].Rows.Count; i++)
                    {
                        BonusReson br = new BonusReson();
                        br.ID               = long.Parse(ds.Tables[3].Rows[i]["ID"].ToString());
                        br.BonusResonName   = ds.Tables[3].Rows[i]["BonusResonName"].ToString();
                        br.BonusResonUserId = ds.Tables[3].Rows[i]["BonusResonUserId"].ToString();
                        BonusResonList.Add(br);
                    }
                    ViewBag.BonusResonList = BonusResonList;
                }
                else
                {
                    ViewBag.BonusResonList = null;
                }
                #endregion
            }
            //通过userid得到公司id
            //string sqlstr222 = string.Format($"select CompanyID from Employee where EmpID='{userid}'");
            //DataTable dt222 = sql.GetDataTableCommand(sqlstr222);
            //if (dt222.Rows.Count > 0)
            //{
            //    ViewBag.companyId = Base64MIMA.JIA(dt222.Rows[0]["CompanyID"].ToString());
            //}
            //else
            //{
            //    //公司注册页面
            //    return Redirect("/CompanyRegist/Index?UserID=" + userid);
            //    //return Content("<script>alert('出现错误,请联系相关人员处理');history.go(-1);</script>");
            //}
            //companyId = dt222.Rows[0]["CompanyID"].ToString();
            //ViewBag.companyId = CompanyId;

            #region 得到本公司的部门和人员(不包括已离职的和本人)
            string  sqlstr2 = string.Format($"exec proc_BonusOutput 'SelectUsers','{userid}',{companyId}");
            DataSet ds2     = sql.GetDataSetCommand(sqlstr2);
            if (ds2?.Tables.Count > 0)
            {
                #region 部门

                if (ds2?.Tables[0].Rows.Count > 0)
                {
                    ViewBag.depList = ds2.Tables[0];
                }
                else
                {
                    ViewBag.depList = null;
                }

                #endregion

                #region 人员
                if (ds2?.Tables[1].Rows.Count > 0)
                {
                    ViewBag.empList = ds2.Tables[1];
                }
                else
                {
                    ViewBag.empList = null;
                }
                #endregion
            }
            #endregion
            if (spCodesTemp == "" || spCodesTemp == null)
            {
                ViewBag.us = "";
            }
            else
            {
                ViewBag.us = Base64MIMA.JIE(spCodesTemp);
            }

            #region 人员
            ////判断是公司级还是部门级
            //string BonusItemID = "";
            //if (BonusItemsList.Count > 0)
            //{
            //    BonusItemID = BonusItemsList[0].BonusItemsId;
            //}
            //else
            //{
            //    BonusItemID = "00000000-0000-0000-0000-000000000000";
            //}
            ////string selectComOrDep = string.Format($"select * from BonusItem where BonusItemID='{BonusItemsList[0]}'");

            //string sqlstr22 = string.Format("exec proc_BonusOutput 'gongshiOrbumen','','{0}','','','{1}'", companyId, BonusItemID);
            //DataTable dt = sql.GetDataTableCommand(sqlstr22);
            //List<Users> userList = new List<Users>();
            //if (dt?.Rows.Count > 0)
            //{
            //    ViewBag.zimu = dt;

            //    for (int i = 0; i < dt.Rows.Count; i++)
            //    {
            //        Users us = new Users();
            //        us.Shou = dt.Rows[i]["py"].ToString();
            //        List<User> uList = new List<User>();
            //        string sqlstr23 = string.Format("select * from Employee where SpellJX like '{0}%' and CompanyID='{1}' and EmpID!='{2}'", dt.Rows[i]["py"].ToString(),companyId,userid);
            //        DataTable dt2 = sql.GetDataTableCommand(sqlstr23);
            //        if (dt2?.Rows.Count > 0)
            //        {
            //            for (int ii = 0; ii < dt2.Rows.Count; ii++)
            //            {
            //                User u = new Models.User();
            //                u.name = dt2.Rows[ii]["Name"].ToString();
            //                u.userid = dt2.Rows[ii]["EmpID"].ToString();
            //                u.photo = dt2.Rows[ii]["EmpPhotos"].ToString();
            //                u.isEmp= int.Parse(dt2.Rows[ii]["isEmp"].ToString());
            //                uList.Add(u);
            //            }
            //        }
            //        us.user = uList;
            //        userList.Add(us);
            //    }
            //}
            //else
            //{
            //    ViewBag.zimu = null;
            //}
            //ViewBag.userList = userList;
            #endregion
            return(View());
        }
示例#4
0
        public void Generate(Context context, int moves, int itemsCount)
        {
            Clear();

            State = AutoPilotStateEnum.Stoppped;

            StartPos = new Point(Rnd.Next(20, 80), Rnd.Next(20, 80));

            _bonusItemsCount = itemsCount;

            var actPos = new Point(StartPos.X, StartPos.Y);

            EndPos = new Point(actPos.X, actPos.Y);

            LabMatrix[actPos.X, actPos.Y] = 1;

            var direction = 1;

            for (var move = 0; move <= moves; move++)
            {
                var steps = Rnd.Next(1, 4);

                if (move == 0)
                {
                    steps = 4;            // 4 steps on beginning
                }
                for (var step = 0; step < steps; step++)
                {
                    if (CanMove(actPos.X, actPos.Y, direction))
                    {
                        switch (direction)
                        {
                        case 0: actPos.X += 1; break;

                        case 1: actPos.Y += 1; break;

                        case 2: actPos.X -= 1; break;

                        case 3: actPos.Y -= 1; break;
                        }

                        Path.Add(direction);

                        EndPos = new Point(actPos.X, actPos.Y);
                        LabMatrix[actPos.X, actPos.Y] = 1;
                    }
                }

                direction = Rnd.Next(0, 3);
            }

            var generatedPositions = new List <Point>();

            for (var j = 0; j < LabyrinthHeight; j++)
            {
                for (var i = 0; i < LabyrinthWidth; i++)
                {
                    if (LabMatrix[i, j] == 1)
                    {
                        generatedPositions.Add(new Point(i, j));
                    }

                    if ((i == StartPos.X) && (j == StartPos.Y))
                    {
                        GeneratePosition(i, j, "labWallS", "labBottomS", "labTopS");
                    }
                    else
                    if ((i == EndPos.X) && (j == EndPos.Y))
                    {
                        // locked:
                        LockedFinishPolygons.AddRange(GeneratePosition(i, j, "labWallL", "labBottomL", "labTopL"));

                        // unlocked:
                        UnLockedFinishPolygons.AddRange(GeneratePosition(i, j, "labWallF", "labBottomF", "labTopF"));
                    }
                    else
                    {
                        GeneratePosition(i, j);
                    }
                }
            }

            // bonus items

            if (generatedPositions.Count > BonusItemsCount + 4)
            {
                while (BonusItems.Count < BonusItemsCount)
                {
                    var r = Rnd.Next(2, generatedPositions.Count - 2);
                    if (BonusItems.Count == 0)
                    {
                        // first bonus item always 2 steps before observer
                        r = 2;
                    }

                    var p = new Point(generatedPositions[r].X, generatedPositions[r].Y);

                    if (BonusItems.ContainsKey(p) ||
                        ((StartPos.X == p.X && StartPos.Y == p.Y)) ||
                        ((EndPos.X == p.X && EndPos.Y == p.Y))
                        )
                    {
                        continue;
                    }

                    var item = new GLObject();
                    item.LoadFromAndroidAsset(context, "diamond.xml");
                    item.Position = new GLPoint((p.X + 0) * TileWidth, -2, (p.Y + 0) * TileWidth + TileWidth / 2);

                    BonusItems.Add(new Point(p.X, p.Y), item);
                }
            }

            // generating map
            var mapLines = new StringBuilder();

            for (var j = 0; j < LabyrinthHeight; j++)
            {
                string line = null;
                for (var i = 0; i < LabyrinthWidth; i++)
                {
                    if (LabMatrix[i, j] == 1)
                    {
                        if ((i == StartPos.X) && (j == StartPos.Y))
                        {
                            line += 'S';
                        }
                        else
                        if ((i == EndPos.X) && (j == EndPos.Y))
                        {
                            line += 'F';
                        }
                        else
                        {
                            var bonusAtThisPos = false;
                            foreach (var kvp in BonusItems)
                            {
                                if ((i == kvp.Key.X) && (j == kvp.Key.Y))
                                {
                                    bonusAtThisPos = true;
                                    break;
                                }
                            }

                            line += bonusAtThisPos ? 'o' :'#';
                        }
                    }
                    else
                    {
                        line += ' ';
                    }
                }

                if (line != null && line.Trim() != String.Empty)
                {
                    mapLines.Append(line);
                    mapLines.Append(Environment.NewLine);
                }
            }

            Logger.Info("Map:" + Environment.NewLine + mapLines.ToString());

            Locked      = true;
            FinishCount = 0;

            Move(-TileWidth / 2, 0, 0);
        }