コード例 #1
0
        public override int GetHashCode()
        {
            int hash = 1;

            if (Id != 0)
            {
                hash ^= Id.GetHashCode();
            }
            if (Team1.Length != 0)
            {
                hash ^= Team1.GetHashCode();
            }
            if (Team2.Length != 0)
            {
                hash ^= Team2.GetHashCode();
            }
            if (Stage.Length != 0)
            {
                hash ^= Stage.GetHashCode();
            }
            if (Tickets != 0)
            {
                hash ^= Tickets.GetHashCode();
            }
            if (Price != 0D)
            {
                hash ^= Price.GetHashCode();
            }
            return(hash);
        }
コード例 #2
0
ファイル: GameLobby.cs プロジェクト: anegronjr/10Bot
        public void PickPlayer(ulong captainID, ulong pickedPlayerID, ulong pickedPlayer2ID = 0)
        {
            var player1 = RemainingPlayers.Where(p => p.DiscordID == pickedPlayerID).First();
            var player2 = RemainingPlayers.Where(p => p.DiscordID == pickedPlayer2ID).FirstOrDefault();

            if (captainID == Captain1.DiscordID)
            {
                Team1.Add(player1);
                RemainingPlayers.Remove(player1);

                if (player2 != null)
                {
                    Team1.Add(player2);
                    RemainingPlayers.Remove(player2);
                }

                PickTurn = 2;
            }
            else if (captainID == Captain2.DiscordID)
            {
                Team2.Add(player1);
                RemainingPlayers.Remove(player1);

                if (player2 != null)
                {
                    Team2.Add(player2);
                    RemainingPlayers.Remove(player2);
                }

                PickTurn = 1;
            }
        }
コード例 #3
0
 protected override void OnTick()
 {
     if (countdown == 6)
     {
         //announcer.Say( String.Format( "The match is {0} v.s. {1}.", m1.Name, m2.Name ) );
         countdown -= 1;
     }
     else if (countdown == 5)
     {
         t.announcer.Say(String.Format("The Match begins in {0}", countdown));
         countdown -= 1;
     }
     else if (countdown == 0)
     {
         t.announcer.Say("FIGHT!");
         foreach (Mobile m in Team1.getOwners())
         {
             m.Paralyzed = false;
         }
         foreach (Mobile m in Team2.getOwners())
         {
             m.Paralyzed = false;
         }
         //announcer.Delete();
     }
     else
     {
         t.announcer.Say(String.Format("{0}", countdown));
         countdown -= 1;
     }
     this.Stop();
 }
