Exemplo n.º 1
0
        public void UpdateDB(EndGameModel model)
        {
            var    game      = _context.Games.Where(x => x.GameID == model.GameId).FirstOrDefault();
            Player playerOne = null;
            Player playerTwo = null;

            if (game != null)
            {
                game.PlayerOneScore = model.PlayerOneScore;
                game.PlayerTwoScore = model.PlayerTwoScore;
                if (game.PlayerOne != null)
                {
                    playerOne = _context.Players.FirstOrDefault(x => x.PlayerId == game.PlayerOne.PlayerId);
                }
                if (game.PlayerTwo != null)
                {
                    playerTwo = _context.Players.FirstOrDefault(x => x.PlayerId == game.PlayerTwo.PlayerId);
                }
                if (playerOne != null && playerTwo != null)
                {
                    if (model.PlayerOneScore > model.PlayerTwoScore)
                    {
                        playerOne.Win++;
                        playerTwo.Lose++;
                    }
                    else
                    {
                        playerTwo.Win++;
                        playerOne.Lose++;
                    }
                }
                _context.SaveChanges();
            }
        }
Exemplo n.º 2
0
        public ActionResult EndGame(EndGameModel model)
        {
            //UPDATE DB
            var pongRepo        = new PongRepo();
            var resultGameModel = new ResultGameModel();

            if (model.GameId != -1)
            {
                pongRepo.UpdateDB(model);
                var finishedModel = pongRepo.GetLastGame();
                resultGameModel.FinishedGame = finishedModel;
            }
            var statisticsModel = pongRepo.GetStatistics();

            resultGameModel.StatisticsGame = statisticsModel;
            return(PartialView("EndGame", resultGameModel));
        }
Exemplo n.º 3
0
        public ActionResult EndGame(EndGameModel endGame)
        {
            ViewBag.Player = endGame.Nickname;
            ViewBag.RoomID = endGame.RoomId;
            GameModel   game       = GameManagerModel.GetInstance().GetGame(endGame.RoomId);
            PlayerModel thisPlayer = game.GetPlayer(endGame.Nickname);
            PlayerModel winner     = game.GetWinner();

            if (thisPlayer.NickName.Equals(winner.NickName))
            {
                ViewBag.MostLikely = "You won!";
            }
            else
            {
                ViewBag.MostLikely = "The winner is " + winner.NickName + "!";
            }
            ViewBag.MostPoints = "with " + winner.Points;
            return(View());
        }
Exemplo n.º 4
0
 public void ShowWinners(EndGameModel endGameModel)
 {
     mainWindow.FillWiningGrid(endGameModel);
     mainWindow.ShowWinningGrid();
 }
Exemplo n.º 5
0
 public void ShowWinners(EndGameModel endGameModel)
 {
     DrawHandler.GetInstance().ShowWinners(endGameModel);
 }
        public void FillWiningGrid(EndGameModel endGameModel)
        {
            int counter = 1;
            Dictionary <string, int> sortedDictionary = endGameModel.Winners.OrderByDescending(x => x.Value).ToDictionary(x => x.Key, x => x.Value);

            foreach (KeyValuePair <string, int> item in sortedDictionary)
            {
                Application.Current.Dispatcher.Invoke(new Action(() =>
                {
                    switch (counter)
                    {
                    case 1:
                        lblFirst.Content = string.Format("1st: {0} {1} points", item.Key, item.Value);
                        break;

                    case 2:
                        lblSecond.Content = string.Format("2nd: {0} {1} points", item.Key, item.Value);
                        break;

                    case 3:
                        lblThid.Content = string.Format("3rd: {0} {1} points", item.Key, item.Value);
                        break;

                    case 4:
                        lblFourth.Content = string.Format("4rt: {0} {1} points", item.Key, item.Value);
                        break;

                    case 5:
                        lblFifth.Content = string.Format("5th: {0} {1} points", item.Key, item.Value);
                        break;

                    case 6:
                        lblSixth.Content = string.Format("6th: {0} {1} points", item.Key, item.Value);
                        break;

                    case 7:
                        lblSeventh.Content = string.Format("7th: {0} {1} points", item.Key, item.Value);
                        break;

                    case 8:
                        lblEigth.Content = string.Format("8th: {0} {1} points", item.Key, item.Value);
                        break;

                    default:
                        break;
                    }

                    counter++;
                }));
            }

            if (counter < 8)
            {
                for (int i = counter; i <= 8; i++)
                {
                    Application.Current.Dispatcher.Invoke(new Action(() =>
                    {
                        switch (i)
                        {
                        case 1:
                            lblFirst.Content = "";
                            break;

                        case 2:
                            lblSecond.Content = "";
                            break;

                        case 3:
                            lblThid.Content = "";
                            break;

                        case 4:
                            lblFourth.Content = "";
                            break;

                        case 5:
                            lblFifth.Content = "";
                            break;

                        case 6:
                            lblSixth.Content = "";
                            break;

                        case 7:
                            lblSeventh.Content = "";
                            break;

                        case 8:
                            lblEigth.Content = "";
                            break;

                        default:
                            break;
                        }
                    }));
                }
            }
        }
