Пример #1
0
        public static DataSet GetUsersByGameType(ChessTypeE chessType, GameType gameType)
        {
            Kv kv = new Kv();

            kv.Set("MethodName", (int)MethodNameE.GetUsersByGameType);
            kv.Set(StdKv.CurrentUserID, Ap.CurrentUserID);
            kv.Set("ChessTypeID", (int)chessType);
            kv.Set("GameTypeID", (int)gameType);
            DataSet ds = SocketClient.Instance.Invoke(kv.DataTable.Copy());

            return(ds);
        }
Пример #2
0
        public static Room GetRoomByTournamentID(Cxt cxt, ChessTypeE chessTypeE)
        {
            Room Room = null;

            if (chessTypeE == ChessTypeE.Human)
            {
                Room = new Room(cxt, BaseCollection.SelectItem(InfiChess.Room, "ParentID = 7 and (TournamentID is NULL or TournamentID = 0) "));
            }
            else if (chessTypeE == ChessTypeE.Engine)
            {
                Room = new Room(cxt, BaseCollection.SelectItem(InfiChess.Room, "ParentID = 12 and (TournamentID is NULL or TournamentID = 0) "));
            }
            return(Room);
        }
Пример #3
0
        int GetEloBeforeRating(int rating, int chessType)
        {
            if (rating == 0)
            {
                ChessTypeE ChessTypeIDE = (ChessTypeE)Enum.ToObject(typeof(ChessTypeE), chessType);

                if (ChessTypeIDE == ChessTypeE.Engine)
                {
                    rating = 2200;
                }
                else if (ChessTypeIDE == ChessTypeE.Human)
                {
                    rating = 1500;
                }
            }
            return(rating);
        }
Пример #4
0
        void GetGameType(string strGameType)
        {
            switch (strGameType)
            {
            case HumanBullet:
                chessType = ChessTypeE.Human;
                gameType  = GameType.Bullet;
                break;

            case HumanBiltz:
                chessType = ChessTypeE.Human;
                gameType  = GameType.Blitz;
                break;

            case HumanLong:
                chessType = ChessTypeE.Human;
                gameType  = GameType.Long;
                break;

            case HumanRapid:
                chessType = ChessTypeE.Human;
                gameType  = GameType.Rapid;
                break;

            case EngineBullet:
                chessType = ChessTypeE.Engine;
                gameType  = GameType.Bullet;
                break;

            case EngineComputer:
                chessType = ChessTypeE.Engine;
                gameType  = GameType.Blitz;
                break;

            case EngineSlow:
                chessType = ChessTypeE.Engine;
                gameType  = GameType.Long;
                break;

            case Centrues:
                break;

            default:
                break;
            }
        }
