Exemplo n.º 1
0
        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;
        }
Exemplo n.º 4
0
        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;
        }