コード例 #1
0
        public static FantasyTeam RunOptimizer(Player playerUpForAuction)
        {
            FantasyTeam mock = new FantasyTeam("mock");

            foreach(string key in Brain.MyDraft.MyTeam.PercentageBudgetsByPosition.Keys)
            {
                mock.PercentageBudgetsByPosition.Add(key, Brain.MyDraft.MyTeam.PercentageBudgetsByPosition[key]);
            }
            
            foreach (Player p in Brain.MyDraft.MyTeam.Roster)
            {
                mock.addMockPlayer(p);
            }

            if(playerUpForAuction != null)
            {
                mock.addMockPlayer(playerUpForAuction);
            }

            foreach (string position in new string[]{"K","DST","TE","QB","RB","WR"})
            {
                int numberPositionRosterSpots = mock.Roster.Count(p => p.Position.Equals(position));
                OptimizePosition(mock, position, numberPositionRosterSpots);
            }

            return mock;
        }
コード例 #2
0
        public void DraftPlayer(Player draftedPlayer, FantasyTeam draftingTeam)
        {
            //string playerInfo = draftedPlayer.Full + ", " + draftedPlayer.Position + " - $" + draftedPlayer.Dollar;

            //int moneyAfterDrafting = draftingTeam.MoneyLeft - (16 - (Brain.myTeam.Roster.Count + 1) + draftedPlayer.Dollar);
            //bool canAffordToDraft = moneyAfterDrafting >= 0;

            //if (!canAffordToDraft)
            //{
            //    MessageBox.Show("Not Enough $$$");
            //}
            //else
            //{
            //    Brain.myTeam.addPlayer(draftedPlayer);

            //    if (Brain.lastFivePlayersDrafted.Count == 5)
            //    {
            //        Brain.lastFivePlayersDrafted.Remove(Brain.lastFivePlayersDrafted.ElementAt(0));
            //        Brain.lastFivePlayersDrafted.Add(draftedPlayer);
            //    }
            //    else
            //    {
            //        Brain.lastFivePlayersDrafted.Add(draftedPlayer);
            //    }
            //}
        }
コード例 #3
0
        public void addMockPlayer(Player p)
        {
            if (p.First != null)
            {
                Roster.Add(p);
                MoneyLeft -= p.Dollar;
                ProjectedTotal += p.Points;

                int budgetPercentage = PercentageBudgetsByPosition[p.Position];

                int dollarsLeft = GetMockBudgetDollarForPosition(p.Position);
                double dollarsAfterDraft = dollarsLeft - p.Dollar;

                if(dollarsAfterDraft < 0)
                {
                    AdjustedCap += (int)dollarsAfterDraft;
                    PercentageBudgetsByPosition[p.Position] = 0;
                }
                else
                {
                    int newBudget = (int)(dollarsAfterDraft * 100 / Brain.MyDraft.LeagueSalarayCap);
                    PercentageBudgetsByPosition[p.Position] = newBudget;
                }
            }
        }
コード例 #4
0
        public void addPlayer(Player playerToBeAdded)
        {
            if(playerToBeAdded.First != null)
            {
                if(!CanAfford(playerToBeAdded))
                {
                    MessageBox.Show("Not Enough Money!");
                    return;
                }

                Roster.Add(playerToBeAdded);
                MoneyLeft -= playerToBeAdded.Dollar;
                ProjectedTotal += playerToBeAdded.Points;
            }
        }
コード例 #5
0
        private void playerBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            if(playerBox.SelectedItem != null)
            {
                string selected = playerBox.SelectedItem.ToString();

                string name = selected.Substring(0, selected.IndexOf(','));

                current = copy.First(s => s.Full.Equals(name));

                moneyBox.Text = current.Dollar.ToString();
                pointsBox.Text = current.Points.ToString();

                starCheck.IsChecked = current.Star;
            }
        }
コード例 #6
0
        public OptimalWindow(Player player = null)
        {
            InitializeComponent();
            WindowStartupLocation = System.Windows.WindowStartupLocation.CenterScreen;
            this.Width = System.Windows.SystemParameters.PrimaryScreenWidth;
            this.Height = System.Windows.SystemParameters.PrimaryScreenHeight - 30;

            InitializeTeamBox();
            
            mockTeam = RunOptimizer(player);

            foreach(Player play in mockTeam.Roster)
            {
                AddPlayerToTeamBox(play);
            }

           // DisplayStatistics();
        }
コード例 #7
0
        private void refresh()
        {
            current = new Player();
            moneyBox.Text = string.Empty;
            pointsBox.Text = string.Empty;

            starCheck.IsChecked = false;
            srcBox.Text = string.Empty;
            searchButton.Content = "Search";
            clear = false;

            pBoxRefresh();
        }