コード例 #4
0
        public async Task <IActionResult> Edit(int id, [Bind("Id,Name,Address,StadionID,Seasontickets,Image,Logo,Sponsortext,LigaID")] Team2 team2)
        {
            if (id != team2.Id)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(team2);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!Team2Exists(team2.Id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            ViewData["StadionID"] = new SelectList(_context.Stadion, "StadionID", "Navn", team2.StadionID);
            ViewData["LigaID"]    = new SelectList(_context.Liga, "LigaID", "Navn", team2.LigaID);
            return(View(team2));
        }
コード例 #5
0
ファイル: GameLobby.cs プロジェクト: anegronjr/10Bot
        private void ChooseCaptains()
        {
            //Try to find captains with at least 15 games played...
            var captainPool = Players.Where(p => (p.Wins + p.Losses) >= 5);

            if (captainPool.Count() < 2)
            {
                captainPool = Players;
            }

            //Find at most five of the highest rated players in the Captain pool.
            int num       = Math.Min(captainPool.Count(), 5);
            var orderList = captainPool.OrderByDescending(c => c.SkillRating).Take(num);

            //First captain is randomly chosen.
            int capt1Index = random.Next(orderList.Count());

            Captain1 = orderList.ToList()[capt1Index];

            //Second captain is the player closest in rating to the first captain.
            int indexAbove = capt1Index - 1;
            int indexBelow = capt1Index + 1;

            double skillDiffAbove = double.MaxValue;
            double skillDiffBelow = double.MaxValue;

            var playerAbove = orderList.ElementAtOrDefault(indexAbove);
            var playerBelow = orderList.ElementAtOrDefault(indexBelow);

            if (playerAbove != null)
            {
                skillDiffAbove = Math.Abs(Captain1.SkillRating - playerAbove.SkillRating);
            }
            if (playerBelow != null)
            {
                skillDiffBelow = Math.Abs(Captain1.SkillRating - playerBelow.SkillRating);
            }

            if (skillDiffAbove < skillDiffBelow)
            {
                Captain2 = playerAbove;
            }
            else
            {
                Captain2 = playerBelow;
            }

            //Make sure Captain with lower rating has first pick.
            if (Captain1.SkillRating > Captain2.SkillRating)
            {
                var temp = Captain1;
                Captain1 = Captain2;
                Captain2 = temp;
            }

            //Add captains to their respective teams.
            Team1.Add(Captain1);
            Team2.Add(Captain2);
        }
コード例 #6
0
 public override void OnClosing(object sender, CancelEventArgs e)
 {
     Team1.Shutdown();
     Team2.Shutdown();
     Arduino.CloseConnection();
     UpdateSettings();
     Properties.Settings.Default.Save();
     Dispose();
 }
コード例 #7
0
        public ActionResult InsertTeam(Team2 team)
        {
            if (ModelState.IsValid)
            {
                repo.Repository <Team2>().Add(team);
                repo.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View());
        }
コード例 #8
0
ファイル: GameDto.cs プロジェクト: chronos38/FetchMe
 public override int GetHashCode()
 {
     unchecked
     {
         var hashCode = Date.GetHashCode();
         hashCode = (hashCode * 397) ^ Score1;
         hashCode = (hashCode * 397) ^ Score2;
         hashCode = (hashCode * 397) ^ (Team1?.GetHashCode() ?? 0);
         hashCode = (hashCode * 397) ^ (Team2?.GetHashCode() ?? 0);
         return(hashCode);
     }
 }
コード例 #9
0
ファイル: Match.cs プロジェクト: xSLiveGit/MPP-Client-Server
 public override int GetHashCode()
 {
     unchecked
     {
         var hashCode = Id;
         hashCode = (hashCode * 397) ^ (Team1 != null ? Team1.GetHashCode() : 0);
         hashCode = (hashCode * 397) ^ (Team2 != null ? Team2.GetHashCode() : 0);
         hashCode = (hashCode * 397) ^ (Stage != null ? Stage.GetHashCode() : 0);
         hashCode = (hashCode * 397) ^ Tickets;
         return(hashCode);
     }
 }
コード例 #10
0
ファイル: FightEngine.cs プロジェクト: terrynoya/xnamugen-1
        private void RestoreLifeAndPower(bool pressed)
        {
            if (pressed)
            {
                if (RoundState == RoundState.Fight)
                {
                    Clock.Time = GetSubSystem <InitializationSettings>().RoundLength;

                    Team1.DoAction(PlayerRestore);
                    Team2.DoAction(PlayerRestore);
                }
            }
        }
コード例 #11
0
        public async Task <IActionResult> Create([Bind("Id,Name,Address,StadionID,Seasontickets,Image,Logo,Sponsortext,LigaID")] Team2 team2)
        {
            if (ModelState.IsValid)
            {
                _context.Add(team2);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            ViewData["StadionID"] = new SelectList(_context.Stadion, "StadionID", "Navn", team2.StadionID);
            ViewData["LigaID"]    = new SelectList(_context.Liga, "LigaID", "Navn", team2.LigaID);
            return(View(team2));
        }
コード例 #12
0
        static void ForSureNotMain()
        {
            Console.WriteLine("This is True Main");

            var legendarySquad           = new Team();
            var changedXmlLegendarySquad = new Team2();
            var squad = new List <Player>();

            squad.Add(new Player("Jordan", 23));
            squad.Add(new Player("Pippen", 33));
            squad.Add(new Player("Grant", 54));
            squad.Add(new Player("Cartwright", 24));
            squad.Add(new Player("Paxon", 5));

            legendarySquad.TeamName = "Chicago Bulls 1991";
            legendarySquad.Roster   = squad;

            changedXmlLegendarySquad.TeamName = "Chicago Bulls Again but a bit differ";
            changedXmlLegendarySquad.Roster   = squad;

            var serializer  = new XmlSerializer(legendarySquad.GetType());
            var serializer2 = new XmlSerializer(changedXmlLegendarySquad.GetType());

            // Part 1a

            using (var writer = new StreamWriter(@"a.xml"))
            {
                serializer.Serialize(writer, legendarySquad);
            }

            //Part 1b

            using (var writer = new StreamWriter(@"b.xml"))
            {
                serializer2.Serialize(writer, changedXmlLegendarySquad);
            }

            // Part 2 -> reading file with linq to xml

            Console.WriteLine("Best Duo in basketball history is ");

            var xmlDoc = XDocument.Load(@"a.xml");

            xmlDoc.Descendants("Player")
            .Select(
                p => new Player(p.Element("Name").Value, Int32.Parse(p.Element("JerseyNumber").Value))
                ).Where(p => p.Name == "Jordan" || p.JerseyNumber == 33)
            .ToList()
            .ForEach(p => { Console.WriteLine("Player Name: " + p.Name); });
            Console.ReadLine();
        }
コード例 #13
0
        public override void OverridableLeaveFight(Fighter Fighter)
        {
            // Un persos quitte le combat
            switch (this.FightState)
            {
            case Fights.FightState.STATE_PLACE:     // TODO : Uniquement si kické
                this.Map.SendToMap(new GameFightTeamFlagFightersMessage(new List <Fighter> {
                    Fighter
                }, Fighter.Team.LeaderId, false));

                this.SendToFight(new GameActorDestroyMessage(Fighter.ActorId));

                Fighter.LeaveFight();

                Fighter.Send(new GameLeaveMessage());

                if (Team1.GetAliveFighters().Count == 0 || Team2.GetAliveFighters().Count == 0)
                {
                    FightTeam ft = null;
                    if (Team1.GetAliveFighters().Count == 0)
                    {
                        ft = Team1;
                    }
                    else
                    {
                        ft = Team2;
                    }

                    foreach (var TeamFighter in ft.GetFighters())
                    {
                        TeamFighter.Life = 0;
                    }

                    Fighter.Left = true;

                    this.OverridableEndFight(this.GetEnnemyTeam(ft), ft);
                }
                break;

            case FightState.STATE_ACTIVE:
                if (Fighter.TryDie(Fighter.ActorId, true) != -3)
                {
                    Fighter.LeaveFight();

                    Fighter.Send(new GameLeaveMessage());
                }
                ;
                break;
            }
        }
コード例 #14
0
        public override int GetHashCode()
        {
            int ret = (Title != null) ? Title.GetHashCode() : 0;

            ret  = (ret * 397) ^ ((EpisodeNumber != null) ? EpisodeNumber.GetHashCode() : 0);
            ret  = (ret * 397) ^ ((EpisodeTitle != null) ? EpisodeTitle.GetHashCode() : 0);
            ret  = (ret * 397) ^ ((Synopsis != null) ? Synopsis.GetHashCode() : 0);
            ret  = (ret * 397) ^ ((Team1 != null) ? Team1.GetHashCode() : 0);
            ret  = (ret * 397) ^ ((Team2 != null) ? Team2.GetHashCode() : 0);
            ret  = (ret * 397) ^ SeriesID.GetHashCode();
            ret &= 0x7fffffff;

            return(ret);
        }
コード例 #15
0
ファイル: GameLogic.cs プロジェクト: captnw/PandemicPanicBot
        // Generate two (roughly even) teams from the existing players in Allplayers
        public void GenerateTeam()
        {
            Random rand       = new Random();
            int    counter    = 0;
            int    counterLim = AllPlayers.Count / 2;
            int    randomIndex;

            Console.WriteLine($"Assigning {AllPlayers.Keys.Count} Players...");

            // Reset team states
            Console.WriteLine("Resetting current team...");
            DiscordMember[] keys = new DiscordMember[AllPlayers.Keys.Count];
            AllPlayers.Keys.CopyTo(keys, 0);
            foreach (DiscordMember key in keys)
            {
                Console.WriteLine($"{key.Username}'s being removed from team");
                AllPlayers[key] = -1;
                Console.WriteLine($"{key.Username}'s team has been removed.");
            }
            Console.WriteLine("Clearing team lists");
            Team1.Clear();
            Team2.Clear();

            //Randomly assigns 1 to the Half of all players
            Console.WriteLine($"Team 1 will have {counterLim} Players.");
            while (counter < counterLim)
            {
                randomIndex = rand.Next(AllPlayers.Count);
                DiscordMember key = keys[randomIndex];
                if (AllPlayers[key] == -1)
                {
                    AllPlayers[key] = 1;
                    Team1.Add(key);
                    Console.WriteLine($"{key.Username} has been added to Team 1");
                    counter++;
                }
            }

            //Adds the remaining Users to the Team 2
            Console.WriteLine($"Team 2 will have {AllPlayers.Count - counterLim} Players.");
            foreach (DiscordMember key in keys)
            {
                if (!Team1.Contains(key))
                {
                    AllPlayers[key] = 2;
                    Team2.Add(key);
                    Console.WriteLine($"{key.Username} has been added to Team 2");
                }
            }
        }
コード例 #16
0
ファイル: EnemyHealth.cs プロジェクト: dtbinh/TAFF
    void Awake()
    {
        _navMeshAgent = GetComponent <UnityEngine.AI.NavMeshAgent>();
        anim          = GetComponent <Animator>();

        // enemyAudio = GetComponent<AudioSource>();
        // hitParticles = GetComponentInChildren <ParticleSystem> ();
        // capsuleCollider = GetComponent <CapsuleCollider> ();

        _team1  = GetComponent <Team1>();
        _team2  = GetComponent <Team2>();
        _patrol = GetComponent <enemyPatrol>();

        currentHealth = startingHealth;
    }
コード例 #17
0
 public override int GetHashCode()
 {
     unchecked
     {
         var hashCode = Id.GetHashCode();
         hashCode = (hashCode * 397) ^ (Team1 != null ? Team1.GetHashCode() : 0);
         hashCode = (hashCode * 397) ^ (Team2 != null ? Team2.GetHashCode() : 0);
         hashCode = (hashCode * 397) ^ (int)GameState;
         hashCode = (hashCode * 397) ^ IsComplete.GetHashCode();
         hashCode = (hashCode * 397) ^ (WinningTeam != null ? WinningTeam.GetHashCode() : 0);
         hashCode = (hashCode * 397) ^ IsSimulatedGame.GetHashCode();
         hashCode = (hashCode * 397) ^ CreatedDate.GetHashCode();
         return(hashCode);
     }
 }
コード例 #18
0
ファイル: GameLobby.cs プロジェクト: anegronjr/10Bot
        public void StartMatch()
        {
            var lastPlayer = RemainingPlayers.First();

            if (PickTurn == 1)
            {
                Team1.Add(lastPlayer);
            }
            else
            {
                Team2.Add(lastPlayer);
            }

            RemainingPlayers.Remove(lastPlayer);
            State = GameLobby.LobbyState.Reporting;
        }
コード例 #19
0
        public void Set(EngineInitialization init)
        {
            if (init == null)
            {
                throw new ArgumentNullException("init");
            }

            m_init = init;

            m_stage = new Stage(this, init.Stage);

            Team1.CreatePlayers(init.P1, null);
            Team2.CreatePlayers(init.P2, null);

            GetSubSystem <Random>().Seed(init.Seed);

            Reset();
        }
コード例 #20
0
        public void RemovePlayer(string name)
        {
            foreach (var pl in Team1.ToArray())
            {
                if (pl.Name == name)
                {
                    Team1.Remove(pl);
                }
            }

            foreach (var pl in Team2.ToArray())
            {
                if (pl.Name == name)
                {
                    Team2.Remove(pl);
                }
            }
        }
コード例 #21
0
ファイル: FightEngine.cs プロジェクト: terrynoya/xnamugen-1
        public void Set(EngineInitialization init)
        {
            if (init == null)
            {
                throw new ArgumentNullException(nameof(init));
            }

            Initialization = init;

            Stage = new Stage(this, init.Stage);

            Team1.CreatePlayers(init.Team1Mode, init.Team1P1, init.Team1P2);
            Team2.CreatePlayers(init.Team2Mode, init.Team2P1, init.Team2P2);

            GetSubSystem <Random>().Seed(init.Seed);

            Reset();
        }
コード例 #22
0
ファイル: KozelGame.cs プロジェクト: obstrel/Kozel
        public void StartNewGame()
        {
            Game game = new Game(players);

            Team1.ClearTricks();
            Team2.ClearTricks();
            game.GameFinished        += Game_GameFinished;
            game.ActivePlayerChanged += Game_ActivePlayerChanged;
            game.RoundFinished       += Game_RoundFinished;
            game.RoundStarted        += Game_RoundStarted;
            games.Add(game);
            game.Start();

            if (GameStarted != null)
            {
                GameStarted(this, new EventArgs());
            }
        }
コード例 #23
0
    void FindClosestEnemyforTeam1()
    {
        float distanceToClosestEnemy = Mathf.Infinity;
        Team2 closestEnemy           = null;

        Team2[] allEnemies = GameObject.FindObjectsOfType <Team2>();

        foreach (Team2 currentEnemy in allEnemies)
        {
            float distanceToEnemy = (currentEnemy.transform.position - this.transform.position).sqrMagnitude;
            if (distanceToEnemy < distanceToClosestEnemy)
            {
                distanceToClosestEnemy = distanceToEnemy;
                closestEnemy           = currentEnemy;
            }
        }

        Debug.DrawLine(this.transform.position, closestEnemy.transform.position);
    }
コード例 #24
0
 public void DefenderDies(Character defender)
 {
     if (Team1.Contains(defender))
     {
         Team1.Remove(defender);
         if (Team1.Count <= 0)
         {
             WinnerTeam = Team2;
         }
     }
     if (Team2.Contains(defender))
     {
         Team2.Remove(defender);
         if (Team2.Count <= 0)
         {
             WinnerTeam = Team1;
         }
     }
 }
コード例 #25
0
ファイル: GameLogic.cs プロジェクト: captnw/PandemicPanicBot
 // Stops a game and resets all variables
 public void StopGame()
 {
     StopRoundTimer();
     StopGenericTimer();
     Round               = Team1Score = Team2Score = 0;
     RoundResult         = 0;
     CurrentCurePosition = -1;
     AllPlayers.Clear();
     Team1.Clear();
     Team2.Clear();
     Cure.Clear();
     PlayedMinigames.Clear();
     Team1Lead          = Team2Lead = null;
     VoiceChannel       = null;
     CurrentMinigame    = null;
     RoundInProgress    = GenericTimerActive = false;
     LastColorIndexUsed = -1;
     LastColorUsed      = DiscordColor.None;
 }
コード例 #26
0
        private bool stageUpdateFight()
        {
            List <Character> Team1, Team2;

            (Team1, Team2) = IsHost ? (TeamBlue, TeamRed) : (TeamRed, TeamBlue);
            (Team1, Team2) = (stageManager.CurrentRound & 1) == 0 ? (Team1, Team2) : (Team2, Team1);


            if (Team1.Count(e => !e.IsDead) == 0 || Team2.Count(e => !e.IsDead) == 0)
            {
                stageTimer.endTimer();
                return(true);
            }

            bool updateCanvas = false;

            foreach (Character character in Team1.Where(e => !e.IsDead))
            {
                updateCanvas = character.update() || updateCanvas;
            }

            foreach (Character character in Team2.Where(e => !e.IsDead))
            {
                updateCanvas = character.update() || updateCanvas;
            }


            if (nextTickTime < ElapsedTime)
            {
                nextTickTime = ((ElapsedTime / TICK_INTERVAL) + 1) * TICK_INTERVAL;
                foreach (Character character in Team1.Where(e => !e.IsDead))
                {
                    updateCanvas = character.tick() || updateCanvas;
                }
                foreach (Character character in Team2.Where(e => !e.IsDead))
                {
                    updateCanvas = character.tick() || updateCanvas;
                }
            }

            return(updateCanvas);
        }
コード例 #27
0
    public static void Main()
    {
        var pm    = new ProjectManager();
        var team1 = new Team1();

        pm.SetTeam(team1);
        pm.Run();
        var product1 = team1.GetProduct();

        product1.Show();

        var team2 = new Team2();

        pm.SetTeam(team2);
        pm.Run();
        var product2 = team2.GetProduct();

        product2.Show();

        Console.ReadKey();
    }
コード例 #28
0
        public void StartGame()
        {
            try
            {
                Team1.DopingTest();
                Team2.DopingTest();
            }
            catch (GameException e)
            {
                Console.WriteLine(e.Message);
            }
            try
            {
                CheckCountFootballers();
            }
            catch (GameException e)
            {
                Console.WriteLine(e.Message);
                System.Environment.Exit(1);
            }

            Console.WriteLine($"Матч {Team1.Team_name} - {Team2.Team_name} начался!\n{Team1}\n{Team2}\nСудья матча: {Game_referee.Name}");

            for (int i = 0; i < r.Next(3, 6); i++)
            {
                switch ((Events)r.Next(0, 2))
                {
                case Game.Events.Foul:
                    Foul?.Invoke(this, new GameEventArgs("Это фол, неспортивное поведение!\nСудья показывает желтую карточку\n"));
                    break;

                case Game.Events.Goal:
                    Goal?.Invoke(this, new GameEventArgs("Опасный момент... и... ГОООООЛ!\nСудья показывает на центр поля\n"));
                    break;
                }
            }
        }
コード例 #29
0
        public override string ToString()
        {
            var ss  = TimeVideo / 1000L;
            var m   = ss / 60L;
            var s   = ss % 60L;
            var mss = (TimeVideo % 1000L) / 100;
            var tv  = String.Format("{0}:{1}.{2}", m.ToString("00"), s.ToString("00"), mss.ToString("0"));

            ss  = TimeActual / 1000L;
            m   = ss / 60L;
            s   = ss % 60L;
            mss = (TimeActual % 1000L) / 100;
            var ta = String.Format("{0}:{1}.{2}", m.ToString("00"), s.ToString("00"), mss.ToString("0"));

            try
            {
                return(String.Format("{10}[ID={0}] {1}-{2}-{12} {3} T={4}/{5} P1={6} {7} P2={8} {9} U={11}",
                                     Id,
                                     ActionId,
                                     ActionType,
                                     Half != null ? Half.ToString() : "HALF NOT DEF",
                                     tv,
                                     ta,
                                     Player1 != null ? Player1.ToString() : String.Empty,
                                     Team1 != null ? Team1.ToString() : String.Empty,
                                     Player2 != null ? Player2.ToString() : String.Empty,
                                     Team2 != null ? Team2.ToString() : String.Empty,
                                     FlagDel ? "[DEL] " : "",
                                     user_id,
                                     Win));
            }
            catch
            { }

            return("");
        }
コード例 #30
0
    static void Main(string[] args)
    {
        int          teamsCount = int.Parse(Console.ReadLine());
        List <Team2> teams      = new List <Team2>();

        for (int i = 0; i < teamsCount; i++)
        {
            string[]      newTeam     = Console.ReadLine().Split('-').ToArray();
            List <string> membersList = new List <string>();
            Team2         team        = new Team2();
            team.TeamName    = newTeam[1];
            team.CreatorName = newTeam[0];
            team.Members     = membersList;
            if (!teams.Select(x => x.TeamName).Contains(team.TeamName))
            {
                if (!teams.Select(x => x.CreatorName).Contains(team.CreatorName))
                {
                    teams.Add(team);
                    Console.WriteLine("Team {0} has been created by {1}!", newTeam[1], newTeam[0]);
                }
                else
                {
                    Console.WriteLine("{0} cannot create another team!", team.CreatorName);
                }
            }
            else
            {
                Console.WriteLine("Team {0} was already created!", team.TeamName);
            }
        }

        string teamRegistration = Console.ReadLine();

        while (!teamRegistration.Equals("end of assignment"))
        {
            var    split    = teamRegistration.Split(new char[] { '-', '>' }).ToArray();
            string newUser  = split[0];
            string teamName = split[2];
            if (!teams.Select(x => x.TeamName).Contains(teamName))
            {
                Console.WriteLine("Team {0} does not exist!", teamName);
            }
            else if (teams.Select(x => x.Members).Any(x => x.Contains(newUser)) || teams.Select(x => x.CreatorName).Contains(newUser))
            {
                Console.WriteLine("Member {0} cannot join team {1}!", newUser, teamName);
            }
            else
            {
                int teamToJoinIndex = teams.FindIndex(x => x.TeamName == teamName);
                teams[teamToJoinIndex].Members.Add(newUser);
            }

            teamRegistration = Console.ReadLine();
        }

        var teamsToDisband = teams.OrderBy(x => x.TeamName).Where(x => x.Members.Count == 0);
        var fullTeams      = teams.
                             OrderByDescending(x => x.Members.Count).
                             ThenBy(x => x.TeamName).
                             Where(x => x.Members.Count > 0);

        foreach (var team in fullTeams)
        {
            Console.WriteLine($"{team.TeamName}");
            Console.WriteLine($"- {team.CreatorName}");
            foreach (var member in team.Members.OrderBy(x => x))
            {
                Console.WriteLine($"-- {member}");
            }
        }

        Console.WriteLine("Teams to disband:");
        foreach (var item in teamsToDisband)
        {
            Console.WriteLine(item.TeamName);
        }
    }