Пример #1
0
        /// <summary>Rejoint une partie.</summary>
        /// <param name="nom">Nom du client.</param>
        /// <param name="ip">Adresse IP de l'hôte.</param>
        public Partie(string nom, IPAddress ip)
        {
            reseau = new Reseau(ip);
            Partie hote = reseau.ObtenirPartie();

            // Obtient les informations de la partie de l'hôte
            sabot        = hote.sabot;
            participants = hote.participants;
            initial      = hote.initial;
            min          = hote.min;

            salon = new Salon(this);
            local = Compte;

            // Ajoute les joueurs déjà reçus par l'hôte
            foreach (Joueur joueur in participants)
            {
                salon.AjouterJoueur(joueur);
            }

            Joueur client = new Joueur(nom, initial);

            AjouterJoueur(client);
            reseau.EnvoyerJoueur(client);

            if (Compte < Nombre)
            {
                new Thread(AttendreJoueur)
                {
                    IsBackground = true
                }
            }
Пример #2
0
        /// <summary>Héberge une partie.</summary>
        /// <param name="nom">Nom de l'hôte.</param>
        /// <param name="nombre">Nombre de joueurs dans la partie.</param>
        /// <param name="initial">Montant initial des joueurs.</param>
        /// <param name="min">Mise minimale des joueurs.</param>
        /// <param name="virtuel">Définie si la partie sera jouée avec des joueurs virtuels ou distants.</param>
        /// <exception cref="ArgumentOutOfRangeException">Le nombre de joueur dans la partie doit être entre 1 et 4.</exception>
        /// <exception cref="ArgumentOutOfRangeException">Le montant initial des joueurs doit être plus grand que 0.</exception>
        /// <exception cref="ArgumentOutOfRangeException">La mise minimale des joueurs doit être plus grande que 0.</exception>
        /// <exception cref="ArgumentException">La mise minimale des joueurs doit être plus petite ou égale au montant initial de ceux-ci.</exception>
        public Partie(string nom, int nombre, double initial, double min, bool virtuel)
        {
            salon = new Salon(this);
            NouveauSabot();

            this.initial = initial > 0 ? initial : throw new ArgumentOutOfRangeException("initial", "Le montant initial des joueurs doit être plus grand que 0.");
            this.min     = min > 0 ? min <= initial ? min : throw new ArgumentException("La mise minimale des joueurs doit être plus petite ou égale au montant initial de ceux-ci.", "min") : throw new ArgumentOutOfRangeException("min", "La mise minimale des joueurs doit être plus grande que 0.");
            local        = HOTE;

            Joueur hote = new Joueur(nom, initial);

            // Initialise la liste de participants avec une taille du nombre de joueurs voulues + 1 pour le croupier
            participants = new List <Participant>(nombre > 0 && nombre <= 4 ? nombre + 1 : throw new ArgumentOutOfRangeException("nombre", "Le nombre de joueur dans la partie doit être entre 1 et 4."));
            AjouterJoueur(hote);

            if (virtuel)
            {
                while (Compte < nombre)
                {
                    AjouterJoueur(new JoueurVirtuel("Joueur virtuel " + Compte, initial));
                }
            }

            if (Compte < nombre)
            {
                reseau = new Reseau();
                new Thread(AttendreJoueur)
                {
                    IsBackground = true
                }.Start();
            }
            else
            {
                AjouterCroupier();
                Jouer();
            }
        }