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$"; }
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; }