예제 #1
0
        // Création d'une partie et ajout dans la liste des parties
        public static Tuple <Guid, Guid> CreateBattleShipGame(string playerOnePseudo)
        {
            // Le créateur de la partie est le premier joueur
            // il sera inscrit par défaut dans la liste A des joueurs alliés
            var             gamerID = CreateGamer(playerOnePseudo);
            BattleShipField newBsF  = new BattleShipField(1, gamerID);

            // ajout du joueur ennemi virtuel
            newBsF.JoinBattle(_cyberPlayer, true);
            // ajout de la partie à la liste des parties
            bSfList.Add(newBsF);
            // renvoie l'ID du créateur et l'ID de la partie
            return(new Tuple <Guid, Guid>(newBsF.GameID, gamerID));
        }
예제 #2
0
        // Instanciation d'une nouvelle partie
        public void PlayTheGameAgain()
        {
            try
            {
                // si la partie est terminée ou a été abortée
                if (GamesManager.GameStatus == AppDef.GameStatus.Completed ||
                    GamesManager.GameStatus == AppDef.GameStatus.Terminated)
                {
                    // on peut démarrer une nouvelle partie
                    //currentGameStatus = AppDef.GameStatus.Idle;
                    mySea.Repaint();
                    enemySea.Repaint();
                    (bSfId, myPlayerID) = GamesManager.CreateBattleShipGame("Name1", int.Parse(Level.Text));
                    bSF = GamesManager.GetBattleShipGame(bSfId);

                    if (bSF != null)
                    {
                        var playerBoats = bSF.GetBoats(myPlayerID);
                        DisplayPlayerBoats(playerBoats, false);
                        //@TODO: debug affiche les bateaux ennemis
                        var enemiesBoats = bSF.GetEnemiesBoats(myPlayerID);
                        DisplayPlayerBoats(enemiesBoats, true);


                        AppDef.readyPlayerOne   = true;
                        GamesManager.GameStatus = AppDef.GameStatus.Running;

                        //@TODO100 EVENT : Gestion d'un évenement de riposte à un tir
                        // STEP4 : inscription de la méthode de riposte qui va être activée par l'évenement
                        bSF.riposteEvent += HandleRiposte;
                    }

                    StartButton.Content = "Stop";
                }
                else
                {
                    StartButton.Content     = "Play";
                    TextBoxStatus.Text      = "";
                    GamesManager.GameStatus = AppDef.GameStatus.Terminated;
                }
            }
            catch (Exception)
            {
                throw;
            }
        }