Exemplo n.º 1
0
        public ActionResult TeamSelectionGetPlayers(TeamSelectionViewModel teamSelectionViewModel)
        {
            StrategyCricketEntities model = new StrategyCricketEntities();

            teamSelectionViewModel.FirstTeamPlayers  = model.Players.Where(x => x.Team.Equals(teamSelectionViewModel.FirstTeam)).ToList();
            teamSelectionViewModel.SecondTeamPlayers = model.Players.Where(x => x.Team.Equals(teamSelectionViewModel.SecondTeam)).ToList();

            //TOSS

            Random random = new Random();
            int    toss   = random.Next(1, 3);

            if (toss != 1)
            {
                var temp = teamSelectionViewModel.FirstTeamPlayers;
                teamSelectionViewModel.FirstTeamPlayers  = teamSelectionViewModel.SecondTeamPlayers;
                teamSelectionViewModel.SecondTeamPlayers = temp;

                var tempBowling = teamSelectionViewModel.FirstTeamBowlingLineup;
                teamSelectionViewModel.FirstTeamBowlingLineup  = teamSelectionViewModel.SecondTeamBowlingLineup;
                teamSelectionViewModel.SecondTeamBowlingLineup = tempBowling;

                var tempTeamName = teamSelectionViewModel.FirstTeam;
                teamSelectionViewModel.FirstTeam  = teamSelectionViewModel.SecondTeam;
                teamSelectionViewModel.SecondTeam = tempTeamName;

                ////var order = new List<int> { 3, 2, 1, 0, 4, 6, 5, 7, 8, 9, 11 };
                ////teamSelectionViewModel.FirstTeamPlayers = order.Select(i => teamSelectionViewModel.FirstTeamPlayers[i]).ToList();
                teamSelectionViewModel.FirstTeamPlayers = teamSelectionViewModel.FirstTeamPlayers.OrderByDescending(x => x.BattingAttribute).ToList();
                //make the bets batsman to ONE down
                var tempBatsman = teamSelectionViewModel.FirstTeamPlayers[0];
                teamSelectionViewModel.FirstTeamPlayers[0] = teamSelectionViewModel.FirstTeamPlayers[2];
                teamSelectionViewModel.FirstTeamPlayers[2] = tempBatsman;

                teamSelectionViewModel.SecondTeamPlayers = teamSelectionViewModel.SecondTeamPlayers.OrderByDescending(x => x.BattingAttribute).ToList();
                tempBatsman = teamSelectionViewModel.SecondTeamPlayers[0];
                teamSelectionViewModel.SecondTeamPlayers[0] = teamSelectionViewModel.SecondTeamPlayers[2];
                teamSelectionViewModel.SecondTeamPlayers[2] = tempBatsman;

                //order = new List<int> { 1, 2, 3, 0, 4, 5, 6, 7, 8, 9, 10 };
                //teamSelectionViewModel.SecondTeamPlayers = order.Select(i => teamSelectionViewModel.SecondTeamPlayers[i]).ToList();
            }
            //else
            //{
            //    var order = new List<int> { 1, 2, 3, 0, 4, 5, 6, 7, 8, 9, 10 };
            //    teamSelectionViewModel.FirstTeamPlayers = order.Select(i => teamSelectionViewModel.FirstTeamPlayers[i]).ToList();


            //    order = new List<int> { 3, 2, 1, 0, 4, 6, 5, 7, 8, 9, 11 };
            //    teamSelectionViewModel.SecondTeamPlayers = order.Select(i => teamSelectionViewModel.SecondTeamPlayers[i]).ToList();
            //}



            return(View("TeamSelection", teamSelectionViewModel));
        }
Exemplo n.º 2
0
        /// <summary>
        ///
        /// </summary>
        /// <returns></returns>
        public ActionResult TeamSelectionInitialize()
        {
            TeamSelectionViewModel teamSelectionViewmodel = new TeamSelectionViewModel();
            //Getting Teams
            StrategyCricketEntities model       = new StrategyCricketEntities();
            List <Team>             teamsFromDB = new List <Team>();

            teamsFromDB = model.Teams.Where(x => x.Team1 != null).ToList();
            teamSelectionViewmodel.Teams = teamsFromDB;

            return(View("TeamSelection", teamSelectionViewmodel));
        }
