Beispiel #1
0
        /// <summary>
        /// 
        /// </summary>
        /// <param name="aPlayers"></param>
        public Score(Player[] aPlayers, int nbPlayer)
        {
            Player1 = aPlayers[0].Name;
            Score1 = aPlayers[0].GrandTotal;

            Player2 = aPlayers[1].Name;
            Score2 = aPlayers[1].GrandTotal;

            if (nbPlayer > 2)
            {
                Player3 = aPlayers[2].Name;
                Score3 = aPlayers[2].GrandTotal;
            }
            else
            {
                Player3 = "";
                Score3 = 0;
            }

            if (nbPlayer > 3)
            {
                Player4 = aPlayers[3].Name;
                Score4 = aPlayers[3].GrandTotal;
            }
            else
            {
                Player4 = "";
                Score4 = 0;
            }
        }
Beispiel #2
0
 public ViewModelGame()
 {
     _nextPlayerCommand = new DelegateCommand(ExecuteNextPlayerCommand);
             _clickRollCommand = new DelegateCommand(ExecuteClickRollCommand);
             _clickDiceCommand = new DelegateCommand(ExecuteClickDiceCommand);
             _clickScoreCommand = new DelegateCommand(ExecuteClickScoreCommand);
             _iPlayer = 0;
             _nbLaps = 0;
             //_selectedPlayer = new Player();
             ListPlayers = new Player[4];
 }
Beispiel #3
0
 private void DetachPlayer(Player player)
 {
     player.Game = null;
     OnPropertyChanged("Players");
 }
Beispiel #4
0
 private void AttachPlayer(Player player)
 {
     player.Game = this;
     OnPropertyChanged("Players");
 }
Beispiel #5
0
 private void calculateScorePlayer(Player player)
 {
     // Calcul des totaux
         player.TotalScore = player.calculateTotalScore();
         player.TotalUpperSection = player.calculateTotalUpperSection();
         player.TotalLowerSection = player.calculateTotalLowerSection();
         player.GrandTotal = player.calculateGrandTotal();
 }
Beispiel #6
0
        /// <summary>
        ///     Action lors de la sélection d'une combinaison
        /// </summary>
        /// <param name="parametre">La combinaison sélectionnée</param>
        protected virtual void ExecuteClickScoreCommand(object parametre)
        {
            SelectedCombination = parametre as Combination;

                // On bloque la combinaison sélectionnée pour qu'elle ne puisse plus être jouée
                SelectedCombination.IsNotFilled = false;

                // Remise à zéro des autres combinaisons
                foreach (Combination c in _selectedPlayer.Combinations)
                    {
                        if (SelectedCombination.Name != c.Name && c.IsNotFilled == true)
                        {
                            c.Value = 0;
                        }
                    }

                // Passage au joueur suivant
                if (IPlayer < NbPlayer - 1 )
                {
                    IPlayer++;
                }
                else
                {
                    IPlayer = 0;

                    // Incrémentation du nombre de tour effectués
                    NbLaps++;
                }

                // Passage au joueur suivant tant que toutes les combinaisons ne sont pas jouées
                if (NbLaps < 13)
                {
                    calculateScorePlayer(SelectedPlayer);

                    SelectedPlayer = ListPlayers[IPlayer];

                    // On initialise un nouveau tour pour le prochain joueur
                    initSelectedPlayer();
                }
                else
                {
                    //TODO 1 : Affichage d'une nouvelle page avec le tableau des scores + les totaux
                    //TODO 2 : Ajout d'un bouton "Rejouer"

                    List<Player> winners = new List<Player>();  // Liste des gagnants (plusieurs si égalité)

                    foreach (Player player in Game.Players)
                    {
                        calculateScorePlayer(player);

                        // Sauvegarde du/des gagnant(s)
                        if (winners.Count() == 0)
                        {
                            winners.Add(player);
                        }
                        else
                        {
                            if (winners[winners.Count() - 1].GrandTotal <= player.GrandTotal)
                            {
                                // On vide la liste si le nouveau total est supérieur à l'ancien
                                if (winners[winners.Count() - 1].GrandTotal < player.GrandTotal)
                                {
                                    winners.Clear();
                                }
                                winners.Add(player);
                            }
                        }
                    }

                    // Affichage d'un message donnant le(s) nom(s) du/des gagnant(s) et son/leur score
                    String message = "";

                    if (winners.Count() == 1)
                    {
                        message = "\"" + winners[0].Name + "\" a gagné avec " + winners[0].GrandTotal + " points !";
                    }
                    else
                    {
                        message = "Egalité ! ";
                        for (int i = 0; i < winners.Count(); i++)
                        {
                            message += "\"" + winners[i].Name + "\", ";
                        }
                        message += " ont gagné avec " + winners[0].GrandTotal + " points !";
                    }

                    var result = MessageBox.Show(message, "Partie terminée", MessageBoxButton.OKCancel);

                    // Sauvegarde du Score en BDD

                    Score s = new Score(ListPlayers, _nbPlayer);

                    YahtzeeDataContext.Instance.Score.InsertOnSubmit(s);

                    try
                    {
                        YahtzeeDataContext.Instance.SubmitChanges();
                    }
                    catch (Exception e)
                    {

                        throw;
                    }

                    int nb = YahtzeeDataContext.Instance.Score.Count();

                    // Si le bouton OK est sélectionné, on affiche la page des scores
                    if (result == MessageBoxResult.OK)
                    {
                        App.RootFrame.GoBack();
                    }

                }
        }
Beispiel #7
0
        /// <summary>
        ///     Méthode de chargement des données au début du jeu
        /// </summary>
        /// <param name="nbPlayer">Nombre de joueurs</param>
        /// <param name="pseudo1">Pseudo du joueur 1</param>
        /// <param name="pseudo2">Pseudo du joueur 2</param>
        /// <param name="pseudo3">Pseudo du joueur 3</param>
        /// <param name="pseudo4">Pseudo du joueur 4</param>
        public void LoadData(int nbPlayer, string pseudo1, string pseudo2, string pseudo3, string pseudo4)
        {
            NbPlayer = nbPlayer;
                ListPlayers[0] = new Player(pseudo1);
                ListPlayers[1] = new Player(pseudo2);

                if (nbPlayer > 2)
                {
                    ListPlayers[2] = new Player(pseudo3);

                    if (nbPlayer > 3)
                    {
                        ListPlayers[3] = new Player(pseudo4);
                    }
                }

                _selectedPlayer = ListPlayers[0];

                this.Game = new Models.Game();
                this.Game.Players.AddRange(_listPlayers.Where( p => p != null));

                this.initSelectedPlayer();
        }