コード例 #1
0
        private void DisplayOptimalRoster()
        {
            this._roster = this.GetOptimalRoster();

            txtLW.Text = this._roster.LeftWing.ToString();
            txtC.Text = this._roster.Center.ToString();
            txtRW.Text = this._roster.RightWing.ToString();
            txtD1.Text = this._roster.Defenseman1.ToString();
            txtD2.Text = this._roster.Defenseman2.ToString();
            txtG.Text = this._roster.Goaltender.ToString();

            txtPoints.Text = this._roster.Points + " pts";
            txtSalary.Text = this._roster.Salary + "M$";
        }
コード例 #2
0
        private Roster GetOptimalRoster()
        {
            Roster bestRoster = null;

            List<Player> leftWings = new List<Player>();
            List<Player> centers = new List<Player>();
            List<Player> rightWings = new List<Player>();
            List<Player> defensemen1 = new List<Player>();
            List<Player> defensemen2 = new List<Player>();
            List<Player> goaltenders = new List<Player>();

            double salaryCap = (double)nudSalaryCap.Value;

            if (_roster != null && _roster.LeftWing != null && _roster.LeftWing.Picked)
            {
                leftWings.Add(_roster.LeftWing);
            }
            else
            {
                leftWings = _dataSource.LeftWings.Where(lw => lw.Available == true).ToList();
            }

            if (_roster != null && _roster.Center != null && _roster.Center.Picked)
            {
                centers.Add(_roster.Center);
            }
            else
            {
                centers = _dataSource.Centers.Where(c => c.Available == true).ToList();
            }

            if (_roster != null && _roster.RightWing != null && _roster.RightWing.Picked)
            {
                rightWings.Add(_roster.RightWing);
            }
            else
            {
                rightWings = _dataSource.RightWings.Where(rw => rw.Available == true).ToList();
            }

            if (_roster != null && _roster.Defenseman1 != null && _roster.Defenseman1.Picked)
            {
                defensemen1.Add(_roster.Defenseman1);
            }
            else
            {
                defensemen1 = _dataSource.Defensemen.Where(d1 => d1.Available == true).ToList();
            }

            if (_roster != null && _roster.Defenseman2 != null && _roster.Defenseman2.Picked)
            {
                defensemen2.Add(_roster.Defenseman2);
            }
            else
            {
                defensemen2 = _dataSource.Defensemen.Where(d2 => d2.Available == true).ToList();
            }

            if (_roster != null && _roster.Goaltender != null && _roster.Goaltender.Picked)
            {
                goaltenders.Add(_roster.Goaltender);
            }
            else
            {
                goaltenders = _dataSource.Goaltenders.Where(g => g.Available == true).ToList();
            }

            foreach (Player leftWing in leftWings)
            {
                foreach (Player center in centers)
                {
                    foreach (Player rightWing in rightWings)
                    {
                        foreach (Player defenseman1 in defensemen1)
                        {
                            foreach (Player defenseman2 in defensemen2)
                            {
                                if (defenseman1.Name != defenseman2.Name)
                                {
                                    foreach (Player goaltender in goaltenders)
                                    {
                                        Roster roster = new Roster();
                                        roster.LeftWing = leftWing;
                                        roster.Center = center;
                                        roster.RightWing = rightWing;
                                        roster.Defenseman1 = defenseman1;
                                        roster.Defenseman2 = defenseman2;
                                        roster.Goaltender = goaltender;

                                        if (roster.Salary <= salaryCap && (bestRoster == null || roster.Points > bestRoster.Points))
                                        {
                                            bestRoster = roster;
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }

            return bestRoster;
        }