コード例 #8
0
        public void updateTeamBox(Player p, FantasyTeam team)
        {
            string playerPosition = p.Position;

            IEnumerable<Label> correspondingLabels = panelTeam.Children.OfType<Label>().Where(label => label.Content.ToString().StartsWith(playerPosition));
            Label nextOpenSlot = correspondingLabels.FirstOrDefault(lab => lab.Content.ToString().Split('-')[1].Length == 0);

            if (nextOpenSlot != null)
            {
                nextOpenSlot.Content += p.toTeam();

                Label projectedTotalLabel = panelTeam.Children.OfType<Label>().First(label => label.Name.Equals("projTotal"));
                projectedTotalLabel.Content = "Proj. Total - " + team.ProjectedTotal + " pts";
            }
            else
            {
                IEnumerable<Label> benchSlots = panelTeam.Children.OfType<Label>().Where(label => label.Content.ToString().StartsWith("BENCH"));
                nextOpenSlot = benchSlots.FirstOrDefault(lab => lab.Content.ToString().Length == 8);

                if (nextOpenSlot != null)
                {
                    nextOpenSlot.Content += p.toTeam();
                }
            }
        }
コード例 #9
0
        public void UpdateTeamBox(Player player)
        {
            StackPanel panelTeam = current.teamPanel;

            string playerPosition = player.Position;

            IEnumerable<Label> correspondingLabels = panelTeam.Children.OfType<Label>().Where(label => label.Content.ToString().StartsWith(playerPosition));
            string first = correspondingLabels.First().Content.ToString();
            
            Label nextOpenSlot = correspondingLabels.FirstOrDefault(lab => lab.Content.ToString().Split('-')[1].Length == 1);

            if (nextOpenSlot != null)
            {
                nextOpenSlot.Content += player.toTeam();

                Label projectedTotalLabel = panelTeam.Children.OfType<Label>().First(label => label.Name.Equals("projTotal"));
                projectedTotalLabel.Content = "Proj. Total - " + Brain.MyDraft.MyTeam.ProjectedTotal + " pts";
            }
            else
            {
                IEnumerable<Label> benchSlots = panelTeam.Children.OfType<Label>().Where(label => label.Content.ToString().StartsWith("BENCH"));
                nextOpenSlot = benchSlots.FirstOrDefault(lab => lab.Content.ToString().Split('-')[1].Length == 1);

                if (nextOpenSlot != null)
                {
                    nextOpenSlot.Content += player.toTeam();
                }
            }
        }
コード例 #10
0
        public void putPlayerUpForAuction(Player temp, double suggested)
        {
            Player currentPlayer = Brain.MyDraft.CurrentPlayerUpForAuction;

            current.upForLabel.Content = currentPlayer.Full + ", " + currentPlayer.Position;
            current.upForPanel.Opacity = 0;
            current.upForPanel.Visibility = Visibility.Visible;
            current.suggestedLabel.Content = "$" + suggested;

            GUI_Animations.Fade_In_Control(current.upForPanel, 600);
        }
コード例 #11
0
        public void updateLabels(Player temp)
        {
            current.nameLabel.Content = temp.Full + " - " + temp.Position;
            current.teamLabel.Content = temp.Club;
            current.dollarLabel.Content = "$" + temp.Dollar;

            int projectedPoints = temp.Points;

            double ppd = 0;

            if (temp.Dollar > 0)
            {
                ppd = projectedPoints / temp.Dollar;
            }

            current.ppdLabel.Content = "PPD - " + ppd;

            current.pointsLabel.Content = "PTS - " + projectedPoints;
        }
コード例 #12
0
        public void AddPlayerToTeamBox(Player playerToBeAdded)
        {
            string position = playerToBeAdded.Position;

            IEnumerable<Label> corresponding = panelTeam.Children.OfType<Label>().Where(label => label.Content.ToString().StartsWith(position));

            Label nextSlot = corresponding.FirstOrDefault(lab => lab.Content.ToString().Length < 7);

            if (nextSlot != null)
            {
                nextSlot.Content += playerToBeAdded.toTeam();

                Label projected = panelTeam.Children.OfType<Label>().Last();
                projected.Content = "Proj. Total - " + mockTeam.ProjectedTotal + " pts";
            }
            else
            {
                IEnumerable<Label> benchSlots = panelTeam.Children.OfType<Label>().Where(label => label.Content.ToString().StartsWith("BENCH"));
                nextSlot = benchSlots.FirstOrDefault(lab => lab.Content.ToString().Length == 8);

                if (nextSlot != null)
                {
                    nextSlot.Content += playerToBeAdded.toTeam();
                }
            }
        }
コード例 #13
0
 private bool CanAfford(Player player)
 {
     return (player.Dollar + (16 - Roster.Count) < MoneyLeft);
 }