public Simulator( ITeamChooser teamChooser, IAllTeamsChooser allTeamsChooser ) { TeamChooser = teamChooser; AllTeamsChooser = allTeamsChooser; initializePlayers( NUM_PLAYERS ); }
/// <summary> /// /// </summary> /// <param name="teamChooser"></param> /// <param name="seedChooser"></param> public SimpleAllTeamsChooser( ITeamChooser teamChooser, ISeedChooser seedChooser ) { if ( teamChooser != null ) TeamChooser = teamChooser; else throw new NullReferenceException(); if ( seedChooser != null ) SeedChooser = seedChooser; else SeedChooser = new SimpleSeedChooser(); }
/// <summary> /// /// </summary> /// <param name="players"></param> /// <param name="teamChooser"></param> /// <param name="seedChooser"></param> /// <param name="playersPerTeam"></param> /// <returns></returns> private List<Tuple<Team, Team>> chooseAllTeams( List<Player> players, ITeamChooser teamChooser, ISeedChooser seedChooser, int playersPerTeam ) { List<Tuple<Team, Team>> games = new List<Tuple<Team, Team>>(); List<Player> t = new List<Player>( players ); List<Player> played = new List<Player>(); int count = 0; seedChooser.Initialize(); while ( t.Count >= 2 * playersPerTeam ) { Player seed = seedChooser.ChooseSeed( t ); if ( seed != null ) { Tuple<Team, Team> game = teamChooser.ChooseTeams( t, seed, playersPerTeam ); count++; if ( game == null || isEmptyGame( game ) ) { seedChooser.IgnorePlayer( seed ); continue; } games.Add( game ); foreach ( Player p in game.Item1.Players ) { if ( played.Contains( p ) ) Console.WriteLine( "Bad!" ); t.Remove( p ); played.Add( p ); } foreach ( Player p in game.Item2.Players ) { if ( played.Contains( p ) ) Console.WriteLine( "Bad!" ); t.Remove( p ); played.Add( p ); } } } return games; }
public SummaryForm(IEnumerable <ScorablePlayer> sps, IEnumerable <ScorablePlayer> keepers, ITeamChooser itc) { this.Icon = Properties.Resources.golf; InitializeComponent(); chooser = itc; this.sps = sps; this.keepers = keepers; //TODO: This needs a splash screen dgvslots = new DataGridView[tabControl1.TabCount + 1]; dgvslots[0] = null; dgvslots[1] = dataGridView1; dgvslots[2] = dataGridView2; dgvslots[3] = dataGridView3; dgvslots[4] = dataGridView4; dgvslots[5] = dataGridView5; slot = 0; }