Пример #5
0
        private void LoadRating(string userName)
        {
            ProgressForm frmProgress = ProgressForm.Show(this, "Loading Rating...");

            UserElo ue = null;

            if (userName == "")
            {
                ue = new UserElo(userID);
            }
            else
            {
                ue = new UserElo(userName);
            }

            DataTable dt = UserElo.UserGamesRating;

            int tabs = tabControl1.TabCount;

            tabs--;

            if (dt != null && dt.Rows.Count > 0)
            {
                isRated       = true;
                this.userID   = Convert.ToInt32(dt.Rows[0]["UserID"]);
                this.userName = dt.Rows[0]["UserName"].ToString();

                tabControl1.TabPages.RemoveAt(tabs);

                var gameTypes = (from DataRow dr in dt.Rows
                                 select new { ChessTypeID = dr["ChessTypeID"], GameTypeID = dr["GameTypeID"] }).Distinct();

                var centaurGameType = (from DataRow dr in dt.Rows
                                       select new { ChessTypeID = 3 }).Distinct();

                int  ChessTypeID        = 0;
                int  GameTypeID         = 0;
                bool isCentaurTabOpened = false;

                foreach (var item in gameTypes)
                {
                    ChessTypeID = Convert.ToInt32(item.ChessTypeID);
                    GameTypeID  = Convert.ToInt32(item.GameTypeID);
                    ChessTypeE chessType = (ChessTypeE)ChessTypeID;
                    GameType   gameType  = (GameType)GameTypeID;

                    #region ChessType
                    switch (chessType)
                    {
                    case ChessTypeE.Human:
                        switch (gameType)
                        {
                        case GameType.Bullet:
                            tabControl1.TabPages.Add("Bullet");
                            RatedGameResultUc ratedGameResultUc1 = new RatedGameResultUc();
                            ratedGameResultUc1.UserID      = UserID;
                            ratedGameResultUc1.chessTypeID = ChessTypeID;
                            ratedGameResultUc1.gameTypeID  = GameTypeID;
                            ratedGameResultUc1.UserElo     = ue;
                            ratedGameResultUc1.SetRating();
                            tabControl1.TabPages[tabs].Controls.Add(ratedGameResultUc1);
                            tabs++;
                            break;

                        case GameType.Blitz:
                            tabControl1.TabPages.Add("Blitz");
                            RatedGameResultUc ratedGameResultUc2 = new RatedGameResultUc();
                            ratedGameResultUc2.UserID      = UserID;
                            ratedGameResultUc2.chessTypeID = ChessTypeID;
                            ratedGameResultUc2.gameTypeID  = GameTypeID;
                            ratedGameResultUc2.UserElo     = ue;
                            ratedGameResultUc2.SetRating();
                            tabControl1.TabPages[tabs].Controls.Add(ratedGameResultUc2);
                            tabs++;
                            break;

                        case GameType.Rapid:
                            tabControl1.TabPages.Add("Rapid");
                            RatedGameResultUc ratedGameResultUc3 = new RatedGameResultUc();
                            ratedGameResultUc3.UserID      = UserID;
                            ratedGameResultUc3.chessTypeID = ChessTypeID;
                            ratedGameResultUc3.gameTypeID  = GameTypeID;
                            ratedGameResultUc3.UserElo     = ue;
                            ratedGameResultUc3.SetRating();
                            tabControl1.TabPages[tabs].Controls.Add(ratedGameResultUc3);
                            tabs++;
                            break;

                        case GameType.Long:
                            tabControl1.TabPages.Add("Long");
                            RatedGameResultUc ratedGameResultUc4 = new RatedGameResultUc();
                            ratedGameResultUc4.UserID      = UserID;
                            ratedGameResultUc4.chessTypeID = ChessTypeID;
                            ratedGameResultUc4.gameTypeID  = GameTypeID;
                            ratedGameResultUc4.UserElo     = ue;
                            ratedGameResultUc4.SetRating();
                            tabControl1.TabPages[tabs].Controls.Add(ratedGameResultUc4);
                            tabs++;
                            break;
                        }
                        break;

                    case ChessTypeE.Engine:
                        switch (gameType)
                        {
                        case GameType.Bullet:
                            tabControl1.TabPages.Add("Computer/Bullet");
                            RatedGameResultUc ratedGameResultUc5 = new RatedGameResultUc();
                            ratedGameResultUc5.UserID      = UserID;
                            ratedGameResultUc5.chessTypeID = ChessTypeID;
                            ratedGameResultUc5.gameTypeID  = GameTypeID;
                            ratedGameResultUc5.UserElo     = ue;
                            ratedGameResultUc5.SetRating();
                            tabControl1.TabPages[tabs].Controls.Add(ratedGameResultUc5);
                            tabs++;
                            break;

                        case GameType.Blitz:
                            tabControl1.TabPages.Add("Computer/Blitz");
                            RatedGameResultUc ratedGameResultUc6 = new RatedGameResultUc();
                            ratedGameResultUc6.UserID      = UserID;
                            ratedGameResultUc6.chessTypeID = ChessTypeID;
                            ratedGameResultUc6.gameTypeID  = GameTypeID;
                            ratedGameResultUc6.UserElo     = ue;
                            ratedGameResultUc6.SetRating();
                            tabControl1.TabPages[tabs].Controls.Add(ratedGameResultUc6);
                            tabs++;
                            break;

                        case GameType.Rapid:
                            tabControl1.TabPages.Add("Computer/Rapid");
                            RatedGameResultUc ratedGameResultUc7 = new RatedGameResultUc();
                            ratedGameResultUc7.UserID      = UserID;
                            ratedGameResultUc7.chessTypeID = ChessTypeID;
                            ratedGameResultUc7.gameTypeID  = GameTypeID;
                            ratedGameResultUc7.UserElo     = ue;
                            ratedGameResultUc7.SetRating();
                            tabControl1.TabPages[tabs].Controls.Add(ratedGameResultUc7);
                            tabs++;
                            break;

                        case GameType.Long:
                            tabControl1.TabPages.Add("Computer/Long");
                            RatedGameResultUc ratedGameResultUc8 = new RatedGameResultUc();
                            ratedGameResultUc8.UserID      = UserID;
                            ratedGameResultUc8.chessTypeID = ChessTypeID;
                            ratedGameResultUc8.gameTypeID  = GameTypeID;
                            ratedGameResultUc8.UserElo     = ue;
                            ratedGameResultUc8.SetRating();
                            tabControl1.TabPages[tabs].Controls.Add(ratedGameResultUc8);
                            tabs++;
                            break;
                        }
                        break;

                    case ChessTypeE.Centaur:
                        if (!isCentaurTabOpened)
                        {
                            tabControl1.TabPages.Add("Centaur");
                            RatedGameResultUc ratedGameResultUc9 = new RatedGameResultUc();
                            ratedGameResultUc9.UserID      = UserID;
                            ratedGameResultUc9.chessTypeID = 3;
                            ratedGameResultUc9.gameTypeID  = 0;
                            ratedGameResultUc9.UserElo     = ue;
                            ratedGameResultUc9.SetRating();
                            tabControl1.TabPages[tabs].Controls.Add(ratedGameResultUc9);
                            tabs++;
                            isCentaurTabOpened = true;
                        }
                        break;

                    case ChessTypeE.Correspondence:
                        tabControl1.TabPages.Add("Correspondence");
                        RatedGameResultUc ratedGameResultUc10 = new RatedGameResultUc();
                        ratedGameResultUc10.UserID      = UserID;
                        ratedGameResultUc10.chessTypeID = ChessTypeID;
                        ratedGameResultUc10.gameTypeID  = GameTypeID;
                        ratedGameResultUc10.UserElo     = ue;
                        ratedGameResultUc10.SetRating();
                        tabControl1.TabPages[tabs].Controls.Add(ratedGameResultUc10);
                        tabs++;
                        break;

                    default:
                        break;
                    }
                }
                #endregion
            }
            else
            {
                RatedGameResultUc ratedGameResultUc = new RatedGameResultUc();
                tabControl1.TabPages[tabs].Controls.Add(ratedGameResultUc);
                isRated = false;
            }

            frmProgress.Close();
        }
