/// <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 } }
/// <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(); } }