Exemplo n.º 3
0
        public void writeScoresToFile(GameModel game, int[] result, BatsmenScoreModel[] batsmenScoreModel, BowlerScoreModel[] bowlerScoreModel, string fileName, int target)
        {
            int    sum = 0, wickets = 0, boundaries = 0, sixes = 0, strikerIndex = 0, nonStrikerIndex = 1, overNumber = 0;
            string currentBowler = getCurrentBowler(overNumber, game);

            //Write scores to file


            using (StreamWriter writer = new StreamWriter("D:/" + fileName + ".txt"))
            {
                int Ballcounter = 1;
                foreach (int i in result)
                {
                    writer.Write("Over:" + Ballcounter / 6 + "." + Ballcounter % 6 + " ");


                    if (i != -1)
                    {
                        writer.Write(game.BattingTeam.Players[strikerIndex].Name + " faces " + currentBowler + ". ");
                        writer.WriteLine(i + " Runs scored");
                        sum = sum + i;
                    }


                    if (i == 4)
                    {
                        boundaries++;
                    }
                    if (i == 6)
                    {
                        sixes++;
                    }
                    if (i == -1)
                    {
                        wickets++;
                        writer.Write(game.BattingTeam.Players[strikerIndex].Name + " faces " + currentBowler + ". ");
                        writer.WriteLine("WICKET!!!. " + game.BattingTeam.Players[strikerIndex].Name + " scored " + batsmenScoreModel[strikerIndex].score + " runs");
                        if (wickets <= 9)
                        {
                            strikerIndex = wickets + 1;
                        }
                        else
                        {
                            break;
                        }
                    }

                    if (sum > target)
                    {
                        break;
                    }


                    if (i == 1 || i == 3)
                    {
                        int temp = strikerIndex;
                        strikerIndex    = nonStrikerIndex;
                        nonStrikerIndex = temp;
                    }

                    if (Ballcounter % 6 == 0)
                    {
                        int tempBallcounter = strikerIndex;
                        strikerIndex    = nonStrikerIndex;
                        nonStrikerIndex = tempBallcounter;

                        overNumber    = (Ballcounter / 6);
                        currentBowler = getCurrentBowler(overNumber, game);
                    }

                    Ballcounter++;
                }

                if (wickets <= 9)
                {
                    writer.WriteLine("Batsman " + game.BattingTeam.Players[strikerIndex].Name + " scored " + batsmenScoreModel[strikerIndex].score + " runs");
                }
                writer.WriteLine("Batsman " + game.BattingTeam.Players[nonStrikerIndex].Name + " scored " + batsmenScoreModel[nonStrikerIndex].score + " runs");
                writer.WriteLine("Total : " + sum + "/" + wickets);
                writer.WriteLine("Score Summary:");
                writer.WriteLine("Fours:" + boundaries);
                writer.WriteLine("Sixes:" + sixes);


                //Posting data to DB
                StrategyCricketEntities model       = new StrategyCricketEntities();
                PlayersData             batsmanData = new PlayersData();
                PlayersData             bowlerData  = new PlayersData();


                for (int k = 0; k < batsmenScoreModel.Length && k <= (wickets + 1); k++)
                {
                    writer.WriteLine(game.BattingTeam.Players[k].Name + " " + batsmenScoreModel[k].score + "(" + batsmenScoreModel[k].balls + ")");
                    int Id = game.BattingTeam.Players[k].ID;
                    batsmanData            = model.PlayersDatas.SingleOrDefault(x => x.ID == Id);
                    batsmanData.Runs       = batsmanData.Runs + batsmenScoreModel[k].score;
                    batsmanData.BallsFaced = batsmanData.BallsFaced + batsmenScoreModel[k].balls;
                    if (batsmanData.HighestScore != null)
                    {
                        if (batsmenScoreModel[k].score > batsmanData.HighestScore)
                        {
                            batsmanData.HighestScore = batsmenScoreModel[k].score;
                        }
                    }
                    else
                    {
                        batsmanData.HighestScore = batsmenScoreModel[k].score;
                    }
                    batsmanData.BattingInnings = batsmanData.BattingInnings + 1;
                    model.SaveChanges();
                }

                for (int i = 0; i < bowlerScoreModel.Length; i++)
                {
                    if (bowlerScoreModel[i].runs > 0)
                    {
                        writer.WriteLine(bowlerScoreModel[i].Name + " : " + bowlerScoreModel[i].Overs + "-" + bowlerScoreModel[i].runs + "-" + bowlerScoreModel[i].wickets);
                        int Id = bowlerScoreModel[i].ID;
                        bowlerData         = model.PlayersDatas.SingleOrDefault(x => x.ID == Id);
                        bowlerData.Wickets = bowlerData.Wickets + bowlerScoreModel[i].wickets;
                        bowlerData.Overs   = bowlerData.Overs + bowlerScoreModel[i].Overs;

                        //BestBowling Calculation
                        if (bowlerData.BestBowling != null)
                        {
                            if (bowlerScoreModel[i].wickets >= int.Parse(bowlerData.BestBowling.Split('/')[1]))
                            {
                                if (bowlerScoreModel[i].wickets == int.Parse(bowlerData.BestBowling.Split('/')[1]))
                                {
                                    if (bowlerScoreModel[i].runs < int.Parse(bowlerData.BestBowling.Split('/')[0]))
                                    {
                                        bowlerData.BestBowling = bowlerScoreModel[i].runs + "/" + bowlerScoreModel[i].wickets;
                                    }
                                }
                                else
                                {
                                    bowlerData.BestBowling = bowlerScoreModel[i].runs + "/" + bowlerScoreModel[i].wickets;
                                }
                            }
                        }
                        else
                        {
                            bowlerData.BestBowling = bowlerScoreModel[i].runs + "/" + bowlerScoreModel[i].wickets;
                        }

                        bowlerData.BowlingInnings = bowlerData.BowlingInnings + 1;
                        model.SaveChanges();
                    }
                }

                if (target < int.MaxValue)
                {
                    if (sum > target)
                    {
                        writer.WriteLine("MI won by " + (10 - wickets) + " wickets");
                    }
                    else
                    {
                        writer.WriteLine("CSK won by " + (target - sum) + " runs");
                    }
                }
            }
        }
