Exemple #1
0
 //Constructeur
 public Partie()
 {
     //Initialisation des attributs
     //_joueur1 = "Joueur 1";
     //_joueur2 = "Joueur 2";
     _flotte1           = new Flotte();
     _flotte2           = new Flotte();
     _partieEstFinie    = false;
     _tourPremierJoueur = true;
     _comVersClient     = new CommunicationServeur("0.0.0.0", 8888);
     _attaquant         = 1;
 }
Exemple #2
0
        /// <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);
        }
Exemple #3
0
        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);
            }
        }