Пример #6
0
 public static DataTable GetUsersByGameType(Cxt cxt, ChessTypeE ChessTypeE, GameType GameTypeE)
 {
     return(BaseCollection.Execute("GetTopRatingByGameType", ChessTypeE.ToString("d"), GameTypeE.ToString("d")));
 }
Пример #7
0
        private void NewGame()
        {
            ChessTypeE chessType = ChessTypeE.None;

            if (base.Game.DbGame.IsCurrentUserWhite)
            {
                chessType = base.Game.DbGame.WhiteChessTypeIDE;
            }
            else if (base.Game.DbGame.IsCurrentUserBlack)
            {
                chessType = base.Game.DbGame.BlackChessTypeIDE;
            }

            if (base.Game.DbGame.IsKibitzer)
            {
                EnableKibitzerMode(true);
                base.Game.NewGame(GameMode.Kibitzer, (GameType)base.Game.DbGame.GameTypeID);
            }
            else
            {
                switch (chessType)
                {
                case ChessTypeE.None:
                    break;

                case ChessTypeE.Human:
                    EnableKibitzerMode(false);
                    base.Game.NewGame(GameMode.OnlineHumanVsHuman, (GameType)base.Game.DbGame.GameTypeID);
                    break;

                case ChessTypeE.Engine:
                    base.Game.NewGame(GameMode.OnlineEngineVsEngine, (GameType)base.Game.DbGame.GameTypeID);
                    DisableOfferDraw();
                    break;

                case ChessTypeE.Centaur:
                    EnableCentaurMode(true);
                    base.Game.NewGame(GameMode.OnlineHumanVsHuman, (GameType)base.Game.DbGame.GameTypeID);
                    break;

                case ChessTypeE.Correspondence:
                    break;

                default:
                    break;
                }
            }

            if (base.Game.DbGame.IsCurrentUserBlack)
            {
                if (!ChessBoardUc.Flipped)
                {
                    base.FlipBoard();
                }
            }
            else
            {
                if (ChessBoardUc.Flipped)
                {
                    base.FlipBoard();
                }
            }

            SetStatusbarMessage("Ready - New Game");

            this.Text = "[" + Ap.CurrentUser.UserName + "] - " + base.Game.DbGame.WhiteUser.UserName + " - " + base.Game.DbGame.BlackUser.UserName + " , " + ((GameType)base.Game.DbGame.GameTypeID).ToString() + " , " + base.Game.DbGame.TimeMin.ToString() + "' + " + base.Game.DbGame.GainPerMoveMin.ToString() + "'' - " + DateTime.Today.Year.ToString();

            if (base.Game.DbGame.IsRated)
            {
                this.Text += " Rated";
            }
            else
            {
                this.Text += " Unrated";
            }
        }
