예제 #1
0
 public Team(string name, IList <Player> players, CourtSide side, int setsWon)
 {
     Name    = name;
     Players = players;
     Side    = side;
     SetsWon = setsWon;
 }
예제 #2
0
 public Move(Player player, Action action, CourtSide side, int setNumber, int zone, string teamName)
 {
     Player    = player;
     Action    = action;
     Side      = side;
     SetNumber = setNumber;
     Zone      = zone;
     TeamName  = teamName;
 }
예제 #3
0
        private void EndSet()
        {
            if (_firstTeamSide == CourtSide.Left)
            {
                SetScoreLabel.Content = $"{_firstTeamSetScore} - {_secondTeamSetScore}";
            }
            else
            {
                SetScoreLabel.Content = $"{_secondTeamSetScore} - {_firstTeamSetScore}";
            }

            if (_firstTeamSetScore >= 3 || _secondTeamSetScore >= 3)
            {
                NavigationService.Navigate(new AnalysisPage(new Match(
                                                                new Team(_firstTeamName, _firstTeamPlayers, _firstTeamSide, _firstTeamSetScore),
                                                                new Team(_secondTeamName, _secondTeamPlayers, _secondTeamSide, _secondTeamSetScore), MatchMoves)));
                return;
            }

            _firstTeamSide   = _firstTeamSide == CourtSide.Left ? CourtSide.Right : CourtSide.Left;
            _secondTeamSide  = _secondTeamSide == CourtSide.Left ? CourtSide.Right : CourtSide.Left;
            _firstTeamScore  = 0;
            _secondTeamScore = 0;

            _currentSet++;
            SetZoneNumbers(_firstTeamPlayers, _firstTeamSide);
            SetZoneNumbers(_secondTeamPlayers, _secondTeamSide);

            if (_firstTeamSide == CourtSide.Left)
            {
                LeftTeamLabel.Content  = _firstTeamName;
                RightTeamLabel.Content = _secondTeamName;
                ScoreLabel.Content     = $"{_firstTeamScore} - {_secondTeamScore}";
                SetScoreLabel.Content  = $"{_firstTeamSetScore} - {_secondTeamSetScore}";
            }
            else
            {
                LeftTeamLabel.Content  = _secondTeamName;
                RightTeamLabel.Content = _firstTeamName;
                ScoreLabel.Content     = $"{_secondTeamScore} - {_firstTeamScore}";
                SetScoreLabel.Content  = $"{_secondTeamSetScore} - {_firstTeamSetScore}";
            }
        }
예제 #4
0
 private void SetZoneNumbers(IList <Player> players, CourtSide side)
 {
     if (side == CourtSide.Left)
     {
         LeftZoneOne.Content   = GetPlayer(players, 1).JerseyNumber;
         LeftZoneTwo.Content   = GetPlayer(players, 2).JerseyNumber;
         LeftZoneThree.Content = GetPlayer(players, 3).JerseyNumber;
         LeftZoneFour.Content  = GetPlayer(players, 4).JerseyNumber;
         LeftZoneFive.Content  = GetPlayer(players, 5).JerseyNumber;
         LeftZoneSix.Content   = GetPlayer(players, 6).JerseyNumber;
     }
     else
     {
         RightZoneOne.Content   = GetPlayer(players, 1).JerseyNumber;
         RightZoneTwo.Content   = GetPlayer(players, 2).JerseyNumber;
         RightZoneThree.Content = GetPlayer(players, 3).JerseyNumber;
         RightZoneFour.Content  = GetPlayer(players, 4).JerseyNumber;
         RightZoneFive.Content  = GetPlayer(players, 5).JerseyNumber;
         RightZoneSix.Content   = GetPlayer(players, 6).JerseyNumber;
     }
 }
예제 #5
0
 public Move(Player player, CourtSide side, int zone)
 {
     Player = player;
     Side   = side;
     Zone   = zone;
 }
예제 #6
0
        private void MenuItemAction_Click(object sender, RoutedEventArgs e)
        {
            var move = (Move)((MenuItem)sender).Tag;

            MatchMoves.Add(move);

            MatchMovesListView.Items.Add(new ListViewItem {
                Content = move.ToString(), Tag = move
            });

            if (move.Action == Action.ServisSuccess || move.Action == Action.ServisFail)
            {
                _currentServeSide = move.Side;
            }

            if (!move.IsSuccess)
            {
                if (move.Side == _firstTeamSide)
                {
                    _secondTeamScore++;
                }
                else
                {
                    _firstTeamScore++;
                }

                if (move.Side == CourtSide.Left)
                {
                    RightTeamLabel.FontWeight = FontWeights.Bold;
                    LeftTeamLabel.FontWeight  = FontWeights.Normal;
                }
                else
                {
                    RightTeamLabel.FontWeight = FontWeights.Normal;
                    LeftTeamLabel.FontWeight  = FontWeights.Bold;
                }

                ScoreLabel.Content = _firstTeamSide == CourtSide.Left
                    ? $"{_firstTeamScore} - {_secondTeamScore}"
                    : $"{_secondTeamScore} - {_firstTeamScore}";

                if (_firstTeamScore >= 25 && (_firstTeamScore - _secondTeamScore) > 1)
                {
                    _firstTeamSetScore++;
                    EndSet();
                }
                else if (_secondTeamScore >= 25 && (_secondTeamScore - _firstTeamScore) > 1)
                {
                    _secondTeamSetScore++;
                    EndSet();
                }

                if (move.Side == _currentServeSide)
                {
                    if (_firstTeamSide == move.Side)
                    {
                        RotatePlayers(_secondTeamPlayers);
                        SetZoneNumbers(_secondTeamPlayers,
                                       move.Side == CourtSide.Left ? CourtSide.Right : CourtSide.Left);
                    }
                    else
                    {
                        RotatePlayers(_firstTeamPlayers);
                        SetZoneNumbers(_firstTeamPlayers,
                                       move.Side == CourtSide.Left ? CourtSide.Right : CourtSide.Left);
                    }
                }
            }
        }