Exemplo n.º 4
0
        public GameModel InitializeTeams(GameViewModel gameViewModel)
        {
            //Assigment
            List <int> Team_1_BatsmenIds = gameViewModel.Team_1_BatsmenIds;
            List <int> Team_2_BatsmenIds = gameViewModel.Team_2_BatsmenIds;
            List <int> Team_1_BowlerIds  = gameViewModel.Team_1_BowlerIds;
            List <int> Team_2_BowlerIds  = gameViewModel.Team_2_BowlerIds;

            Player             player         = new Player();
            PlayerModel        playerModel    = new PlayerModel();
            List <PlayerModel> team_1_players = new List <PlayerModel>();
            List <PlayerModel> team_2_players = new List <PlayerModel>();

            //EF initialization
            StrategyCricketEntities model = new StrategyCricketEntities();

            foreach (int item in Team_1_BatsmenIds)
            {
                player                       = model.Players.SingleOrDefault(p => p.ID == item);
                playerModel                  = new PlayerModel();
                playerModel.ID               = player.ID;
                playerModel.Name             = player.Name;
                playerModel.Team             = player.Team;
                playerModel.BattingAttribute = player.BattingAttribute;
                playerModel.BowlingAttribute = player.BowlingAttribute;
                playerModel.BowlingOvers     = new List <int>();
                team_1_players.Add(playerModel);
            }

            int over = 0;

            foreach (int id in Team_1_BowlerIds)
            {
                player = model.Players.SingleOrDefault(p => p.ID == id);
                PlayerModel currentPlayer = team_1_players.Find(x => x.Name.Equals(player.Name));
                currentPlayer.BowlingOvers.Add(over);
                over++;
            }

            foreach (int item in Team_2_BatsmenIds)
            {
                player                       = model.Players.SingleOrDefault(p => p.ID == item);
                playerModel                  = new PlayerModel();
                playerModel.ID               = player.ID;
                playerModel.Name             = player.Name;
                playerModel.Team             = player.Team;
                playerModel.BattingAttribute = player.BattingAttribute;
                playerModel.BowlingAttribute = player.BowlingAttribute;
                playerModel.BowlingOvers     = new List <int>();
                team_2_players.Add(playerModel);
            }

            over = 0;
            foreach (int id in Team_2_BowlerIds)
            {
                player = model.Players.SingleOrDefault(p => p.ID == id);
                PlayerModel currentPlayer = team_2_players.Find(x => x.Name.Equals(player.Name));
                currentPlayer.BowlingOvers.Add(over);
                over++;
            }

            TeamModel battingTeam = new TeamModel();
            TeamModel bowlingTeam = new TeamModel();

            battingTeam.Players = team_1_players;
            bowlingTeam.Players = team_2_players;

            GameModel game = new GameModel();

            game.BattingTeam = battingTeam;
            game.BowlingTeam = bowlingTeam;

            return(game);
        }