Пример #8
0
        public void GameWindowClosed()
        {
            ChessTypeE  chessType  = (ChessTypeE)Ap.PlayingMode.ChessTypeID;// PlayingModeData.Instance.ChessTypeID;
            UserStatusE userStatus = UserStatusE.Blank;

            // by default user status set to "Playing"
            userStatus = UserStatusE.Playing;

            // if closing playing game window and atleast one kibitzer window is opened, then user status will be "Kibitzer"
            if (Ap.KibitzersCount > 0 && (!Ap.IsGameInProgress || (Ap.IsGameInProgress && Ap.Game.DbGame.ID == this.DbGame.ID)))
            {
                userStatus = UserStatusE.Kibitzer;
            }
            // if close playing game window and there is no kibitzer, then user status will be one of the following options (based on chess type)"
            else if (Ap.KibitzersCount == 0 && Ap.IsGameInProgress && Ap.Game.DbGame.ID == this.DbGame.ID)
            {
                switch (chessType)
                {
                case ChessTypeE.None:
                case ChessTypeE.Human:
                case ChessTypeE.Correspondence:
                    userStatus = UserStatusE.Blank;
                    break;

                case ChessTypeE.Engine:
                    userStatus = UserStatusE.Engine;
                    break;

                case ChessTypeE.Centaur:
                    userStatus = UserStatusE.Centaur;
                    break;

                default:
                    break;
                }
            }
            // if closing kibitzer window and there is no other kibitzer or playing game window, then user status will be one of the following options (based on chess type)"
            else if (Ap.KibitzersCount == 0 && !Ap.IsGameInProgress)
            {
                switch (chessType)
                {
                case ChessTypeE.None:
                case ChessTypeE.Human:
                case ChessTypeE.Correspondence:
                    userStatus = UserStatusE.Blank;
                    break;

                case ChessTypeE.Engine:
                    userStatus = UserStatusE.Engine;
                    break;

                case ChessTypeE.Centaur:
                    userStatus = UserStatusE.Centaur;
                    break;

                default:
                    break;
                }
            }

            UserLeaveGame(userStatus);

            Ap.MsgQueue.Clear(this.DbGame.GameID);

            DbGame = null;
        }