Ejemplo n.º 1
0
        public MainWindow()
        {
            InitializeComponent();

            // init values
            _greedyGame             = null;
            _player                 = null;
            _maximumRequiredPlayers = 0;
            _minimumRequiredPlayers = 0;

            _nameLabels = new List <Label>();
            _nameLabels.Add(player1Name);
            _nameLabels.Add(player2Name);
            _nameLabels.Add(player3Name);
            _nameLabels.Add(player4Name);
            _nameLabels.Add(player5Name);
            _nameLabels.Add(player6Name);
            _nameLabels.Add(player7Name);

            _lastPickLabels = new List <Label>();
            _lastPickLabels.Add(player1LastPick);
            _lastPickLabels.Add(player2LastPick);
            _lastPickLabels.Add(player3LastPick);
            _lastPickLabels.Add(player4LastPick);
            _lastPickLabels.Add(player5LastPick);
            _lastPickLabels.Add(player6LastPick);
            _lastPickLabels.Add(player7LastPick);

            _statusLabels = new List <Label>();
            _statusLabels.Add(player1Status);
            _statusLabels.Add(player2Status);
            _statusLabels.Add(player3Status);
            _statusLabels.Add(player4Status);
            _statusLabels.Add(player5Status);
            _statusLabels.Add(player6Status);
            _statusLabels.Add(player7Status);

            _playerRectangles = new List <Rectangle>();
            _playerRectangles.Add(player1Tile);
            _playerRectangles.Add(player2Tile);
            _playerRectangles.Add(player3Tile);
            _playerRectangles.Add(player4Tile);
            _playerRectangles.Add(player5Tile);
            _playerRectangles.Add(player6Tile);
            _playerRectangles.Add(player7Tile);

            _optionsRadioButtons = new List <RadioButton>();
            _optionsRadioButtons.Add(option1RadioButton);
            _optionsRadioButtons.Add(option2RadioButton);
            _optionsRadioButtons.Add(option3RadioButton);
            _optionsRadioButtons.Add(option4RadioButton);

            // hide the options panel
            HideOptionsPanel_();
        }
Ejemplo n.º 2
0
        // ---------------------------------------------------------------------
        // HELPERS
        // ---------------------------------------------------------------------
        #region HELPERS

        private void ConnectToService_(string clientName)
        {
            try
            {
                // Configure the ABCs
                DuplexChannelFactory <IGreedyGame> channel = new DuplexChannelFactory <IGreedyGame>(this, "GreedyGameService");
                // Connect to the endpoint
                _greedyGame = channel.CreateChannel();
                var response = _greedyGame.Join(clientName);
                switch (response.Item1)
                {
                case JoinResponseCode.GameIsFull:
                    MessageBox.Show("Game is full", "Error");
                    _greedyGame      = null;
                    nameTextBox.Text = "";
                    break;

                case JoinResponseCode.GameIsStarted:
                    MessageBox.Show("Game is already started", "Error");
                    _greedyGame      = null;
                    nameTextBox.Text = "";
                    break;

                case JoinResponseCode.NameIsInvalid:
                    MessageBox.Show("Name is invalid", "Error");
                    _greedyGame      = null;
                    nameTextBox.Text = "";
                    break;

                case JoinResponseCode.NameIsUsed:
                    MessageBox.Show("Name is already used", "Error");
                    _greedyGame      = null;
                    nameTextBox.Text = "";
                    break;

                case JoinResponseCode.Accept:
                    // set player
                    _player = response.Item2;

                    // disable join function
                    nameTextBox.Text      = _player.Name;
                    nameTextBox.IsEnabled = joinButton.IsEnabled = false;

                    // setup the slider
                    targetScoreSlider.Minimum = _greedyGame.MinimumTargetScore;
                    targetScoreSlider.Maximum = _greedyGame.MaximumTargetScore;

                    // retrieve the game state
                    // update the UI:
                    //  - control panels
                    //  - live update board

                    _maximumRequiredPlayers = _greedyGame.MaximumRequiredPlayers;
                    _minimumRequiredPlayers = _greedyGame.MinimumRequiredPlayers;
                    break;
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Error");
            }
        }