コード例 #1
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;
            }
        }
コード例 #2
0
        /// <summary>
        /// Gestion du choix du placement Automatique des bateaux
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void HandleAutoBoatLayout(object sender, RoutedEventArgs e)
        {
            CheckBox cbAutoLayout = sender as CheckBox;

            if (cbAutoLayout.IsChecked == true)
            {
                // obtenir un placement automatique des bateaux pour ce joueur

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

            if (cbAutoLayout.IsChecked == false)
            {
                // obtenir la liste des bateaux
                // mettre le jeu en attente de composition manuelle complète
                // publier la flotte du joueur local
                //
            }
        }