示例#1
0
 /// <summary>
 /// Initialisation du bot : comprend la phase de connection
 /// </summary>
 /// <param name="serveur"></param>
 /// <param name="nom"></param>
 /// <returns></returns>
 public void Initialiser(IServeur serveur, Guid identifiantConnexion, Joueur bot, List <Joueur> listeJoueurs)
 {
     _bot                   = bot;
     _serveur               = serveur;
     _listeJoueurs          = listeJoueurs;
     _identifiantConnection = identifiantConnexion;
 }
示例#2
0
 public void DettachMaitreHotel(IServeur maitreHotel)
 {
     if (this.observersChefRang.Contains(maitreHotel))
     {
         this.observersChefRang.Add(maitreHotel);
     }
 }
示例#3
0
 public void DettachChefRang(IServeur chefRang)
 {
     if (this.observersChefRang.Contains(chefRang))
     {
         this.observersChefRang.Add(chefRang);
     }
 }
示例#4
0
 public void DettachServeur(IServeur serveur)
 {
     if (this.observersServeur.Contains(serveur))
     {
         this.observersServeur.Add(serveur);
     }
 }
示例#5
0
文件: Program.cs 项目: 74nu5/poker
        public static void Main(params string[] args)
        {
            Program monApp = new Program();

            monApp.ShutdownMode = ShutdownMode.OnExplicitShutdown;

            try
            {
                // On boucle tant que l'utilisateur n'a pas cliqué sur "Annuler" ou qu'il n'a pas réussi à se connecter
                bool clicAnnuler          = false;
                InfosEcranConnexion infos = null;
                while (!clicAnnuler)
                {
                    // 1er chargement : on récupère la sauvegarde et on applique la ligne de commande
                    // 2ème chargement : Les infos ont déjà été récupérées par la fenetre de connexion
                    if (infos == null)
                    {
                        infos = RecupererInfosConnexion();
                        infos = TraiterLigneCommande(infos, args);
                    }

                    DemarrageApplication formDemarrage = new DemarrageApplication(infos);
                    clicAnnuler = !(bool)formDemarrage.ShowDialog();

                    if (!clicAnnuler)
                    {
                        infos = new InfosEcranConnexion(formDemarrage.NomJoueur, formDemarrage.AdresseServeur, formDemarrage.Langue, formDemarrage.EstServeur, formDemarrage.EstSpectateur, infos.ListeServeurs);
                        infos.ModeLancementClient = formDemarrage.EstClientEnModeLecture ? ModeClient.LecturePartie : ModeClient.Jeu;
                        infos.EstSpectateur       = formDemarrage.EstSpectateur;
                        if (infos.ListeServeurs == null)
                        {
                            infos.ListeServeurs = new List <String>();
                        }
                        if (infos.ListeServeurs.Contains(infos.AdresseServeur))
                        {
                            // Une seule instance de l'adresse déjà choisie
                            infos.ListeServeurs.Remove(infos.AdresseServeur);
                        }
                        infos.ListeServeurs.Insert(0, infos.AdresseServeur);

                        Joueur joueurConnecte = new Joueur(infos.NomJoueur);
                        joueurConnecte.EstSpectateur = infos.EstSpectateur;

                        // On considére que le serveur est démarré si on rejoint une partie
                        bool serveurDemarre = true;

                        // Démarrage du serveur
                        if (infos.EstServeur && infos.ModeLancementClient == ModeClient.Jeu)
                        {
                            serveurDemarre = Serveur.DemarrerServeur(string.Format(ADRESSE_SERVEUR, "localhost"));
                            if (!serveurDemarre)
                            {
                                MessageBox.Show(OutilsTraduction.Traducteur.Traduire("ErreurDemarrageServeur"), Constantes.NOM_APPLICATION, MessageBoxButton.OK, MessageBoxImage.Error);
                            }
                        }

                        if (serveurDemarre)
                        {
                            // Démarrage du client
                            IServeur             serveur = null;
                            CommunicationServeur comm    = null;
                            ResultatConnection   res;
                            if (infos.ModeLancementClient == ModeClient.Jeu)
                            {
                                res = ConnecterServeur(joueurConnecte, string.Format(ADRESSE_SERVEUR, infos.AdresseServeur), out serveur, out comm);
                            }
                            else
                            {
                                res = new ResultatConnection(RetourConnection.Ok);
                            }

                            if (res != null)
                            {
                                if (res.Connection == RetourConnection.Ok)
                                {
                                    try
                                    {
                                        SauvegarderInfosConnexion(infos);
                                        clicAnnuler = true;
                                        TablePoker table = new TablePoker(joueurConnecte, comm, serveur, res, formDemarrage.TraducteurChoisi, infos.ModeLancementClient);
                                        monApp.Run(table);
                                    }
                                    catch (Exception ex)
                                    {
                                        MessageBox.Show(formDemarrage.TraducteurChoisi.Traduire("ErreurApplication") + ex.Message, Constantes.NOM_APPLICATION, MessageBoxButton.OK, MessageBoxImage.Error);
                                    }
                                }
                                else
                                {
                                    MessageBox.Show(formDemarrage.TraducteurChoisi.Traduire("ErreurConnection" + res.Connection.ToString()), Constantes.NOM_APPLICATION, MessageBoxButton.OK, MessageBoxImage.Error);
                                }
                            }
                            else
                            {
                                MessageBox.Show(formDemarrage.TraducteurChoisi.Traduire("ErreurConnection"), Constantes.NOM_APPLICATION, MessageBoxButton.OK, MessageBoxImage.Error);
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("Erreur de l'application : " + ex.Message, Constantes.NOM_APPLICATION, MessageBoxButton.OK, MessageBoxImage.Error);
            }
        }
示例#6
0
文件: Program.cs 项目: 74nu5/poker
        /// <summary>
        /// Connection au serveur
        /// </summary>
        /// <param name="joueurConnecte"></param>
        /// <param name="adresseServeur"></param>
        /// <param name="serveur"></param>
        /// <param name="commServeur"></param>
        /// <returns></returns>
        private static ResultatConnection ConnecterServeur(Joueur joueurConnecte, string adresseServeur, out IServeur serveur, out CommunicationServeur commServeur)
        {
            // Connection
            ResultatConnection res = null;

            commServeur = null;
            serveur     = null;

            try
            {
                commServeur = new CommunicationServeur();
                serveur     = DuplexChannelFactory <IServeur> .CreateChannel(new InstanceContext(commServeur), new NetTcpBinding(SecurityMode.None), new EndpointAddress(adresseServeur));

                res = serveur.Connecter(joueurConnecte);
            }
            catch (Exception ex)
            {
                Debug.WriteLine("Erreur lors de la connection : " + ex.Message);
            }

            return(res);
        }