Exemplo n.º 7
0
        /// <summary>
        /// Handle thie incoming message, destination from: ReadMessage();
        /// </summary>
        /// <param name="stringMessage"></param>
        private void HandleMessage(string stringMessage)
        {
            Message message = JsonConvert.DeserializeObject <Message>(stringMessage);

            switch (message.Type)
            {
            case MessageTypes.Inform:
                GuessModel guessModel = JsonConvert.DeserializeObject <GuessModel>(message.Data);
                DrawHandler.GetInstance().WriteMessage(guessModel.Word);
                break;

            case MessageTypes.SendDrawing:
                DrawPoint drawPoint = JsonConvert.DeserializeObject <DrawPoint>(message.Data);
                DrawHandler.GetInstance().DrawLine(drawPoint);
                break;

            case MessageTypes.NewDrawer:
                DrawHandler.GetInstance().CheckDrawer(JsonConvert.DeserializeObject <ClientModel>(message.Data));
                break;

            case MessageTypes.NewHost:
                ClientHandler.GetInstance().SetHost(JsonConvert.DeserializeObject <ClientModel>(message.Data));
                break;

            case MessageTypes.JoinRoom:
                RoomModel room = JsonConvert.DeserializeObject <RoomModel>(message.Data);
                ClientHandler.GetInstance().SetRoomname(room.Name);
                ClientHandler.GetInstance().SetRoomSize(room.AmountOfPlayers);
                break;

            case MessageTypes.StartGame:
                GameModel gameModel = JsonConvert.DeserializeObject <GameModel>(message.Data);
                ClientHandler.GetInstance().SetWordSize(gameModel.LengthOfWord);
                ClientHandler.GetInstance().SetRoundLabel(gameModel.CurrentRound);
                DrawHandler.GetInstance().HideHostGrid();
                DrawHandler.GetInstance().HideWinners();
                break;

            case MessageTypes.EndGame:
                EndGameModel endGameModel = JsonConvert.DeserializeObject <EndGameModel>(message.Data);
                ClientHandler.GetInstance().ShowWinners(endGameModel);
                ClientHandler.GetInstance().EndGame();
                break;

            case MessageTypes.GuessWord:
                ClientHandler.GetInstance().SetWord(JsonConvert.DeserializeObject <GuessModel>(message.Data).Word);
                break;

            case MessageTypes.NewRound:
                gameModel = JsonConvert.DeserializeObject <GameModel>(message.Data);
                ClientHandler.GetInstance().SetWordSize(gameModel.LengthOfWord);
                ClientHandler.GetInstance().SetRoundLabel(gameModel.CurrentRound);
                DrawHandler.GetInstance().ClearCanvas();
                break;

            case MessageTypes.UsernameCheck:
                bool validName = JsonConvert.DeserializeObject <ClientModel>(message.Data).ValidName;
                ClientHandler.GetInstance().CheckUsername(validName);
                break;

            case MessageTypes.Ping:
                this.sendMessage(new Message(MessageTypes.Pong, ""));
                break;

            default:
                break;
            }
        }